From 08c736b0059f12c1a30c4161cd47b3d3f9401c34 Mon Sep 17 00:00:00 2001 From: sezero Date: Mon, 15 Feb 2010 23:26:55 +0000 Subject: [PATCH] initial import of SDL port of Fitzquake-0.85 / 20090510 sources. git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@2 af15c1b1-3010-417e-b628-4374ebc0bcbd --- quakespasm/Linux/Fitzquake.cbp | 285 ++ quakespasm/Linux/Fitzquake.depend | 1169 ++++++ quakespasm/Linux/Fitzquake.layout | 103 + quakespasm/Linux/Fitzquake.workspace | 6 + quakespasm/Linux/cb.bmp | Bin 0 -> 54294 bytes quakespasm/Mac OS X/AppController.h | 47 + quakespasm/Mac OS X/AppController.m | 193 + .../Mac OS X/English.lproj/InfoPlist.strings | Bin 0 -> 552 bytes .../English.lproj/Launcher.nib/designable.nib | 3291 +++++++++++++++++ .../Launcher.nib/keyedobjects.nib | Bin 0 -> 26078 bytes quakespasm/Mac OS X/Fitzquake.icns | Bin 0 -> 249151 bytes .../Fitzquake.xcodeproj/kristian.pbxuser | 1389 +++++++ .../kristian.perspectivev3 | 1567 ++++++++ .../Fitzquake.xcodeproj/macmini.mode1v3 | 1380 +++++++ .../Fitzquake.xcodeproj/macmini.pbxuser | 149 + .../Fitzquake.xcodeproj/project.pbxproj | 793 ++++ quakespasm/Mac OS X/Fitzquake_Prefix.pch | 25 + quakespasm/Mac OS X/Info.plist | 28 + quakespasm/Mac OS X/Launcher-Info.plist | 20 + quakespasm/Mac OS X/QuakeArgument.h | 36 + quakespasm/Mac OS X/QuakeArgument.m | 80 + quakespasm/Mac OS X/QuakeArguments.h | 39 + quakespasm/Mac OS X/QuakeArguments.m | 231 ++ quakespasm/Mac OS X/SDLApplication.h | 28 + quakespasm/Mac OS X/SDLApplication.m | 34 + quakespasm/Mac OS X/SDLMain.h | 16 + quakespasm/Mac OS X/SDLMain.m | 84 + quakespasm/Mac OS X/ScreenInfo.h | 38 + quakespasm/Mac OS X/ScreenInfo.m | 61 + quakespasm/Misc/Changelog.txt | 41 + quakespasm/Misc/Icon.psd | Bin 0 -> 9990320 bytes quakespasm/Misc/Todo.txt | 14 + quakespasm/Misc/fitzquake080.txt | 462 +++ quakespasm/Misc/fitzquake512.tga | Bin 0 -> 1048620 bytes quakespasm/Quake/anorm_dots.h | 38 + quakespasm/Quake/anorms.h | 182 + quakespasm/Quake/bspfile.h | 326 ++ quakespasm/Quake/cd_sdl.c | 54 + quakespasm/Quake/cdaudio.h | 28 + quakespasm/Quake/chase.c | 118 + quakespasm/Quake/cl_demo.c | 368 ++ quakespasm/Quake/cl_input.c | 448 +++ quakespasm/Quake/cl_main.c | 807 ++++ quakespasm/Quake/cl_parse.c | 1218 ++++++ quakespasm/Quake/cl_tent.c | 364 ++ quakespasm/Quake/client.h | 369 ++ quakespasm/Quake/cmd.c | 797 ++++ quakespasm/Quake/cmd.h | 121 + quakespasm/Quake/common.c | 1886 ++++++++++ quakespasm/Quake/common.h | 186 + quakespasm/Quake/console.c | 1124 ++++++ quakespasm/Quake/console.h | 53 + quakespasm/Quake/crc.c | 94 + quakespasm/Quake/crc.h | 26 + quakespasm/Quake/cvar.c | 481 +++ quakespasm/Quake/cvar.h | 100 + quakespasm/Quake/d_ifacea.h | 99 + quakespasm/Quake/draw.h | 41 + quakespasm/Quake/gl_draw.c | 810 ++++ quakespasm/Quake/gl_fog.c | 386 ++ quakespasm/Quake/gl_mesh.c | 413 +++ quakespasm/Quake/gl_model.c | 2371 ++++++++++++ quakespasm/Quake/gl_model.h | 454 +++ quakespasm/Quake/gl_refrag.c | 244 ++ quakespasm/Quake/gl_rlight.c | 391 ++ quakespasm/Quake/gl_rmain.c | 860 +++++ quakespasm/Quake/gl_rmisc.c | 405 ++ quakespasm/Quake/gl_screen.c | 1071 ++++++ quakespasm/Quake/gl_sky.c | 1017 +++++ quakespasm/Quake/gl_test.c | 183 + quakespasm/Quake/gl_texmgr.c | 1415 +++++++ quakespasm/Quake/gl_texmgr.h | 99 + quakespasm/Quake/gl_vidnt.c | 2856 ++++++++++++++ quakespasm/Quake/gl_vidsdl.c | 1852 ++++++++++ quakespasm/Quake/gl_warp.c | 267 ++ quakespasm/Quake/gl_warp_sin.h | 52 + quakespasm/Quake/glquake.h | 274 ++ quakespasm/Quake/host.c | 899 +++++ quakespasm/Quake/host_cmd.c | 2235 +++++++++++ quakespasm/Quake/image.c | 423 +++ quakespasm/Quake/image.h | 28 + quakespasm/Quake/in_sdl.c | 168 + quakespasm/Quake/input.h | 44 + quakespasm/Quake/keys.c | 1141 ++++++ quakespasm/Quake/keys.h | 154 + quakespasm/Quake/main.c | 147 + quakespasm/Quake/mathlib.c | 557 +++ quakespasm/Quake/mathlib.h | 122 + quakespasm/Quake/menu.c | 3155 ++++++++++++++++ quakespasm/Quake/menu.h | 39 + quakespasm/Quake/modelgen.h | 135 + quakespasm/Quake/net.h | 334 ++ quakespasm/Quake/net_dgrm.c | 1384 +++++++ quakespasm/Quake/net_dgrm.h | 35 + quakespasm/Quake/net_loop.c | 246 ++ quakespasm/Quake/net_loop.h | 34 + quakespasm/Quake/net_main.c | 865 +++++ quakespasm/Quake/net_sdl.c | 112 + quakespasm/Quake/net_sdlnet.c | 565 +++ quakespasm/Quake/net_sdlnet.h | 38 + quakespasm/Quake/net_udp.c | 478 +++ quakespasm/Quake/net_udp.h | 39 + quakespasm/Quake/net_win.c | 121 + quakespasm/Quake/net_wins.c | 576 +++ quakespasm/Quake/net_wins.h | 40 + quakespasm/Quake/pl_linux.c | 38 + quakespasm/Quake/pl_osx.m | 39 + quakespasm/Quake/pl_win.c | 58 + quakespasm/Quake/platform.h | 30 + quakespasm/Quake/pr_cmds.c | 1691 +++++++++ quakespasm/Quake/pr_comp.h | 181 + quakespasm/Quake/pr_edict.c | 1135 ++++++ quakespasm/Quake/pr_exec.c | 665 ++++ quakespasm/Quake/progdefs.h | 21 + quakespasm/Quake/progdefs.q1 | 143 + quakespasm/Quake/progs.h | 134 + quakespasm/Quake/protocol.h | 213 ++ quakespasm/Quake/quakedef.h | 330 ++ quakespasm/Quake/r_alias.c | 734 ++++ quakespasm/Quake/r_brush.c | 1197 ++++++ quakespasm/Quake/r_part.c | 1010 +++++ quakespasm/Quake/r_sprite.c | 184 + quakespasm/Quake/r_world.c | 751 ++++ quakespasm/Quake/render.h | 175 + quakespasm/Quake/resource.h | 20 + quakespasm/Quake/sbar.c | 1286 +++++++ quakespasm/Quake/sbar.h | 38 + quakespasm/Quake/screen.h | 75 + quakespasm/Quake/server.h | 228 ++ quakespasm/Quake/snd_dma.c | 967 +++++ quakespasm/Quake/snd_mem.c | 341 ++ quakespasm/Quake/snd_mix.c | 295 ++ quakespasm/Quake/snd_sdl.c | 125 + quakespasm/Quake/sound.h | 180 + quakespasm/Quake/spritegn.h | 111 + quakespasm/Quake/sv_main.c | 1424 +++++++ quakespasm/Quake/sv_move.c | 420 +++ quakespasm/Quake/sv_phys.c | 1220 ++++++ quakespasm/Quake/sv_user.c | 630 ++++ quakespasm/Quake/sys.h | 69 + quakespasm/Quake/sys_sdl.c | 282 ++ quakespasm/Quake/vid.h | 80 + quakespasm/Quake/view.c | 920 +++++ quakespasm/Quake/view.h | 31 + quakespasm/Quake/wad.c | 168 + quakespasm/Quake/wad.h | 76 + quakespasm/Quake/world.c | 899 +++++ quakespasm/Quake/world.h | 79 + quakespasm/Quake/zone.c | 954 +++++ quakespasm/Quake/zone.h | 132 + quakespasm/Windows/Fitzquake.cbp | 292 ++ quakespasm/Windows/Fitzquake.depend | 1180 ++++++ quakespasm/Windows/Fitzquake.layout | 94 + quakespasm/Windows/Fitzquake.rc | 1 + quakespasm/Windows/Fitzquake.workspace | 6 + quakespasm/Windows/cb.bmp | Bin 0 -> 54294 bytes quakespasm/Windows/dirent.c | 145 + quakespasm/Windows/dirent.h | 50 + quakespasm/Windows/fitzquake.ico | Bin 0 -> 4710 bytes quakespasm/gnu.txt | 87 + 160 files changed, 72105 insertions(+) create mode 100644 quakespasm/Linux/Fitzquake.cbp create mode 100644 quakespasm/Linux/Fitzquake.depend create mode 100644 quakespasm/Linux/Fitzquake.layout create mode 100644 quakespasm/Linux/Fitzquake.workspace create mode 100644 quakespasm/Linux/cb.bmp create mode 100644 quakespasm/Mac OS X/AppController.h create mode 100644 quakespasm/Mac OS X/AppController.m create mode 100644 quakespasm/Mac OS X/English.lproj/InfoPlist.strings create mode 100644 quakespasm/Mac OS X/English.lproj/Launcher.nib/designable.nib create mode 100644 quakespasm/Mac OS X/English.lproj/Launcher.nib/keyedobjects.nib create mode 100644 quakespasm/Mac OS X/Fitzquake.icns create mode 100644 quakespasm/Mac OS X/Fitzquake.xcodeproj/kristian.pbxuser create mode 100644 quakespasm/Mac OS X/Fitzquake.xcodeproj/kristian.perspectivev3 create mode 100644 quakespasm/Mac OS X/Fitzquake.xcodeproj/macmini.mode1v3 create mode 100644 quakespasm/Mac OS X/Fitzquake.xcodeproj/macmini.pbxuser create mode 100644 quakespasm/Mac OS X/Fitzquake.xcodeproj/project.pbxproj create mode 100644 quakespasm/Mac OS X/Fitzquake_Prefix.pch create mode 100644 quakespasm/Mac OS X/Info.plist create mode 100644 quakespasm/Mac OS X/Launcher-Info.plist create mode 100644 quakespasm/Mac OS X/QuakeArgument.h create mode 100644 quakespasm/Mac OS X/QuakeArgument.m create mode 100644 quakespasm/Mac OS X/QuakeArguments.h create mode 100644 quakespasm/Mac OS X/QuakeArguments.m create mode 100644 quakespasm/Mac OS X/SDLApplication.h create mode 100644 quakespasm/Mac OS X/SDLApplication.m create mode 100644 quakespasm/Mac OS X/SDLMain.h create mode 100644 quakespasm/Mac OS X/SDLMain.m create mode 100644 quakespasm/Mac OS X/ScreenInfo.h create mode 100644 quakespasm/Mac OS X/ScreenInfo.m create mode 100644 quakespasm/Misc/Changelog.txt create mode 100644 quakespasm/Misc/Icon.psd create mode 100644 quakespasm/Misc/Todo.txt create mode 100644 quakespasm/Misc/fitzquake080.txt create mode 100644 quakespasm/Misc/fitzquake512.tga create mode 100644 quakespasm/Quake/anorm_dots.h create mode 100644 quakespasm/Quake/anorms.h create mode 100644 quakespasm/Quake/bspfile.h create mode 100644 quakespasm/Quake/cd_sdl.c create mode 100644 quakespasm/Quake/cdaudio.h create mode 100644 quakespasm/Quake/chase.c create mode 100644 quakespasm/Quake/cl_demo.c create mode 100644 quakespasm/Quake/cl_input.c create mode 100644 quakespasm/Quake/cl_main.c create mode 100644 quakespasm/Quake/cl_parse.c create mode 100644 quakespasm/Quake/cl_tent.c create mode 100644 quakespasm/Quake/client.h create mode 100644 quakespasm/Quake/cmd.c create mode 100644 quakespasm/Quake/cmd.h create mode 100644 quakespasm/Quake/common.c create mode 100644 quakespasm/Quake/common.h create mode 100644 quakespasm/Quake/console.c create mode 100644 quakespasm/Quake/console.h create mode 100644 quakespasm/Quake/crc.c create mode 100644 quakespasm/Quake/crc.h create mode 100644 quakespasm/Quake/cvar.c create mode 100644 quakespasm/Quake/cvar.h create mode 100644 quakespasm/Quake/d_ifacea.h create mode 100644 quakespasm/Quake/draw.h create mode 100644 quakespasm/Quake/gl_draw.c create mode 100644 quakespasm/Quake/gl_fog.c create mode 100644 quakespasm/Quake/gl_mesh.c create mode 100644 quakespasm/Quake/gl_model.c create mode 100644 quakespasm/Quake/gl_model.h create mode 100644 quakespasm/Quake/gl_refrag.c create mode 100644 quakespasm/Quake/gl_rlight.c create mode 100644 quakespasm/Quake/gl_rmain.c create mode 100644 quakespasm/Quake/gl_rmisc.c create mode 100644 quakespasm/Quake/gl_screen.c create mode 100644 quakespasm/Quake/gl_sky.c create mode 100644 quakespasm/Quake/gl_test.c create mode 100644 quakespasm/Quake/gl_texmgr.c create mode 100644 quakespasm/Quake/gl_texmgr.h create mode 100644 quakespasm/Quake/gl_vidnt.c create mode 100644 quakespasm/Quake/gl_vidsdl.c create mode 100644 quakespasm/Quake/gl_warp.c create mode 100644 quakespasm/Quake/gl_warp_sin.h create mode 100644 quakespasm/Quake/glquake.h create mode 100644 quakespasm/Quake/host.c create mode 100644 quakespasm/Quake/host_cmd.c create mode 100644 quakespasm/Quake/image.c create mode 100644 quakespasm/Quake/image.h create mode 100644 quakespasm/Quake/in_sdl.c create mode 100644 quakespasm/Quake/input.h create mode 100644 quakespasm/Quake/keys.c create mode 100644 quakespasm/Quake/keys.h create mode 100644 quakespasm/Quake/main.c create mode 100644 quakespasm/Quake/mathlib.c create mode 100644 quakespasm/Quake/mathlib.h create mode 100644 quakespasm/Quake/menu.c create mode 100644 quakespasm/Quake/menu.h create mode 100644 quakespasm/Quake/modelgen.h create mode 100644 quakespasm/Quake/net.h create mode 100644 quakespasm/Quake/net_dgrm.c create mode 100644 quakespasm/Quake/net_dgrm.h create mode 100644 quakespasm/Quake/net_loop.c create mode 100644 quakespasm/Quake/net_loop.h create mode 100644 quakespasm/Quake/net_main.c create mode 100644 quakespasm/Quake/net_sdl.c create mode 100644 quakespasm/Quake/net_sdlnet.c create mode 100644 quakespasm/Quake/net_sdlnet.h create mode 100644 quakespasm/Quake/net_udp.c create mode 100644 quakespasm/Quake/net_udp.h create mode 100644 quakespasm/Quake/net_win.c create mode 100644 quakespasm/Quake/net_wins.c create mode 100644 quakespasm/Quake/net_wins.h create mode 100644 quakespasm/Quake/pl_linux.c create mode 100644 quakespasm/Quake/pl_osx.m create mode 100644 quakespasm/Quake/pl_win.c create mode 100644 quakespasm/Quake/platform.h create mode 100644 quakespasm/Quake/pr_cmds.c create mode 100644 quakespasm/Quake/pr_comp.h create mode 100644 quakespasm/Quake/pr_edict.c create mode 100644 quakespasm/Quake/pr_exec.c create mode 100644 quakespasm/Quake/progdefs.h create mode 100644 quakespasm/Quake/progdefs.q1 create mode 100644 quakespasm/Quake/progs.h create mode 100644 quakespasm/Quake/protocol.h create mode 100644 quakespasm/Quake/quakedef.h create mode 100644 quakespasm/Quake/r_alias.c create mode 100644 quakespasm/Quake/r_brush.c create mode 100644 quakespasm/Quake/r_part.c create mode 100644 quakespasm/Quake/r_sprite.c create mode 100644 quakespasm/Quake/r_world.c create mode 100644 quakespasm/Quake/render.h create mode 100644 quakespasm/Quake/resource.h create mode 100644 quakespasm/Quake/sbar.c create mode 100644 quakespasm/Quake/sbar.h create mode 100644 quakespasm/Quake/screen.h create mode 100644 quakespasm/Quake/server.h create mode 100644 quakespasm/Quake/snd_dma.c create mode 100644 quakespasm/Quake/snd_mem.c create mode 100644 quakespasm/Quake/snd_mix.c create mode 100644 quakespasm/Quake/snd_sdl.c create mode 100644 quakespasm/Quake/sound.h create mode 100644 quakespasm/Quake/spritegn.h create mode 100644 quakespasm/Quake/sv_main.c create mode 100644 quakespasm/Quake/sv_move.c create mode 100644 quakespasm/Quake/sv_phys.c create mode 100644 quakespasm/Quake/sv_user.c create mode 100644 quakespasm/Quake/sys.h create mode 100644 quakespasm/Quake/sys_sdl.c create mode 100644 quakespasm/Quake/vid.h create mode 100644 quakespasm/Quake/view.c create mode 100644 quakespasm/Quake/view.h create mode 100644 quakespasm/Quake/wad.c create mode 100644 quakespasm/Quake/wad.h create mode 100644 quakespasm/Quake/world.c create mode 100644 quakespasm/Quake/world.h create mode 100644 quakespasm/Quake/zone.c create mode 100644 quakespasm/Quake/zone.h create mode 100644 quakespasm/Windows/Fitzquake.cbp create mode 100644 quakespasm/Windows/Fitzquake.depend create mode 100644 quakespasm/Windows/Fitzquake.layout create mode 100644 quakespasm/Windows/Fitzquake.rc create mode 100644 quakespasm/Windows/Fitzquake.workspace create mode 100644 quakespasm/Windows/cb.bmp create mode 100644 quakespasm/Windows/dirent.c create mode 100644 quakespasm/Windows/dirent.h create mode 100644 quakespasm/Windows/fitzquake.ico create mode 100644 quakespasm/gnu.txt diff --git a/quakespasm/Linux/Fitzquake.cbp b/quakespasm/Linux/Fitzquake.cbp new file mode 100644 index 00000000..6ab12cb0 --- /dev/null +++ b/quakespasm/Linux/Fitzquake.cbp @@ -0,0 +1,285 @@ + + + + + + diff --git a/quakespasm/Linux/Fitzquake.depend b/quakespasm/Linux/Fitzquake.depend new file mode 100644 index 00000000..ed04cb68 --- /dev/null +++ b/quakespasm/Linux/Fitzquake.depend @@ -0,0 +1,1169 @@ +# depslib dependency file v1.0 +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cd_sdl.c + "quakedef.h" + +1199704471 h" + +1199750385 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\quakedef.h + + + + + + + "common.h" + "bspfile.h" + "vid.h" + "sys.h" + "zone.h" + "mathlib.h" + "SDL/SDL.h" + "SDL/SDL_opengl.h" + "wad.h" + "draw.h" + "cvar.h" + "screen.h" + "net.h" + "protocol.h" + "cmd.h" + "sbar.h" + "sound.h" + "render.h" + "client.h" + "progs.h" + "server.h" + "gl_model.h" + "input.h" + "world.h" + "keys.h" + "console.h" + "view.h" + "menu.h" + "crc.h" + "cdaudio.h" + "glquake.h" + "image.h" + "gl_texmgr.h" + +1199052373 .h" + +1199731904 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\common.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\bspfile.h + +1199704472 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\vid.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sys.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\zone.h + +1199733698 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\mathlib.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\wad.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\draw.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cvar.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\screen.h + +1199704472 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\protocol.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cmd.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sbar.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sound.h + +1199704472 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\render.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\client.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\progs.h + "pr_comp.h" + "progdefs.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pr_comp.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\progdefs.h + "progdefs.q1" + +1199704471 q1" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\progdefs.q1 + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\server.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_model.h + "modelgen.h" + "spritegn.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\modelgen.h + + + + + "cmdlib.h" + "scriplib.h" + "trilib.h" + "lbmlib.h" + "mathlib.h" + +1199704471 " + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\spritegn.h + + + + + "cmdlib.h" + "scriplib.h" + "dictlib.h" + "trilib.h" + "lbmlib.h" + "mathlib.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\input.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\world.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\keys.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\console.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\view.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\menu.h + +1199733161 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\crc.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cdaudio.h + +1200313846 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\glquake.h + +1093037525 c:\programme\sdl\include\sdl_opengl.h + + + + + + + + +1199704471 + +1199733161 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\image.h + +1199728779 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_texmgr.h + +1200313846 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\chase.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_demo.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_input.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_main.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_parse.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_tent.c + "quakedef.h" + +1200313846 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cmd.c + "quakedef.h" + +1199704472 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\common.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\conproc.c + + "conproc.h" + "quakedef.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\conproc.h + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\console.c + + + + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\crc.c + "quakedef.h" + "crc.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cvar.c + "quakedef.h" + +1199737988 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_draw.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_fog.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_mesh.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_model.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_refrag.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_rlight.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_rmain.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_rmisc.c + "quakedef.h" + +1199734266 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_screen.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_sky.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_test.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_texmgr.c + "quakedef.h" + "imdebug-0.931b-bin/imdebug.h" + +1199704471 .931b-bin/imdebug.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_opengl.h + "SDL_config.h" + + + + + + + + + + +1199733161 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\platform.h + "SDL/SDL.h" + "SDL/SDL_opengl.h" + +1199733161 pengl.h" + +1199052373 c:\programme\sdl\include\sdl\sdl.h + "SDL_main.h" + "SDL_stdinc.h" + "SDL_audio.h" + "SDL_cdrom.h" + "SDL_cpuinfo.h" + "SDL_endian.h" + "SDL_error.h" + "SDL_events.h" + "SDL_loadso.h" + "SDL_mutex.h" + "SDL_rwops.h" + "SDL_thread.h" + "SDL_timer.h" + "SDL_video.h" + "SDL_version.h" + "begin_code.h" + "close_code.h" + +1199052373 e.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_main.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + "begin_code.h" + "close_code.h" + +1090382006 c:\programme\sdl\include\sdl\sdl_types.h + +1199052373 c:\programme\sdl\include\sdl\begin_code.h + +1199052373 c:\programme\sdl\include\sdl\close_code.h + +1018532113 c:\programme\sdl\include\sdl\sdl_getenv.h + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_error.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_rwops.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_timer.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_audio.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_endian.h" + "SDL_mutex.h" + "SDL_thread.h" + "SDL_rwops.h" + "begin_code.h" + "close_code.h" + +1100297357 c:\programme\sdl\include\sdl\sdl_byteorder.h + +1199052373 c:\programme\sdl\include\sdl\sdl_cdrom.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_joystick.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_events.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_active.h" + "SDL_keyboard.h" + "SDL_mouse.h" + "SDL_joystick.h" + "SDL_quit.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_active.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_keyboard.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_keysym.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_keysym.h + +1199052373 c:\programme\sdl\include\sdl\sdl_mouse.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_video.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_video.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_rwops.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_mutex.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_quit.h + "SDL_stdinc.h" + "SDL_error.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_version.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_stdinc.h + "SDL_config.h" + + + + + + + + + + + + + + + + + "begin_code.h" + + + + + + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_config.h + "SDL_platform.h" + + +1199052373 c:\programme\sdl\include\sdl\sdl_platform.h + +1199052373 c:\programme\sdl\include\sdl\sdl_endian.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_thread.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_mutex.h" + "begin_code.h" + + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_cpuinfo.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199052373 c:\programme\sdl\include\sdl\sdl_loadso.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1200313903 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_vidsdl.c + "quakedef.h" + "resource.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\resource.h + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_warp.c + "quakedef.h" + "gl_warp_sin.h" + +1199704471 in.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_warp_sin.h + +1199734266 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\host.c + "quakedef.h" + +1200313846 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\host_cmd.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\image.c + "quakedef.h" + +1199728353 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\in_sdl.c + "quakedef.h" + +1199734266 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\keys.c + "quakedef.h" + +1199704472 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\main.c + + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\mathlib.c + + "quakedef.h" + +1199750385 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\menu.c + "quakedef.h" + +1199750802 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_dgrm.c + + + + "quakedef.h" + "net_dgrm.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_dgrm.h + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_loop.c + "quakedef.h" + "net_loop.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_loop.h + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_main.c + "quakedef.h" + +1199704472 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_sdl.c + "quakedef.h" + "net_loop.h" + "net_dgrm.h" + "net_ser.h" + "net_wins.h" + "net_wipx.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_ser.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_wins.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_wipx.h + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pr_cmds.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pr_edict.c + "quakedef.h" + +1199704472 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pr_exec.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_alias.c + "quakedef.h" + "anorms.h" + "anorm_dots.h" + +1199704471 s.h" + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\anorms.h + +1199704471 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\anorm_dots.h + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_brush.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_part.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_sprite.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_world.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sbar.c + "quakedef.h" + +1199734266 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\snd_dma.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\snd_mem.c + "quakedef.h" + +1199734266 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\snd_mix.c + "quakedef.h" + +1199728353 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\snd_sdl.c + + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sv_main.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sv_move.c + "quakedef.h" + +1199704472 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sv_phys.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sv_user.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sys_sdl.c + "quakedef.h" + + "errno.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\test.c + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\view.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\wad.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\world.c + "quakedef.h" + +1199704471 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\zone.c + "quakedef.h" + +1199801563 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\windows\main.c + + "../Quake/quakedef.h" + +1199801563 quakedef.h" + +1200429830 source:/home/kristian/Desktop/Fitzquake/Linux/main.c + + "../Quake/quakedef.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/quakedef.h + + + + + + + "common.h" + "bspfile.h" + "vid.h" + "sys.h" + "zone.h" + "mathlib.h" + "platform.h" + "SDL/SDL.h" + "SDL/SDL_opengl.h" + "wad.h" + "draw.h" + "cvar.h" + "screen.h" + "net.h" + "protocol.h" + "cmd.h" + "sbar.h" + "sound.h" + "render.h" + "client.h" + "progs.h" + "server.h" + "gl_model.h" + "input.h" + "world.h" + "keys.h" + "console.h" + "view.h" + "menu.h" + "crc.h" + "cdaudio.h" + "glquake.h" + "image.h" + "gl_texmgr.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/common.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/bspfile.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/vid.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/sys.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/zone.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/mathlib.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/wad.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/draw.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/cvar.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/screen.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/net.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/protocol.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/cmd.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/sbar.h + +1204383897 /home/kristian/Desktop/Fitzquake/Quake/sound.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/render.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/client.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/progs.h + "pr_comp.h" + "progdefs.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/pr_comp.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/progdefs.h + "progdefs.q1" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/progdefs.q1 + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/server.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/gl_model.h + "modelgen.h" + "spritegn.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/modelgen.h + + + + + "cmdlib.h" + "scriplib.h" + "trilib.h" + "lbmlib.h" + "mathlib.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/spritegn.h + + + + + "cmdlib.h" + "scriplib.h" + "dictlib.h" + "trilib.h" + "lbmlib.h" + "mathlib.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/input.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/world.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/keys.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/console.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/view.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/menu.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/crc.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/cdaudio.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/glquake.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/image.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/gl_texmgr.h + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/cd_sdl.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/chase.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/cl_demo.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/cl_input.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/cl_main.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/cl_parse.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/cl_tent.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/cmd.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/common.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/console.c + + + + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/crc.c + "quakedef.h" + "crc.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/cvar.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_draw.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/gl_fog.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_mesh.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_model.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_refrag.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_rlight.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_rmain.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_rmisc.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/gl_screen.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_sky.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_test.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_texmgr.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_vidsdl.c + "quakedef.h" + "resource.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/resource.h + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/gl_warp.c + "quakedef.h" + "gl_warp_sin.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/gl_warp_sin.h + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/host.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/host_cmd.c + + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/image.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/in_sdl.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/keys.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/mathlib.c + + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/menu.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/net_dgrm.c + + + + "quakedef.h" + "net_dgrm.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/net_dgrm.h + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/net_loop.c + "quakedef.h" + "net_loop.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/net_loop.h + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/net_main.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/net_sdl.c + "quakedef.h" + "net_loop.h" + "net_dgrm.h" + "net_sdlnet.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/net_ser.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/net_wins.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/net_wipx.h + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/pr_cmds.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/pr_edict.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/pr_exec.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/r_alias.c + "quakedef.h" + "anorms.h" + "anorm_dots.h" + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/anorms.h + +1204383782 /home/kristian/Desktop/Fitzquake/Quake/anorm_dots.h + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/r_brush.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/r_part.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/r_sprite.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/r_world.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/sbar.c + "quakedef.h" + +1204383897 source:/home/kristian/Desktop/Fitzquake/Quake/snd_dma.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/snd_mem.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/snd_mix.c + "quakedef.h" + +1204383897 source:/home/kristian/Desktop/Fitzquake/Quake/snd_sdl.c + + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/sv_main.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/sv_move.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/sv_phys.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/sv_user.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/sys_sdl.c + "quakedef.h" + "errno.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/test.c + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/view.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/wad.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/world.c + "quakedef.h" + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/zone.c + "quakedef.h" + +1215264371 source:/home/kristian/Desktop/Fitzquake/Quake/main.c + + "quakedef.h" + +1215264371 /home/kristian/Desktop/Fitzquake/Quake/platform.h + +1204383782 source:/home/kristian/Desktop/Fitzquake/Quake/pl_linux.c + "quakedef.h" + +1215264371 /home/kristian/Desktop/Fitzquake/Quake/net_sdlnet.h + +1215265607 source:/home/kristian/Desktop/Fitzquake/Quake/net_sdlnet.c + "quakedef.h" + + + + "net_sdlnet.h" + +1150927708 /usr/include/SDL/SDL_net.h + "SDL.h" + "SDL_endian.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL.h + "SDL_main.h" + "SDL_stdinc.h" + "SDL_audio.h" + "SDL_cdrom.h" + "SDL_cpuinfo.h" + "SDL_endian.h" + "SDL_error.h" + "SDL_events.h" + "SDL_loadso.h" + "SDL_mutex.h" + "SDL_rwops.h" + "SDL_thread.h" + "SDL_timer.h" + "SDL_video.h" + "SDL_version.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_main.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_stdinc.h + "SDL_config.h" + + + + + + + + + + + + + + + + + "begin_code.h" + + + + + "close_code.h" + +1186756365 /usr/include/SDL/SDL_config.h + "SDL_platform.h" + + +1186756365 /usr/include/SDL/SDL_platform.h + +1186756365 /usr/include/SDL/begin_code.h + +1186756365 /usr/include/SDL/close_code.h + +1186756365 /usr/include/SDL/SDL_audio.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_endian.h" + "SDL_mutex.h" + "SDL_thread.h" + "SDL_rwops.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_error.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_endian.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_mutex.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_thread.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_mutex.h" + "begin_code.h" + + "close_code.h" + +1186756365 /usr/include/SDL/SDL_rwops.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_cdrom.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_cpuinfo.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_events.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_active.h" + "SDL_keyboard.h" + "SDL_mouse.h" + "SDL_joystick.h" + "SDL_quit.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_active.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_keyboard.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_keysym.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_keysym.h + +1186756365 /usr/include/SDL/SDL_mouse.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_video.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_video.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_rwops.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_joystick.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_quit.h + "SDL_stdinc.h" + "SDL_error.h" + +1186756365 /usr/include/SDL/SDL_loadso.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_timer.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1186756365 /usr/include/SDL/SDL_version.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + diff --git a/quakespasm/Linux/Fitzquake.layout b/quakespasm/Linux/Fitzquake.layout new file mode 100644 index 00000000..7d7f07cf --- /dev/null +++ b/quakespasm/Linux/Fitzquake.layout @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/quakespasm/Linux/Fitzquake.workspace b/quakespasm/Linux/Fitzquake.workspace new file mode 100644 index 00000000..5a4ed4a9 --- /dev/null +++ b/quakespasm/Linux/Fitzquake.workspace @@ -0,0 +1,6 @@ + + + + + + diff --git a/quakespasm/Linux/cb.bmp b/quakespasm/Linux/cb.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f912a9e6e19dea3afe6c2f4ba03737008c5b19d1 GIT binary patch literal 54294 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 U+ +#import +#import "QuakeArguments.h"; + +extern NSString *FQPrefCommandLineKey; +extern NSString *FQPrefFullscreenKey; +extern NSString *FQPrefScreenModeKey; +extern NSString *FQPrefShowDialog; + +@interface AppController : NSObject { + IBOutlet NSWindow *launcherWindow; + IBOutlet NSTextField *paramTextField; + IBOutlet NSPopUpButton *screenModePopUp; + IBOutlet NSButton *fullscreenCheckBox; + IBOutlet NSButton *showDialogCheckBox; + + NSMutableArray *screenModes; + QuakeArguments *arguments; +} + +- (IBAction)changeScreenMode:(id)sender; +- (IBAction)launchQuake:(id)sender; +- (IBAction)cancel:(id)sender; + +- (NSArray *)screenModes; + +@end diff --git a/quakespasm/Mac OS X/AppController.m b/quakespasm/Mac OS X/AppController.m new file mode 100644 index 00000000..2b49f3c1 --- /dev/null +++ b/quakespasm/Mac OS X/AppController.m @@ -0,0 +1,193 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 "AppController.h" +#import "ScreenInfo.h" +#import "SDL.h" +#import "SDLMain.h" + +NSString *FQPrefCommandLineKey = @"CommandLine"; +NSString *FQPrefFullscreenKey = @"Fullscreen"; +NSString *FQPrefScreenModeKey = @"ScreenMode"; +NSString *FQPrefShowDialog = @"ShowDialog"; + +@implementation AppController + ++(void) initialize { + + NSMutableDictionary *defaults = [NSMutableDictionary dictionary]; + + [defaults setObject:@"" forKey:FQPrefCommandLineKey]; + [defaults setObject:[NSNumber numberWithBool:YES] forKey:FQPrefFullscreenKey]; + [defaults setObject:[NSNumber numberWithInt:0] forKey:FQPrefScreenModeKey]; + [defaults setObject:[NSNumber numberWithBool:YES] forKey:FQPrefShowDialog]; + + [[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; +} + +- (id)init { + int i,j; + int flags; + int bpps[3] = {32, 24, 16}; + SDL_PixelFormat format; + SDL_Rect **modes; + ScreenInfo *info; + + self = [super init]; + if (!self) + return nil; + + screenModes = [[NSMutableArray alloc] init]; + [screenModes addObject:@"Default or command line arguments"]; + + if (SDL_InitSubSystem(SDL_INIT_VIDEO) == -1) + return self; + + flags = SDL_OPENGL | SDL_FULLSCREEN; + format.palette = NULL; + + for (i = 0; i < 3; i++) { + format.BitsPerPixel = bpps[i]; + modes = SDL_ListModes(&format, flags); + + if (modes == (SDL_Rect **)0 || modes == (SDL_Rect **)-1) + continue; + + for (j = 0; modes[j]; j++) { + info = [[ScreenInfo alloc] initWithWidth:modes[j]->w height:modes[j]->h bpp:bpps[i]]; + [screenModes addObject:info]; + [info release]; + } + } + + SDL_QuitSubSystem(SDL_INIT_VIDEO); + + arguments = [[QuakeArguments alloc] initWithArguments:gArgv + 1 count:gArgc - 1]; + return self; +} + +- (NSArray *)screenModes { + + return screenModes; +} + +- (void)awakeFromNib { + + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + BOOL showDialog = [defaults boolForKey:FQPrefShowDialog]; + [showDialogCheckBox setState:showDialog ? NSOnState : NSOffState]; + + if ([arguments count] > 0) { + [paramTextField setStringValue:[arguments description]]; + if ([arguments argument:@"-window"] != nil) + [fullscreenCheckBox setState:NSOffState]; + } else { + [paramTextField setStringValue:[defaults stringForKey:FQPrefCommandLineKey]]; + + BOOL fullscreen = [defaults boolForKey:FQPrefFullscreenKey]; + [fullscreenCheckBox setState:fullscreen ? NSOnState : NSOffState]; + + int screenModeIndex = [defaults integerForKey:FQPrefScreenModeKey]; + [screenModePopUp selectItemAtIndex:screenModeIndex]; + } +} + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + BOOL showDialog = [defaults boolForKey:FQPrefShowDialog]; + + CGEventRef event = CGEventCreate(NULL /*default event source*/); + CGEventFlags mods = CGEventGetFlags(event); + + if (showDialog || (mods & kCGEventFlagMaskCommand)) + [launcherWindow makeKeyAndOrderFront:self]; + else + [self launchQuake:self]; +} + +- (IBAction)changeScreenMode:(id)sender { + + int index = [screenModePopUp indexOfSelectedItem]; + [fullscreenCheckBox setEnabled:index != 0]; +} + +- (IBAction)launchQuake:(id)sender { + + [arguments parseArguments:[paramTextField stringValue]]; + + int index = [screenModePopUp indexOfSelectedItem]; + if (index > 0) { + ScreenInfo *info = [screenModes objectAtIndex:index]; + + int width = [info width]; + int height = [info height]; + int bpp = [info bpp]; + BOOL fullscreen = [fullscreenCheckBox state] == NSOnState; + + [arguments addArgument:@"-width" withValue:[NSString stringWithFormat:@"%d", width]]; + [arguments addArgument:@"-height" withValue:[NSString stringWithFormat:@"%d", height]]; + [arguments addArgument:@"-bpp" withValue:[NSString stringWithFormat:@"%d", bpp]]; + + if (!fullscreen) + [arguments addArgument:@"-window"]; + } + + NSString *path = [NSString stringWithCString:gArgv[0] encoding:NSASCIIStringEncoding]; + + int i; + for (i = 0; i < 4; i++) + path = [path stringByDeletingLastPathComponent]; + + NSFileManager *fileManager = [NSFileManager defaultManager]; + [fileManager changeCurrentDirectoryPath:path]; + + int argc = [arguments count] + 1; + char *argv[argc]; + + argv[0] = gArgv[0]; + [arguments setArguments:argv + 1]; + + [launcherWindow close]; + + // update the defaults + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:[paramTextField stringValue] forKey:FQPrefCommandLineKey]; + [defaults setObject:[NSNumber numberWithBool:[fullscreenCheckBox state] == NSOnState] forKey:FQPrefFullscreenKey]; + [defaults setObject:[NSNumber numberWithInt:index] forKey:FQPrefScreenModeKey]; + [defaults setObject:[NSNumber numberWithBool:[showDialogCheckBox state] == NSOnState] forKey:FQPrefShowDialog]; + [defaults synchronize]; + + int status = SDL_main (argc, argv); + exit(status); +} + +- (IBAction)cancel:(id)sender { + + exit(0); +} + +- (void) dealloc +{ + [screenModes release]; + [super dealloc]; +} + + +@end diff --git a/quakespasm/Mac OS X/English.lproj/InfoPlist.strings b/quakespasm/Mac OS X/English.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..4300c59ba9e83d38fe9ea2b0719ac9c8c68c7651 GIT binary patch literal 552 zcmbu5I}5@<5QL}pR|HEDUzH#>3O+zB4A{zP5*3Y)BntZD)i0+AO0ZCl%U*V8cV_2y zEvq0$1MM`I(MBs>B1VeI?6f61#DH&~zkqj1dy9{ikX?g5TU0@1$wbW9YVl>}=N^tKD6hhw#npu& zd2RR~LlISNl<)B+)wy7g)TtT@Dys9Ea)wk>R0z(n%lYL~S}i?wj^wI`Poc$(QE711 QXl9+wVtII+Rr!Vg4us!dXaE2J literal 0 HcmV?d00001 diff --git a/quakespasm/Mac OS X/English.lproj/Launcher.nib/designable.nib b/quakespasm/Mac OS X/English.lproj/Launcher.nib/designable.nib new file mode 100644 index 00000000..4b04d874 --- /dev/null +++ b/quakespasm/Mac OS X/English.lproj/Launcher.nib/designable.nib @@ -0,0 +1,3291 @@ + + + + 1040 + 9C31 + 629 + 949.26 + 352.00 + + YES + + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + SDLMain + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + + NSMenuMixedState + + submenuAction: + + + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + UHJlZmVyZW5jZXPigKY + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide NewApplication + h + 1048576 + 2147483647 + + + + + + Hide Others + + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + New + n + 1048576 + 2147483647 + + + + + + T3BlbuKApg + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + U2F2ZSBBc+KApg + S + 1179648 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + UHJpbnTigKY + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + RmluZOKApg + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + U2hvdyBTcGVsbGluZ+KApg + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Smart Copy/Paste + + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + + 1048576 + 2147483647 + + + 2 + + + + Smart Links + + 1179648 + 2147483647 + + + 3 + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Show Colors + C + 1179648 + 2147483647 + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Show Toolbar + + 1572864 + 2147483647 + + + + + + Q3VzdG9taXplIFRvb2xiYXLigKY + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + + + YES + + + NewApplication Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + 3 + 2 + {{772, 548}, {516, 280}} + 1954022400 + Fitzquake + NSWindow + + + + 256 + + YES + + + 268 + {{378, 41}, {124, 32}} + + + YES + + 67239424 + 134217728 + Start + + LucidaGrande + 1.300000e+01 + 1044 + + + -2038284033 + 129 + + + 200 + 25 + + + + + 12 + + YES + + + 256 + + YES + + + 268 + {{15, 127}, {172, 17}} + + + YES + + 67239488 + 272630784 + Command line parameters + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + + controlTextColor + + 3 + MAA + + + + + + + 268 + {{18, 97}, {440, 22}} + + + YES + + -1804468671 + 272630784 + + + + YES + + 6 + + textBackgroundColor + + 3 + MQA + + + + 6 + + textColor + + + + + + + 268 + {{15, 54}, {175, 17}} + + + YES + + 67239488 + 272630784 + Resolution and color depth + + + + + + + + + 268 + {{15, 22}, {446, 26}} + + + YES + + -2076049856 + 2048 + + + 109199615 + 1 + + + 400 + 75 + + + YES + Item 1 + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + OtherViews + + YES + + + + Item 2 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Item 3 + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + 1 + YES + YES + 2 + + + + + 268 + {{374, 52}, {86, 18}} + + + YES + + -2080244224 + 0 + Fullscreen + + + 1211912703 + 2 + + + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + {{1, 1}, {480, 159}} + + + + + {{17, 85}, {482, 175}} + + + {0, 0} + + 67239424 + 0 + Settings + + + 1.100000e+01 + 3100 + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{254, 41}, {124, 32}} + + + YES + + 67239424 + 134217728 + Cancel + + + -2038284033 + 129 + + + 200 + 25 + + + + + 268 + {{18, 50}, {173, 18}} + + + YES + + -2080244224 + 0 + Always show this dialog + + + 1211912703 + 2 + + + + + 200 + 25 + + + + + 268 + {{17, 15}, {210, 29}} + + + YES + + 67239424 + 272629760 + Hold the Command key on startup to display this dialog again + + + 1.100000e+01 + 16 + + + + + 1 + MCAwIDAgMC42NDk5OTk5OAA + + + + + {516, 280} + + + + {{0, 0}, {1680, 1028}} + + + AppController + + + YES + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + clearRecentDocuments: + + + + 127 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + showHelp: + + + + 360 + + + + orderFrontColorPanel: + + + + 361 + + + + saveDocument: + + + + 362 + + + + saveDocumentAs: + + + + 363 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + terminate: + + + + 369 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 373 + + + + openDocument: + + + + 374 + + + + launchQuake: + + + + 378 + + + + paramTextField + + + + 412 + + + + launcherWindow + + + + 414 + + + + delegate + + + + 415 + + + + screenSettingsPopUp + + + + 417 + + + + cancel: + + + + 418 + + + + content: screenModes + + + + + + + content + screenModes + 2 + + + 449 + + + + screenModePopUp + + + + 452 + + + + fullscreenCheckBox + + + + 453 + + + + changeScreenMode: + + + + 455 + + + + showDialogCheckBox + + + + 463 + + + + + + + + 464 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + + MainMenu + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 103 + + + YES + + + + 1 + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + 75 + + + 3 + + + 80 + + + 8 + + + 78 + + + 6 + + + 72 + + + + + 82 + + + 9 + + + 124 + + + YES + + + + + + 77 + + + 5 + + + 73 + + + + + + 79 + + + 7 + + + 112 + + + 10 + + + 74 + + + 2 + + + 125 + + + YES + + + + + + 126 + + + + + 205 + + + YES + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 106 + + + YES + + + + + + + 111 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + 1111 + + + 144 + + + + + 129 + + + 121 + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 299 + + + YES + + + + + + 300 + + + YES + + + + + + + 344 + + + + + 345 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + + + + 375 + + + + + 376 + + + YES + + + + + + 377 + + + + + 395 + + + YES + + + + + + + + + + 397 + + + YES + + + + + + 398 + + + YES + + + + + + 399 + + + YES + + + + + + 400 + + + YES + + + + + + 401 + + + YES + + + + + + 402 + + + YES + + + + + + + + 403 + + + + + 404 + + + + + 405 + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 410 + + + YES + + + + + + 411 + + + + + 419 + + + + + 450 + + + YES + + + + + + 451 + + + + + 459 + + + YES + + + + + + 460 + + + + + 461 + + + YES + + + + + + 462 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 103.IBPluginDependency + 103.ImportedFromIB2 + 106.IBPluginDependency + 106.ImportedFromIB2 + 106.editorWindowContentRectSynchronizationRect + 111.IBPluginDependency + 111.ImportedFromIB2 + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBPluginDependency + 125.ImportedFromIB2 + 125.editorWindowContentRectSynchronizationRect + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 195.IBPluginDependency + 195.ImportedFromIB2 + 196.IBPluginDependency + 196.ImportedFromIB2 + 197.IBPluginDependency + 197.ImportedFromIB2 + 198.IBPluginDependency + 198.ImportedFromIB2 + 199.IBPluginDependency + 199.ImportedFromIB2 + 200.IBPluginDependency + 200.ImportedFromIB2 + 200.editorWindowContentRectSynchronizationRect + 201.IBPluginDependency + 201.ImportedFromIB2 + 202.IBPluginDependency + 202.ImportedFromIB2 + 203.IBPluginDependency + 203.ImportedFromIB2 + 204.IBPluginDependency + 204.ImportedFromIB2 + 205.IBPluginDependency + 205.ImportedFromIB2 + 205.editorWindowContentRectSynchronizationRect + 206.IBPluginDependency + 206.ImportedFromIB2 + 207.IBPluginDependency + 207.ImportedFromIB2 + 208.IBPluginDependency + 208.ImportedFromIB2 + 209.IBPluginDependency + 209.ImportedFromIB2 + 210.IBPluginDependency + 210.ImportedFromIB2 + 211.IBPluginDependency + 211.ImportedFromIB2 + 212.IBPluginDependency + 212.ImportedFromIB2 + 212.editorWindowContentRectSynchronizationRect + 213.IBPluginDependency + 213.ImportedFromIB2 + 214.IBPluginDependency + 214.ImportedFromIB2 + 215.IBPluginDependency + 215.ImportedFromIB2 + 216.IBPluginDependency + 216.ImportedFromIB2 + 217.IBPluginDependency + 217.ImportedFromIB2 + 218.IBPluginDependency + 218.ImportedFromIB2 + 219.IBPluginDependency + 219.ImportedFromIB2 + 220.IBPluginDependency + 220.ImportedFromIB2 + 220.editorWindowContentRectSynchronizationRect + 221.IBPluginDependency + 221.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 239.IBPluginDependency + 239.ImportedFromIB2 + 24.IBPluginDependency + 24.ImportedFromIB2 + 24.editorWindowContentRectSynchronizationRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 295.IBPluginDependency + 296.IBPluginDependency + 296.editorWindowContentRectSynchronizationRect + 297.IBPluginDependency + 298.IBPluginDependency + 299.IBPluginDependency + 300.IBPluginDependency + 300.editorWindowContentRectSynchronizationRect + 344.IBPluginDependency + 345.IBPluginDependency + 346.IBPluginDependency + 346.ImportedFromIB2 + 348.IBPluginDependency + 348.ImportedFromIB2 + 349.IBPluginDependency + 349.ImportedFromIB2 + 349.editorWindowContentRectSynchronizationRect + 350.IBPluginDependency + 350.ImportedFromIB2 + 351.IBPluginDependency + 351.ImportedFromIB2 + 354.IBPluginDependency + 354.ImportedFromIB2 + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 371.editorWindowContentRectSynchronizationRect + 372.IBPluginDependency + 375.IBPluginDependency + 376.IBPluginDependency + 377.IBPluginDependency + 395.IBPluginDependency + 395.IBUserGuides + 397.IBPluginDependency + 398.IBPluginDependency + 399.IBPluginDependency + 400.IBPluginDependency + 401.IBPluginDependency + 402.IBPluginDependency + 402.editorWindowContentRectSynchronizationRect + 403.IBPluginDependency + 404.IBPluginDependency + 405.IBPluginDependency + 406.IBPluginDependency + 407.IBPluginDependency + 408.IBPluginDependency + 410.IBPluginDependency + 411.IBPluginDependency + 450.IBPluginDependency + 451.IBPluginDependency + 459.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 462.IBPluginDependency + 5.IBPluginDependency + 5.ImportedFromIB2 + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 58.IBPluginDependency + 58.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBPluginDependency + 81.ImportedFromIB2 + 81.editorWindowContentRectSynchronizationRect + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + + + + + + + + {{596, 852}, {216, 23}} + + + + + + + + + {{522, 812}, {146, 23}} + + + + + + + {{436, 809}, {64, 6}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{608, 612}, {275, 83}} + + + + + + + + + + + {{187, 434}, {243, 243}} + + + + + + + + + + + + + + + {{608, 612}, {167, 43}} + + + + + + + + + + + + + + + + + {{608, 612}, {241, 103}} + + + + + + + + + + + {{525, 802}, {197, 73}} + + + {74, 862} + {{6, 686}, {478, 20}} + + + {{475, 832}, {234, 43}} + + + + + {{231, 634}, {176, 43}} + + + + + + + + + {{608, 612}, {215, 63}} + + + + + + + + {{412, 523}, {516, 280}} + + {{412, 523}, {516, 280}} + + + + + + + YES + + + + + + + + {{188, 248}, {446, 63}} + + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + + + {{23, 794}, {245, 183}} + + + + + + + + + + + + + + + + + + + + + {{145, 474}, {199, 203}} + + + + + + + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 464 + + + + YES + + SDLMain + NSObject + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + IBProjectSource + SDLMain.h + + + + AppController + + + YES + + YES + cancel: + changeScreenMode: + launchQuake: + + + YES + id + + + + + + YES + + YES + fullscreenCheckBox + launcherWindow + paramTextField + screenModePopUp + showDialogCheckBox + + + YES + NSButton + + NSTextField + NSPopUpButton + + + + + + AppController.h + + + + + + + YES + + YES + + + YES + + + + YES + + YES + + + YES + + + + IBUserSource + + + + + + 0 + ../../Fitzquake.xcodeproj + 3 + + YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA +AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxECxQALAAwAMQA1ADYAPAA9 +AEEARQB7AIMAhgCHAJcAoAALAKEAvQC+AMYAxwDKAM8A0ADRANQA0ADYANsA3ADgAOYA5wDrAO8A/wEE +AQUBCQEKAQ4BDwESARMBFgEaASEBJQEmAScBKAEsATMBNwE4ATkBOgE+AUUBSQFKAUsBTwFWAVcBWAFc +AWMBZAFlAWkBcwF0AXUBdgF6AYIBhwGIAYkBigGOAZUBlgGXAZgBnAGjAaQBpQGpAbEBtQG2AbcBuAG9 +AdAB0QCNAdIB2gHiAeoB6wH2AfcCCwIPAhcCHwIgAisCLAI2AjcCOAI8Aj4CQwJEAkcCSgJNAlUCVgJg +AmUCZgJpAm4CbwJ3AngCfwKAAogCiQKeAqwCsAKxArICswK5AsICsQLDAswCsQLNAtEC0wLXAtoC2wLd +At4C3wLlAuYC6wLuAvEC+QL6AwEDAgMKAwsDFAMVAx0DHgMmAycDKwMvAAsDMAMxAzQDNQM5A0ADQQNC +A0MDRwNOA08DUANRA1YDVwNbA2IDYwNkA2UDaQNwA3EDcgNzA3gDeQN+A4UDhgOHA4wDjQOSA5MDmAOZ +A50DpAOlA6YDqwOsA7ADtwO8A70DvgPCA8kDygPLA8wD0APXA9gD2QPaA94D5QPmA+cD6APsA/MD9AP1 +A/kEAAQEBAUEBgQKBBEEFQQWBBcEGwQiBCYEJwQoBCkELQQ0BDUENgQ3BDwEPQRBBEgESQRKBEsETwRW +BFcEWARZBF0EZARlBGYEZwRrBHIEdwR4BHkEfQSEBIUEhgSKBJEEkgSTBJQEmASfBKMEpASlBKYEqwSu +BK8EswS6BLsEvAS9BMEEyATJBMoEywTPBNYE1wTYBNkE3QTkBOUE5gTnBOsE8gTzBPQE9QT5BQAFAQUC +BQcFCAUSBRMFFAUVBRgFhwWRBZoFmwWiBawFrQWuBbQFuwW8Bb0FwgXDBc0F1gWtBdcF5QXuBfcGAAWt +BgEGBgYJBgoGEwYcBh0GJgWtBicGNQY+Ba0GPwZDBkQGTQZWBa0GVwZnBnAGeQaCBa0GgwaLBpIGkwaa +BpsGowakBqUFrQauBrcFrQa4Br0GxgWtBscGzAbTBtQG3QWtBt4G4wbsBa0G7Qb0BvUG/gWtBv8HAwcE +BwgHDAcOB30H7QhdCF4IXwhgCGEIYghjCGQIZQhmCGcIaAhpCGoIawhsCG0IbghvCHAIcQhyCHMIdAh1 +CHYIdwh4CHkIegh7CHwIfQh+CH8IgAiBCIIIgwiECIUIhgiHCIgIiQiKCIsIjAiNCI4IjwiQCJEIkgiT +CJQIlQiWCJcImAiZCJoImwicCJ0IngifCKAIoQiiCKMIpAilCKYIpwioCKkIqgirCKwIrQiuCK8IsAix +CLIIswi0CLUItgi3CLgIuQi6CLsIvAi9CL4IvwjACMEIwgjDCMQIxQjGCMcIyAjJCMoIzQjQCXMKFgoX +ChgKGQoaChsAugocCh0KHgofCiAKIQHvApoKIgojCiQKJQomCicKKAopCioKKwosCi0KLgovCjAKMQoy +CjMKNAo1CjYKNwo4CjkKOgo7CjwKPQo+Cj8KQApBCkIKQwpECkUKRgpHCkgKSQpKCksKTApNCk4KTwpQ +ClEKUgpTClQKVQpWClcKWApZCloKWwpcApIKXQpeCl8KYAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbApt +Cm4KbwpwCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CoAKgQqCCoMKhAqFCoYKhwqICokKigqL +CowKjQqOCo8KkAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqgCqEKogqjCqQKpQqmCqcKqAqp +CqoKqwqsCq0KrgqvCrAKsQqyCrUKuAq7VSRudWxs3xASAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkA +GgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwVk5TUm9vdFYkY2xhc3Nd +TlNPYmplY3RzS2V5c18QD05TQ2xhc3Nlc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eU9pZHNWYWx1ZXNd +TlNDb25uZWN0aW9uc1tOU05hbWVzS2V5c1tOU0ZyYW1ld29ya11OU0NsYXNzZXNLZXlzWk5TT2lkc0tl +eXNdTlNOYW1lc1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNdTlNGb250TWFuYWdlcl8Q +EE5TVmlzaWJsZVdpbmRvd3NfEA9OU09iamVjdHNWYWx1ZXNfEBdOU0FjY2Vzc2liaWxpdHlPaWRzS2V5 +c1lOU05leHRPaWRcTlNPaWRzVmFsdWVzgAKBAsSBAVeBAh6BAsOACIEBroAFgQIdgQIfgQGvgQLBgACA +BoEBrYECwhEB0oECINIADgAyADMANFtOU0NsYXNzTmFtZYAEgANXU0RMTWFpbtIANwA4ADkAOlgkY2xh +c3Nlc1okY2xhc3NuYW1logA6ADteTlNDdXN0b21PYmplY3RYTlNPYmplY3RfEBBJQkNvY29hRnJhbWV3 +b3Jr0gAOAD4APwBAWk5TLm9iamVjdHOAB6DSADcAOABCAEOjAEMARAA7XE5TTXV0YWJsZVNldFVOU1Nl +dNIADgA+AEYAR4CWrxAzAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0A +XgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6gAmA +IYAsgDKAOIA9gEGARYBKgFCAVYBZgF+AtoC7gMCAwoDHgMyAzoDSgNSA1oDYgNyA3oDjgOiA7YDygPaA ++4EBAIEBBoEBC4EBDYEBEoEBF4EBHIEBIYEBJYEBKoEBMIEBM4EBOIEBPYEBQoEBR4EBTIEBUIEBUtQA +DgB8AH0AfgB/AIAAgQCCXU5TRGVzdGluYXRpb25YTlNTb3VyY2VXTlNMYWJlbIAggAyACoAf0gAOADIA +MwCFgASAC11BcHBDb250cm9sbGVy2ACIAA4AiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCPXxAPTlNO +ZXh0UmVzcG9uZGVyV05TRnJhbWVWTlNDZWxsWE5TdkZsYWdzWU5TRW5hYmxlZFhOU1dpbmRvd1tOU1N1 +cGVydmlld4ANgB6ADoAQEQEMCYAPgA3XAIgADgCJAJgAiwCNAI4AmQCaAJsAnACdAJUAmVpOU1N1YnZp +ZXdzgGqAm4CagGwRAQCAD4BqXxAVe3szNzQsIDUyfSwgezg2LCAxOH193gCiAA4AowCkAKUApgCnAKgA +qQCqAKsArACtAK4ArwCwALEAsgCzALQAtQCxALcAuACAALoAuwC8W05TQ2VsbEZsYWdzXxATTlNBbHRl +cm5hdGVDb250ZW50c11OU05vcm1hbEltYWdlXxASTlNQZXJpb2RpY0ludGVydmFsXk5TQnV0dG9uRmxh +Z3MyXxAQTlNBbHRlcm5hdGVJbWFnZV8QD05TS2V5RXF1aXZhbGVudFpOU0NvbnRlbnRzWU5TU3VwcG9y +dF1OU0NvbnRyb2xWaWV3XxAPTlNQZXJpb2RpY0RlbGF5XE5TQ2VsbEZsYWdzMl1OU0J1dHRvbkZsYWdz +E/////+EAf4AgB2AHIAVEBkQAoAZgByAEYASgAwQyBAAEkg8Uf9aRnVsbHNjcmVlbtQADgC/AMAAwQDC +AMMAxADFVk5TU2l6ZVZOU05hbWVYTlNmRmxhZ3OAFCNAKgAAAAAAAIATEQQUXEx1Y2lkYUdyYW5kZdIA +NwA4AMgAyaIAyQA7Vk5TRm9udNMADgAyAMsAzADNAM5eTlNSZXNvdXJjZU5hbWWAGIAWgBdXTlNJbWFn +ZVhOU1N3aXRjaNIANwA4ANIA06IA0wA7XxAQTlNDdXN0b21SZXNvdXJjZdIADgDVANYA11tOU0ltYWdl +TmFtZYAbgBrSADcAOADZANqiANoAO18QE05TQnV0dG9uSW1hZ2VTb3VyY2VQ0gA3ADgA3QDepADeAN8A +igA7XE5TQnV0dG9uQ2VsbFxOU0FjdGlvbkNlbGzSADcAOADhAOKlAOIA4wDkAOUAO1hOU0J1dHRvbllO +U0NvbnRyb2xWTlNWaWV3W05TUmVzcG9uZGVyXxASZnVsbHNjcmVlbkNoZWNrQm940gA3ADgA6ADpowDp +AOoAO18QFE5TTmliT3V0bGV0Q29ubmVjdG9yXk5TTmliQ29ubmVjdG9y0wAOAH0AfgDsAO0A7oArgCKA +KtgADgDwAPEA8gDzAPQA9QD2APcA+AD5ALEA+wD8AP0A/ldOU1RpdGxlXxARTlNLZXlFcXVpdk1vZE1h +c2taTlNLZXlFcXVpdl1OU01uZW1vbmljTG9jWU5TT25JbWFnZVxOU01peGVkSW1hZ2VWTlNNZW51gCmA +JBIAEAAAgBwSf////4AlgCeAI9MADgDwAQABAQECAQNbTlNNZW51SXRlbXOAl4EBk4EBlV1TdG9wIFNw +ZWFraW5n0wAOADIAywDMAM0BCIAYgBaAJl8QD05TTWVudUNoZWNrbWFya9MADgAyAMsAzADNAQ2AGIAW +gChfEBBOU01lbnVNaXhlZFN0YXRl0gA3ADgBEAERogERADtaTlNNZW51SXRlbV1zdG9wU3BlYWtpbmc6 +0gA3ADgBFAEVowEVAOoAO18QFU5TTmliQ29udHJvbENvbm5lY3RvctMADgB9AH4A7AEYARmAK4AtgDHY +AA4A8ADxAPIA8wD0APUA9gD3ARwA+QEdAPsA/AD9ASCAKYAvgDCAJYAngC7TAA4A8AEAAQEBIwEkgJeB +AYCBAYJaU2VsZWN0IEFsbFFhWnNlbGVjdEFsbDrTAA4AfQB+AOwBKgErgCuAM4A32AAOAPAA8QDyAPMA +9AD1APYA9wEuAPkBLwD7APwA/QEygCmANYA2gCWAJ4A00wAOAPABAAEBATUBNoCXgQFagQFbXkNoZWNr +IFNwZWxsaW5nUTteY2hlY2tTcGVsbGluZzrTAA4AfQB+AOwBPAE9gCuAOYA81wAOAPAA8gDzAPQA9QD2 +APcBQACxAPsA/AD9AUSAKYA7gByAJYAngDrTAA4A8AEAAQEBRwFIgJeBAXaBAXhfEA9SZXZlcnQgdG8g +U2F2ZWRfEBZyZXZlcnREb2N1bWVudFRvU2F2ZWQ60wAOAH0AfgDsAU0BToArgD6AQNgADgDwAPEA8gDz +APQA9QD2APcBUQD5ALEA+wD8AP0BMoApgD+AHIAlgCeANF8QG0NoZWNrIFNwZWxsaW5nIFdoaWxlIFR5 +cGluZ18QHnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nOtMADgB9AH4A7AFaAVuAK4BCgETYAA4A +8ADxAPIA8wD0APUA9gD3AV4A+QCxAPsA/AD9AP6AKYBDgByAJYAngCNeU3RhcnQgU3BlYWtpbmdec3Rh +cnRTcGVha2luZzrTAA4AfQB+AOwBZwFogCuARoBJ2QAOAWoA8ADxAPIA8wD0APUA9gD3ALEBbQFuAW8A ++wD8AP0BRFlOU1Rvb2xUaXCAKYAcgEcSABIAAIBIgCWAJ4A6XVBhZ2UgU2V0dXAuLi5RUF5ydW5QYWdl +TGF5b3V0OtMADgB9AH4A7AF4AXmAK4BLgE/YAA4A8ADxAPIA8wD0APUA9gD3AXwBfQF+APsA/AD9AYGA +KYBNEgAYAACAToAlgCeATNQADgDwAMABAAEBAYQBhQGGgJeBAWeBAXSBAWlbSGlkZSBPdGhlcnNRaF8Q +FmhpZGVPdGhlckFwcGxpY2F0aW9uczrTAA4AfQB+AOwBjAGNgCuAUYBU2AAOAPAA8QDyAPMA9AD1APYA +9wGQAPkBkQD7APwA/QEggCmAUoBTgCWAJ4AuVENvcHlRY1Vjb3B5OtMADgB9AH4A7AGaAZuAK4BWgFjY +AA4A8ADxAPIA8wD0APUA9gD3AZ4A+QCxAPsA/AD9AYGAKYBXgByAJYAngExYU2hvdyBBbGxfEBZ1bmhp +ZGVBbGxBcHBsaWNhdGlvbnM60wAOAH0AfgDsAacBqIArgFqAXtkADgDwAPEA8gDzAPQA9QD2AaoA9wGs +APkBrQD7APwA/QGwALRVTlNUYWeAKYBcgF2AJYAngFvTAA4A8AEAAQEBswG0gJeBAV2BAV9cU21hcnQg +UXVvdGVzUWdfECF0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbjrUAA4AfAB9AH4AfwG6AIEB +vIAggGCACoC12gG+AA4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0AtAHOACtcTlNXaW5kb3dW +aWV3XE5TU2NyZWVuUmVjdF1OU1dpbmRvd1RpdGxlWU5TV1RGbGFnc11OU1dpbmRvd0NsYXNzXE5TV2lu +ZG93UmVjdF8QD05TV2luZG93QmFja2luZ18QEU5TV2luZG93U3R5bGVNYXNrW05TVmlld0NsYXNzgGSA +tICzgGISdHgEAIBjgGEQA4AAXxAYe3s3NzIsIDU0OH0sIHs1MTYsIDI4MH19WUZpdHpxdWFrZdcAiAAO +AJgAiwHTAI0AjgCVAJoB1gCdAdcAlQHZW05TRnJhbWVTaXplgA+Am4BlgLGAD4Cy0gAOAD4ARgHcgJal +Ad0AmQHfAeAB4YBmgGqAo4CngKvYAIgADgCJAIoAiwCMAI0AjgHHAJAB5QHmAJMAlACVAceAZIAegGeA +aAmAD4BkXxAWe3szNzgsIDQxfSwgezEyNCwgMzJ9fdwAogAOAKMApQCmAKgAqQCqAKsArACtAK4B7ACw +ALEAswHvALEB8QC4Ad0AugH0AfUSBAH+AIAdgBwQgYAcgGmAEoBmEggAAAAT/////4aCQP9VU3RhcnTe +AIgB+AAOAfkAiQH6AJgAiwH7AI0B/AH9AI4B/gHHALsCAAIBAgICAwIEAgUCBgCVAggAtAHHAI9ZTlNC +b3hUeXBlW05TVGl0bGVDZWxsXU5TVHJhbnNwYXJlbnRcTlNCb3JkZXJUeXBlWU5TT2Zmc2V0c18QD05T +VGl0bGVQb3NpdGlvbl1OU0NvbnRlbnRWaWV3gGSAooCegJwIgGsQDBABgA+AnYBkgA3SAA4APgBGAg2A +lqEAj4AN0gAOAD4ARgIRgJalAhICEwIUAhUAgIBtgHuAg4CHgAzYAIgADgCJAIoAiwCMAI0AjgCPAhkC +GgIbAJMAlACVAI+ADYB6gG6AbwmAD4ANXxAWe3sxNSwgMTI3fSwgezE3MiwgMTd9fdgAogAOAiEAqQCq +AKsArQIiAiMCJAIlAiYAuAISAikCKl8QEU5TQmFja2dyb3VuZENvbG9yW05TVGV4dENvbG9yEgQB/kCA +eYBxgHCAEoBtEhBABACAdl8QF0NvbW1hbmQgbGluZSBwYXJhbWV0ZXJz1QAOAi0CLgIvAjACMQIyAjMC +NAI1V05TQ29sb3JcTlNDb2xvclNwYWNlW05TQ29sb3JOYW1lXU5TQ2F0YWxvZ05hbWWAdYB0EAaAc4By +VlN5c3RlbVxjb250cm9sQ29sb3LTAA4CLgI5AjEBzgI7V05TV2hpdGWAdUswLjY2NjY2NjY5ANIANwA4 +Aj0CLaICLQA71QAOAi0CLgIvAjACMQJAAjMCQQI1gHWAeIB3gHJfEBBjb250cm9sVGV4dENvbG9y0wAO +Ai4COQIxAc4CRoB1QjAA0gA3ADgCSAJJpAJJAN8AigA7XxAPTlNUZXh0RmllbGRDZWxs0gA3ADgCSwJM +pQJMAOMA5ADlADtbTlNUZXh0RmllbGTYAIgADgCJAIoAiwCMAI0AjgCPAhkCUAJRAJMAlACVAI+ADYB6 +gHyAfQmAD4ANXxAVe3sxOCwgOTd9LCB7NDQwLCAyMn192QCiAA4CIQCpAKoAqwCtAlcCIgJYAiQCWgCx +ALgCEwIpAJQCX18QEU5TRHJhd3NCYWNrZ3JvdW5kE/////+Ucf5BgHmAfoAcgBKAewmAgdUADgItAi4C +LwIwAjECYgIzAmMCNYB1gICAf4ByXxATdGV4dEJhY2tncm91bmRDb2xvctMADgIuAjkCMQHOAmiAdUIx +ANUADgItAi4CLwIwAjECQAIzAmwCNYB1gHiAgoByWXRleHRDb2xvctgAiAAOAIkAigCLAIwAjQCOAI8C +GQJyAnMAkwCUAJUAj4ANgHqAhICFCYAPgA1fEBV7ezE1LCA1NH0sIHsxNzUsIDE3fX3YAKIADgIhAKkA +qgCrAK0CIgIjAiQCJQJ7ALgCFAIpAiqAeYBxgIaAEoCDgHZfEBpSZXNvbHV0aW9uIGFuZCBjb2xvciBk +ZXB0aNgAiAAOAIkAigCLAIwAjQCOAI8CggKDAoQAkwCUAJUAj4ANgJmAiICJCYAPgA1fEBV7ezE1LCAy +Mn0sIHs0NDYsIDI2fX3fEBIAogKKAosAowClAA4ApgCoAKoBEQCrAowCjQKOAKwArQD2AK4CjwCUALQA +sQKSApMCBgCxALgClgIVAgYAlACUApoCmwKcAp1fEBpOU01lbnVJdGVtUmVzcGVjdEFsaWdubWVudF8Q +D05TQXJyb3dQb3NpdGlvbl8QD05TUHJlZmVycmVkRWRnZV8QEk5TVXNlc0l0ZW1Gcm9tTWVudV1OU0Fs +dGVyc1N0YXRlE/////+EQf5ACYAcEEuAmIAcgBKAioCHCQkRAZARCACAixIGgkD/3AKfAA4A8ADxAPIC +oADzAPQA9QD2AqECogKEAPcCpQD5ALEAlAD7APwA/QKcAqsCBlhOU1RhcmdldFxOU0lzRGlzYWJsZWRY +TlNBY3Rpb25XTlNTdGF0ZYCJgCmAjIAcCYAlgCeAi4CN0wAOAPABAAEBAq4Cr4CXgI6Aj1ZJdGVtIDFf +EBFfcG9wVXBJdGVtQWN0aW9uOlpPdGhlclZpZXdz0gAOAD4ARgK1gJajApYCtwK4gIqAkICT2gKfAA4A +8ADxAPIA8wD0APUA9gKhAoQA9wK8APkAsQD7APwA/QKcAsGAiYApgJGAHIAlgCeAi4CSVkl0ZW0gMtoC +nwAOAPAA8QDyAPMA9AD1APYCoQKEAPcCxgD5ALEA+wD8AP0CnALLgImAKYCUgByAJYAngIuAlVZJdGVt +IDPSADcAOALOAs+jAs8C0AA7Xk5TTXV0YWJsZUFycmF5V05TQXJyYXnSADcAOALSAPaiAPYAO9IANwA4 +AtQC1aYC1QLWAN4A3wCKADtfEBFOU1BvcFVwQnV0dG9uQ2VsbF5OU01lbnVJdGVtQ2VsbNIANwA4AtgC +2aYC2QDiAOMA5ADlADtdTlNQb3BVcEJ1dHRvbl8QFHt7MSwgMX0sIHs0ODAsIDE1OX190gA3ADgC3ADk +owDkAOUAO18QFnt7MTcsIDg1fSwgezQ4MiwgMTc1fX1WezAsIDB91wCiAA4CIQCpAKoArQIiAewCJAJa +AuIC4wC7AuSAeYB+gJ+AoIChWFNldHRpbmdz1AAOAL8AwADBAMIC6ADEAuqAFCNAJgAAAAAAAIATEQwc +0wAOAi4COQIxAc4C7YB1TTAgMC44MDAwMDAwMQDSADcAOALvAvCkAvAA5ADlADtVTlNCb3jYAIgADgCJ +AIoAiwCMAI0AjgHHAJAC9AL1AJMAlACVAceAZIAegKSApQmAD4BkXxAWe3syNTQsIDQxfSwgezEyNCwg +MzJ9fdwAogAOAKMApQCmAKgAqQCqAKsArACtAK4B7ACwALEAswHvALEC/gC4Ad8AugH0AfWAHYAcgByA +poASgKNWQ2FuY2Vs2ACIAA4AiQCKAIsAjACNAI4BxwCQAwUDBgCTAJQAlQHHgGSAHoCogKkJgA+AZF8Q +FXt7MTgsIDUwfSwgezE3MywgMTh9fd4AogAOAKMApAClAKYApwCoAKkAqgCrAKwArQCuAK8AsACxALIA +swC0ALUAsQMRALgB4AC6ALsAvIAdgByAFYAZgByAqoASgKdfEBdBbHdheXMgc2hvdyB0aGlzIGRpYWxv +Z9gAiAAOAIkAigCLAIwAjQCOAccCGQMYAxkAkwCUAJUBx4BkgHqArICtCYAPgGRfEBV7ezE3LCAxNX0s +IHsyMTAsIDI5fX3YAKIADgIhAKkAqgCrAK0CIgHsAiQCJQMhAyIB4QMkAyWAeYBxgK6Ar4CrEhBAAACA +sF8QPEhvbGQgdGhlIENvbW1hbmQga2V5IG9uIHN0YXJ0dXAgdG8gZGlzcGxheSB0aGlzIGRpYWxvZyBh +Z2FpbtQADgC/AMAAwQDCAugAxAMqgBSAExAQ0wAOAi4DLAIxAgYDLlVOU1JHQoB1TxARMCAwIDAgMC42 +NDk5OTk5OABaezUxNiwgMjgwfV8QFnt7MCwgMH0sIHsxNjgwLCAxMDI4fX3SADcAOAMyAzOiAzMAO18Q +EE5TV2luZG93VGVtcGxhdGVebGF1bmNoZXJXaW5kb3fTAA4AfQB+AOwDNwM4gCuAt4C62QAOAPAA8QDy +APMA9AD1APYBqgD3AzsA+QM8APsA/AD9AbACBoApgLiAuYAlgCeAW18QEFNtYXJ0IENvcHkvUGFzdGVR +Zl8QGHRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlOtMADgB9AH4A7ANFA0aAK4C8gL/ZAA4A8ADxAPIA8wD0 +APUA9gGqAPcDSQFuA0oA+wD8AP0BsAHOgCmAvYC+gCWAJ4BbW1NtYXJ0IExpbmtzUUdfEB10b2dnbGVB +dXRvbWF0aWNMaW5rRGV0ZWN0aW9uOtQADgB8AH0AfgB/AhUAgQNVgCCAh4AKgMFfEBNzY3JlZW5TZXR0 +aW5nc1BvcFVw0wAOAH0AfgDsA1kDWoArgMOAxtgADgDwAPEA8gDzAPQA9QD2APcDXQD5A14A+wD8AP0B +IIApgMSAxYAlgCeALlNDdXRReFRjdXQ60wAOAH0AfgDsA2cDaIArgMiAy9gADgDwAPEA8gDzAPQA9QD2 +APcDawD5A2wA+wD8AP0BRIApgMmAyoAlgCeAOlNOZXdRblxuZXdEb2N1bWVudDrUAA4AfAB9AH4AfwCB +AboDd4AggAqAYIDNWGRlbGVnYXRl1AAOAHwAfQB+AOwAHwN8A32AK4ACgM+A0dcADgDwAPIA8wD0APUA +9gD3A4AAsQD7APwA/QGBgCmA0IAcgCWAJ4BMXxAUQWJvdXQgTmV3QXBwbGljYXRpb25fEB1vcmRlckZy +b250U3RhbmRhcmRBYm91dFBhbmVsOtQADgB8AH0AfgDsAIEB3QOLgCuACoBmgNNcbGF1bmNoUXVha2U6 +1AAOAHwAfQB+AH8CFQCBA5GAIICHgAqA1V8QD3NjcmVlbk1vZGVQb3BVcNQADgB8AH0AfgDsAIEB3wOX +gCuACoCjgNdXY2FuY2VsOtMADgB9AH4A7AObA5yAK4DZgNvYAA4A8ADxAPIA8wD0APUA9gD3A58A+QF+ +APsA/AD9AYGAKYDagE6AJYAngExfEBNIaWRlIE5ld0FwcGxpY2F0aW9uVWhpZGU61AAOAHwAfQB+AOwA +gQIVA6qAK4AKgIeA3V8QEWNoYW5nZVNjcmVlbk1vZGU60wAOAH0AfgDsA64Dr4ArgN+A4tgADgDwAPEA +8gDzAPQA9QD2APcDsgD5ALEA+wD8AP0DtoApgOGAHIAlgCeA4NQADgDwAMABAAEBA7kDugO7gJeBAXqB +AX2BAXxaQ2xlYXIgTWVudV8QFWNsZWFyUmVjZW50RG9jdW1lbnRzOtMADgB9AH4A7APAA8GAK4DkgOfY +AA4A8ADxAPIA8wD0APUA9gD3A8QA+QPFAPsA/AD9AYGAKYDlgOaAJYAngExfEBNRdWl0IE5ld0FwcGxp +Y2F0aW9uUXFadGVybWluYXRlOtMADgB9AH4A7APOA8+AK4DpgOzYAA4A8ADxAPIA8wD0APUA9gD3A9IA ++QPTAPsA/AD9AUSAKYDqgOuAJYAngDplAE8AcABlAG4gJlFvXW9wZW5Eb2N1bWVudDrTAA4AfQB+AOwD +3APdgCuA7oDx2AAOAPAA8QDyAPMA9AD1APYA9wPgAPkD4QD7APwA/QFEgCmA74DwgCWAJ4A6VUNsb3Nl +UXddcGVyZm9ybUNsb3NlOtMADgB9AH4A7APqA+uAK4DzgPXYAA4A8ADxAPIA8wD0APUA9gD3A+4A+QCx +APsA/AD9ATKAKYD0gByAJYAngDRfEBtDaGVjayBHcmFtbWFyIFdpdGggU3BlbGxpbmdfEBZ0b2dnbGVH +cmFtbWFyQ2hlY2tpbmc60wAOAH0AfgDsA/cD+IArgPeA+tkADgDwAPEA8gDzAPQA9QD2AaoA9wP7APkD +PAD7APwA/QP/AgaAKYD5gLmAJYAngPjTAA4A8AEAAQEEAgQDgJeBAYaBAYhlAEYAaQBuAGQgJl8QF3Bl +cmZvcm1GaW5kUGFuZWxBY3Rpb2460wAOAH0AfgDsBAgECYArgPyA/9gADgDwAPEA8gDzAPQA9QD2APcE +DAD5ALEA+wD8AP0EEIApgP6AHIAlgCeA/dMADgDwAQABAQQTBBSAl4EBnYEBn28QEgBDAHUAcwB0AG8A +bQBpAHoAZQAgAFQAbwBvAGwAYgBhAHIgJl8QH3J1blRvb2xiYXJDdXN0b21pemF0aW9uUGFsZXR0ZTrT +AA4AfQB+AOwEGQQagCuBAQGBAQXYAA4A8ADxAPIA8wD0APUA9gD3BB0BbgQeAPsA/AD9BCGAKYEBA4EB +BIAlgCeBAQLTAA4A8AEAAQEEJAQlgJeBAZeBAZlbU2hvdyBDb2xvcnNRQ18QFW9yZGVyRnJvbnRDb2xv +clBhbmVsOtMADgB9AH4A7AQrBCyAK4EBB4EBCtgADgDwAPEA8gDzAPQA9QD2APcELwF9BDAA+wD8AP0E +EIApgQEIgQEJgCWAJ4D9XFNob3cgVG9vbGJhclF0XxATdG9nZ2xlVG9vbGJhclNob3duOtQADgB8AH0A +fgB/AeAAgQQ7gCCAp4AKgQEMXxASc2hvd0RpYWxvZ0NoZWNrQm940wAOAH0AfgDsBD8EQIArgQEOgQER +2AAOAPAA8QDyAPMA9AD1APYA9wRDAPkERAD7APwA/QEggCmBAQ+BARCAJYAngC5VUGFzdGVRdlZwYXN0 +ZTrTAA4AfQB+AOwETQROgCuBAROBARbYAA4A8ADxAPIA8wD0APUA9gD3BFEBbgRSAPsA/AD9AUSAKYEB +FIEBFYAlgCeAOmgAUwBhAHYAZQAgAEEAcyAmUVNfEA9zYXZlRG9jdW1lbnRBczrTAA4AfQB+AOwEWwRc +gCuBARiBARvYAA4A8ADxAPIA8wD0APUA9gD3BF8BbgRgAPsA/AD9ASCAKYEBGYEBGoAlgCeALlRSZWRv +UVpVcmVkbzrTAA4AfQB+AOwEaQRqgCuBAR2BASDYAA4A8ADxAPIA8wD0APUA9gD3BG0A+QCxAPsA/AD9 +BHGAKYEBH4AcgCWAJ4EBHtQADgDwAMABAAEBBHQEdQR2gJeBAaGBAaSBAaNfEBJCcmluZyBBbGwgdG8g +RnJvbnRfEA9hcnJhbmdlSW5Gcm9udDrTAA4AfQB+AOwEewR8gCuBASKBASTYAA4A8ADxAPIA8wD0APUA +9gD3BH8A+QCxAPsA/AD9BHGAKYEBI4AcgCWAJ4EBHlRab29tXHBlcmZvcm1ab29tOtMADgB9AH4A7ASI +BImAK4EBJoEBKdgADgDwAPEA8gDzAPQA9QD2APcEjAD5BI0A+wD8AP0D/4ApgQEngQEogCWAJ4D4XxAR +SnVtcCB0byBTZWxlY3Rpb25Ral8QHWNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE60wAOAH0AfgDs +BJYEl4ArgQErgQEv2AAOAPAA8QDyAPMA9AD1APYA9wSaAPkEmwD7APwA/QSegCmBAS2BAS6AJYAngQEs +0wAOAPABAAEBBKEEooCXgQGmgQGoXxATTmV3QXBwbGljYXRpb24gSGVscFE/WXNob3dIZWxwOtQADgB8 +AH0AfgB/AIEEqQN3gCCACoEBMYDN0gAOADIAMwStgASBATJdTlNBcHBsaWNhdGlvbtMADgB9AH4A7ASx +BLKAK4EBNIEBN9gADgDwAPEA8gDzAPQA9QD2APcEtQD5BLYA+wD8AP0BRIApgQE1gQE2gCWAJ4A6VFNh +dmVRc11zYXZlRG9jdW1lbnQ60wAOAH0AfgDsBL8EwIArgQE5gQE82AAOAPAA8QDyAPMA9AD1APYA9wTD +APkExAD7APwA/QEygCmBATqBATuAJYAngDRuAFMAaABvAHcAIABTAHAAZQBsAGwAaQBuAGcgJlE6XxAP +c2hvd0d1ZXNzUGFuZWw60wAOAH0AfgDsBM0EzoArgQE+gQFB2AAOAPAA8QDyAPMA9AD1APYA9wTRAPkE +0gD7APwA/QFEgCmBAT+BAUCAJYAngDpmAFAAcgBpAG4AdCAmUXBWcHJpbnQ60wAOAH0AfgDsBNsE3IAr +gQFDgQFG2AAOAPAA8QDyAPMA9AD1APYA9wTfAPkE4AD7APwA/QRxgCmBAUSBAUWAJYAngQEeWE1pbmlt +aXplUW1fEBNwZXJmb3JtTWluaWF0dXJpemU60wAOAH0AfgDsBOkE6oArgQFIgQFL2AAOAPAA8QDyAPMA +9AD1APYA9wTtAPkE7gD7APwA/QEggCmBAUmBAUqAJYAngC5UVW5kb1F6VXVuZG860wAOAH0AfgDsBPcE ++IArgQFNgQFP2AAOAPAA8QDyAPMA9AD1APYA9wT7APkAsQD7APwA/QEggCmBAU6AHIAlgCeALlZEZWxl +dGVXZGVsZXRlOtQADgB8AH0AfgB/AhMAgQUGgCCAe4AKgQFRXnBhcmFtVGV4dEZpZWxk1wAOAHwFCQUK +AH0AfgULBQwAgQUOBQ8CFQURALRZTlNLZXlQYXRoWU5TQmluZGluZ18QHE5TTmliQmluZGluZ0Nvbm5l +Y3RvclZlcnNpb26BAVaACoEBVYEBVICHgQFTXxAUY29udGVudDogc2NyZWVuTW9kZXNXY29udGVudFtz +Y3JlZW5Nb2Rlc9IANwA4BRYFF6MFFwDqADtfEBVOU05pYkJpbmRpbmdDb25uZWN0b3LSAA4APgUZBRqB +AayvEGwBmgEqBR0FHgEyBSABjAJRBFsFJAIVAeEBZwKEBSkA/gQhBBkB3QSpASAFMAITA1kDRQObA2cB +xwU3BTgD9wP/AbABgQT3BGkEiAQQBUEECAK3AacEngFNAnMBPAIbAIEFSwS/BU0B4ASxBVABugMZAXgF +VAVVAO0EcQKWAVoFWgEYArgFXQTpAUQB3wCAA+oE2wQ/BWUDrgKcBWgCFAVqA3wC9QVtBJYCEgTNBE0F +cgR7AzcB5gV2BXcFeAV5A8AFewCZAJIEKwPOBYAFgQO2AwYFhAWFA9yAVoAzgQFYgQFZgDSBAVyAUYB9 +gQEYgQFggIeAq4BGgImBAWOAI4EBAoEBAYBmgQExgC6BAXWAe4DDgLyA2YDIgGSBAZqBAaqA94D4gFuA +TIEBTYEBHYEBJoD9gQGJgPyAkIBagQEsgD6AhYA5gG+ACoEBf4EBOYEBkoCngQE0gQFsgGCArYBLgQFy +gQFzgCKBAR6AioBCgQGggC2Ak4EBa4EBSIA6gKOADIDzgQFDgQEOgQGNgN+Ai4EBkICDgQFqgM+ApYEB +eYEBK4BtgQE+gQETgQFmgQEigLeAaIEBpYEBb4EBnIEBloDkgQGLgGqAEIEBB4DpgQGDgQF+gOCAqYEB +hYEBhIDu2gAOAPAA8QWIAPICoADzAPQA9QD2APcAsQD5AJQAsQCUAPsA/AD9AURdTlNJc1NlcGFyYXRv +coApgBwJgBwJgCWAJ4A62gAOAPAA8QWIAPICoADzAPQA9QD2APcAsQD5AJQAsQCUAPsA/AD9BHGAKYAc +CYAcCYAlgCeBAR5fEBRTcGVsbGluZyBhbmQgR3JhbW1hctIADgA+AEYFnYCWpAS/ASoBTQPqgQE5gDOA +PoDz2gAOBaMA8ADxAPIA8wD0APUA9gKhAPcBsAGzAPkAsQD7APwA/QEgBatZTlNTdWJtZW51gCmAW4EB +XYAcgCWAJ4AugQFeXVN1YnN0aXR1dGlvbnNec3VibWVudUFjdGlvbjrSAA4APgBGBbCAlqMDNwGnA0WA +t4BagLzYAA4A8ADxAPIA8wD0APUA9gD3BbYA+QW3APsA/AD9AYGAKYEBYYEBYoAlgCeATGwAUAByAGUA +ZgBlAHIAZQBuAGMAZQBzICZRLNQADgDwAMABAAEBBb8FwAXBgJeBAWSBAamBAWVZQU1haW5NZW510gAO +AD4ARgXFgJanBXIFMAVLBXkFeAVaBXaBAWaBAXWBAX+BAZaBAZyBAaCBAaXaAA4FowDwAPEA8gDzAPQA +9QD2AqEA9wGBAYQA+QCxAPsA/AD9BSkF1YApgEyBAWeAHIAlgCeBAWOBAWheTmV3QXBwbGljYXRpb27S +AA4APgBGBdmAlqsDfAVqBSQFXQVQBVQDmwF4AZoFVQPAgM+BAWqBAWCBAWuBAWyBAXKA2YBLgFaBAXOA +5NoADgDwAPEFiADyAqAA8wD0APUA9gD3ALEA+QCUALEAlAD7APwA/QGBgCmAHAmAHAmAJYAngEzaAA4A +8ADxBYgA8gKgAPMA9AD1APYA9wCxAPkAlACxAJQA+wD8AP0BgYApgBwJgBwJgCWAJ4BM2gAOBaMA8ADx +APIA8wD0APUA9gKhAPcFdwX6APkAsQD7APwA/QGBBf+AKYEBb4EBbYAcgCWAJ4BMgQFuWFNlcnZpY2Vz +1AAOAPAAwAEAAQEF+gYEBgWAl4EBbYEBcYEBcNIADgA+AEYGCICWoF8QD19OU1NlcnZpY2VzTWVuddoA +DgDwAPEFiADyAqAA8wD0APUA9gD3ALEA+QCUALEAlAD7APwA/QGBgCmAHAmAHAmAJYAngEzaAA4A8ADx +BYgA8gKgAPMA9AD1APYA9wCxAPkAlACxAJQA+wD8AP0BgYApgBwJgBwJgCWAJ4BMXF9OU0FwcGxlTWVu +ddoADgWjAPAA8QDyAPMA9AD1APYCoQD3AUQBRwD5ALEA+wD8AP0FKQYlgCmAOoEBdoAcgCWAJ4EBY4EB +d1RGaWxl0gAOAD4ARgYpgJarA2cDzgVtBR0D3ASxBE0BPAWBAWcEzYDIgOmBAXmBAViA7oEBNIEBE4A5 +gQF+gEaBAT7aAA4FowDwAPEA8gDzAPQA9QD2AqEA9wO2A7kA+QCxAPsA/AD9AUQGPYApgOCBAXqAHIAl +gCeAOoEBe1tPcGVuIFJlY2VudNIADgA+AEYGQYCWoQOugN9fEBZfTlNSZWNlbnREb2N1bWVudHNNZW51 +2gAOAPAA8QWIAPICoADzAPQA9QD2APcAsQD5AJQAsQCUAPsA/AD9AUSAKYAcCYAcCYAlgCeAOtoADgWj +APAA8QDyAPMA9AD1APYCoQD3ASABIwD5ALEA+wD8AP0FKQZVgCmALoEBgIAcgCWAJ4EBY4EBgVRFZGl0 +0gAOAD4ARgZZgJatBOkEWwWAA1kBjAQ/BPcBGAWFBYQFaAUgBU2BAUiBARiBAYOAw4BRgQEOgQFNgC2B +AYSBAYWBAZCBAVyBAZLaAA4A8ADxBYgA8gKgAPMA9AD1APYA9wCxAPkAlACxAJQA+wD8AP0BIIApgBwJ +gBwJgCWAJ4Au2gAOAPAA8QWIAPICoADzAPQA9QD2APcAsQD5AJQAsQCUAPsA/AD9ASCAKYAcCYAcCYAl +gCeALtoADgWjAPAA8QDyAPMA9AD1APYCoQD3A/8EAgD5ALEA+wD8AP0BIAaBgCmA+IEBhoAcgCWAJ4Au +gQGHVEZpbmTSAA4APgBGBoWAlqUD9wVBBXsFZQSIgPeBAYmBAYuBAY2BASbZAA4A8ADxAPIA8wD0APUA +9gGqAPcGjQD5Aa0A+wD8AP0D/wC0gCmBAYqAXYAlgCeA+FlGaW5kIE5leHTZAA4A8ADxAPIA8wD0APUA +9gGqAPcGlQFuA0oA+wD8AP0D/wHOgCmBAYyAvoAlgCeA+F1GaW5kIFByZXZpb3Vz2QAOAPAA8QDyAPMA +9AD1APYBqgD3Bp0A+QaeAPsA/AD9A/8GooApgQGOgQGPgCWAJ4D4EAdfEBZVc2UgU2VsZWN0aW9uIGZv +ciBGaW5kUWXaAA4FowDwAPEA8gDzAPQA9QD2AqEA9wEyATUA+QCxAPsA/AD9ASAGrYApgDSBAVqAHIAl +gCeALoEBkdoADgWjAPAA8QDyAPMA9AD1APYCoQD3AP4BAgD5ALEA+wD8AP0BIAa2gCmAI4EBk4AcgCWA +J4AugQGUVlNwZWVjaNIADgA+AEYGuoCWogFaAO2AQoAi2gAOBaMA8ADxAPIA8wD0APUA9gKhAPcEIQQk +APkAsQD7APwA/QUpBsWAKYEBAoEBl4AcgCWAJ4EBY4EBmFZGb3JtYXTSAA4APgBGBsmAlqIFNwQZgQGa +gQEB2AAOAPAA8QDyAPMA9AD1APYA9wbOAPkEMAD7APwA/QQhgCmBAZuBAQmAJYAngQECWlNob3cgRm9u +dHPaAA4FowDwAPEA8gDzAPQA9QD2AqEA9wQQBBMA+QCxAPsA/AD9BSkG3IApgP2BAZ2AHIAlgCeBAWOB +AZ5UVmlld9IADgA+AEYG4ICWogQrBAiBAQeA/NoADgWjAPAA8QDyAPMA9AD1APYCoQD3BHEEdAD5ALEA ++wD8AP0FKQbrgCmBAR6BAaGAHIAlgCeBAWOBAaJWV2luZG930gAOAD4ARgbvgJakBNsEewUeBGmBAUOB +ASKBAVmBAR1eX05TV2luZG93c01lbnXaAA4FowDwAPEA8gDzAPQA9QD2AqEA9wSeBKEA+QCxAPsA/AD9 +BSkG/YApgQEsgQGmgByAJYAngQFjgQGnVEhlbHDSAA4APgBGBwGAlqEEloEBK1tfTlNNYWluTWVuddIA +DgcFBwYAlF8QEE5TU2hhcmVkSW5zdGFuY2WBAasJ0gA3ADgHCQcKowcKBwsAO18QGE5TVXNlckRlZmF1 +bHRzQ29udHJvbGxlclxOU0NvbnRyb2xsZXLSADcAOAcNAtCiAtAAO9IADgA+BRkHEIEBrK8QbAGBATIB +RARxBWgBIAEgAhMBIAGBAJkBxwFEAhUAHwVNBXkEIQHHAB8FSwUpAJkBIAGwAYEBRAG6BCEAHwP/BYQF +IAVyASAEcQP/BXgD/wQQApwBsAV2ATICFAFEAhIAHwUpATIBIAHHAUQBgQAfAeEBgQGBAYEA/gVaApwA +/gUpASACnAGBASAFMAHHAJkBMgRxASAD/wO2AoQBIACZAYEBgQHfAUQEngCZAUQBRAUpBHEBsAHdBSkF +UAUpBSkBgQP/AccAgAQQAUQBIAFEBW0B4AEgASABRIBMgDSAOoEBHoEBkIAugC6Ae4AugEyAaoBkgDqA +h4ACgQGSgQGWgQECgGSAAoEBf4EBY4BqgC6AW4BMgDqAYIEBAoACgPiBAYWBAVyBAWaALoEBHoD4gQGc +gPiA/YCLgFuBAaWANICDgDqAbYACgQFjgDSALoBkgDqATIACgKuATIBMgEyAI4EBoICLgCOBAWOALoCL +gEyALoEBdYBkgGqANIEBHoAugPiA4ICJgC6AaoBMgEyAo4A6gQEsgGqAOoA6gQFjgQEegFuAZoEBY4EB +bIEBY4EBY4BMgPiAZIAMgP2AOoAugDqBAXmAp4AugC6AOtIADgA+BRkHf4EBrK8QbQGaASoFHQUeATIF +IAGMAlEEWwUkAeECFQFnAoQFKQD+BCEEGQHdBKkFMAEgAhMDZwNZA5sDRQHHBTcFOAP3AbAD/wGBBPcE +aQQQBAgEiAVBArcBpwSeAU0CcwE8AhsAgQVLBL8FTQHgBLEFUAG6AxkBeAVUBVUA7QRxApYBWgVaARgC +uAFEAd8E6QVdAIAD6gAfBNsEPwOuBWUCnAVoAhQFagN8AvUFbQSWAhIEzQRNBXIEewHmAzcFdgV4BXkF +dwPABXsAmQCSBCsDzgWBBYADtgMGBYQFhQPcgFaAM4EBWIEBWYA0gQFcgFGAfYEBGIEBYICrgIeARoCJ +gQFjgCOBAQKBAQGAZoEBMYEBdYAugHuAyIDDgNmAvIBkgQGagQGqgPeAW4D4gEyBAU2BAR2A/YD8gQEm +gQGJgJCAWoEBLIA+gIWAOYBvgAqBAX+BATmBAZKAp4EBNIEBbIBggK2AS4EBcoEBc4AigQEegIqAQoEB +oIAtgJOAOoCjgQFIgQFrgAyA84ACgQFDgQEOgN+BAY2Ai4EBkICDgQFqgM+ApYEBeYEBK4BtgQE+gQET +gQFmgQEigGiAt4EBpYEBnIEBloEBb4DkgQGLgGqAEIEBB4DpgQF+gQGDgOCAqYEBhYEBhIDu0gAOAD4F +GQfvgQGsrxBtB/AH8QfyB/MH9Af1B/YH9wf4B/kH+gf7B/wH/Qf+B/8IAAgBCAIIAwgECAUIBggHCAgI +CQgKCAsIDAgNCA4IDwgQCBEIEggTCBQIFQgWCBcIGAgZCBoIGwgcCB0IHggfCCAIIQgiCCMIJAglCCYI +JwgoCCkIKggrCCwILQguCC8IMAgxCDIIMwg0CDUINgg3CDgIOQg6CDsIPAg9CD4IPwhACEEIQghDCEQI +RQhGCEcISAhJCEoISwhMCE0ITghPCFAIUQhSCFMIVAhVCFYIVwhYCFkIWghbCFyBAbCBAbGBAbKBAbOB +AbSBAbWBAbaBAbeBAbiBAbmBAbqBAbuBAbyBAb2BAb6BAb+BAcCBAcGBAcKBAcOBAcSBAcWBAcaBAceB +AciBAcmBAcqBAcuBAcyBAc2BAc6BAc+BAdCBAdGBAdKBAdOBAdSBAdWBAdaBAdeBAdiBAdmBAdqBAduB +AdyBAd2BAd6BAd+BAeCBAeGBAeKBAeOBAeSBAeWBAeaBAeeBAeiBAemBAeqBAeuBAeyBAe2BAe6BAe+B +AfCBAfGBAfKBAfOBAfSBAfWBAfaBAfeBAfiBAfmBAfqBAfuBAfyBAf2BAf6BAf+BAgCBAgGBAgKBAgOB +AgSBAgWBAgaBAgeBAgiBAgmBAgqBAguBAgyBAg2BAg6BAg+BAhCBAhGBAhKBAhOBAhSBAhWBAhaBAheB +AhiBAhmBAhqBAhuBAhxfEBRNZW51IEl0ZW0gKFNob3cgQWxsKV8QGk1lbnUgSXRlbSAoQ2hlY2sgU3Bl +bGxpbmcpUTdbU2VwYXJhdG9yLTJfEBtNZW51IChTcGVsbGluZyBhbmQgR3JhbW1hcilfEBlNZW51IEl0 +ZW0gKFN1YnN0aXR1dGlvbnMpXxAQTWVudSBJdGVtIChDb3B5KV8QD1RleHQgRmllbGQgQ2VsbF8QEE1l +bnUgSXRlbSAoUmVkbylTMTIxXxBKU3RhdGljIFRleHQgKEhvbGQgdGhlIENvbW1hbmQga2V5IG9uIHN0 +YXJ0dXAgdG8gZGlzcGxheSB0aGlzIGRpYWxvZyBhZ2FpbilfEBVQb3B1cCBCdXR0b24gKEl0ZW0gMSlR +NV8QG1BvcCBVcCBCdXR0b24gQ2VsbCAoSXRlbSAxKVhNYWluTWVudV1NZW51IChTcGVlY2gpXU1lbnUg +KEZvcm1hdClfEBdNZW51IEl0ZW0gKFNob3cgQ29sb3JzKV8QE1B1c2ggQnV0dG9uIChTdGFydClbQXBw +bGljYXRpb25fEBBNZW51IEl0ZW0gKEZpbGUpW01lbnUgKEVkaXQpWlRleHQgRmllbGRROV8QD01lbnUg +SXRlbSAoQ3V0KV8QH01lbnUgSXRlbSAoSGlkZSBOZXdBcHBsaWNhdGlvbilfEBdNZW51IEl0ZW0gKFNt +YXJ0IExpbmtzKVxDb250ZW50IFZpZXdfEBZNZW51IEl0ZW0gKFNob3cgRm9udHMpXxAfU2hhcmVkIFVz +ZXIgRGVmYXVsdHMgQ29udHJvbGxlcm8QEQBNAGUAbgB1ACAASQB0AGUAbQAgACgARgBpAG4AZCAmAClf +EBRNZW51IChTdWJzdGl0dXRpb25zKVtNZW51IChGaW5kKV8QFU1lbnUgKE5ld0FwcGxpY2F0aW9uKV8Q +Ek1lbnUgSXRlbSAoRGVsZXRlKV8QHk1lbnUgSXRlbSAoQnJpbmcgQWxsIHRvIEZyb250KVtNZW51IChW +aWV3KW8QHgBNAGUAbgB1ACAASQB0AGUAbQAgACgAQwB1AHMAdABvAG0AaQB6AGUAIABUAG8AbwBsAGIA +YQByICYAKV8QHU1lbnUgSXRlbSAoSnVtcCB0byBTZWxlY3Rpb24pXxAVTWVudSBJdGVtIChGaW5kIE5l +eHQpXxASTWVudSBJdGVtIChJdGVtIDIpXxAYTWVudSBJdGVtIChTbWFydCBRdW90ZXMpUTJfECdNZW51 +IEl0ZW0gKENoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZylfECxUZXh0IEZpZWxkIENlbGwgKFJlc29s +dXRpb24gYW5kIGNvbG9yIGRlcHRoKVIxMF8QKVRleHQgRmllbGQgQ2VsbCAoQ29tbWFuZCBsaW5lIHBh +cmFtZXRlcnMpXkFwcCBDb250cm9sbGVyXxAQTWVudSBJdGVtIChFZGl0KW8QGgBNAGUAbgB1ACAASQB0 +AGUAbQAgACgAUwBoAG8AdwAgAFMAcABlAGwAbABpAG4AZyAmAClfEBJNZW51IEl0ZW0gKFNwZWVjaClf +ECNDaGVjayBCb3ggKEFsd2F5cyBzaG93IHRoaXMgZGlhbG9nKVEzXxAUTWVudSBJdGVtIChTZXJ2aWNl +cylfEBJXaW5kb3cgKEZpdHpxdWFrZSlfEE5UZXh0IEZpZWxkIENlbGwgKEhvbGQgdGhlIENvbW1hbmQg +a2V5IG9uIHN0YXJ0dXAgdG8gZGlzcGxheSB0aGlzIGRpYWxvZyBhZ2FpbilfEBdNZW51IEl0ZW0gKEhp +ZGUgT3RoZXJzKVtTZXBhcmF0b3ItM1tTZXBhcmF0b3ItNF8QGU1lbnUgSXRlbSAoU3RvcCBTcGVha2lu +ZyldTWVudSAoV2luZG93KV8QEk1lbnUgSXRlbSAoSXRlbSAxKV8QGk1lbnUgSXRlbSAoU3RhcnQgU3Bl +YWtpbmcpXxASTWVudSBJdGVtIChXaW5kb3cpXxAWTWVudSBJdGVtIChTZWxlY3QgQWxsKV8QEk1lbnUg +SXRlbSAoSXRlbSAzKVtNZW51IChGaWxlKV8QFFB1c2ggQnV0dG9uIChDYW5jZWwpXxAQTWVudSBJdGVt +IChVbmRvKVtTZXBhcmF0b3ItNV8QFkNoZWNrIEJveCAoRnVsbHNjcmVlbilfECdNZW51IEl0ZW0gKENo +ZWNrIEdyYW1tYXIgV2l0aCBTcGVsbGluZylcRmlsZSdzIE93bmVyXxAUTWVudSBJdGVtIChNaW5pbWl6 +ZSlfEBFNZW51IEl0ZW0gKFBhc3RlKV8QFk1lbnUgSXRlbSAoQ2xlYXIgTWVudSlfECJNZW51IEl0ZW0g +KFVzZSBTZWxlY3Rpb24gZm9yIEZpbmQpXxARTWVudSAoT3RoZXJWaWV3cylfECBNZW51IEl0ZW0gKFNw +ZWxsaW5nIGFuZCBHcmFtbWFyKV8QKFN0YXRpYyBUZXh0IChSZXNvbHV0aW9uIGFuZCBjb2xvciBkZXB0 +aClbU2VwYXJhdG9yLTZfECBNZW51IEl0ZW0gKEFib3V0IE5ld0FwcGxpY2F0aW9uKV8QFEJ1dHRvbiBD +ZWxsIChDYW5jZWwpXxAXTWVudSBJdGVtIChPcGVuIFJlY2VudClfEB9NZW51IEl0ZW0gKE5ld0FwcGxp +Y2F0aW9uIEhlbHApXxAlU3RhdGljIFRleHQgKENvbW1hbmQgbGluZSBwYXJhbWV0ZXJzKVE2UThfEBpN +ZW51IEl0ZW0gKE5ld0FwcGxpY2F0aW9uKV8QEE1lbnUgSXRlbSAoWm9vbSlfEBNCdXR0b24gQ2VsbCAo +U3RhcnQpXxAcTWVudSBJdGVtIChTbWFydCBDb3B5L1Bhc3RlKVExXxAQTWVudSBJdGVtIChWaWV3KV8Q +Ek1lbnUgSXRlbSAoRm9ybWF0KV8QD01lbnUgKFNlcnZpY2VzKVQxMTExXxAZTWVudSBJdGVtIChGaW5k +IFByZXZpb3VzKV5Cb3ggKFNldHRpbmdzKV8QGEJ1dHRvbiBDZWxsIChGdWxsc2NyZWVuKV8QGE1lbnUg +SXRlbSAoU2hvdyBUb29sYmFyKW8QEQBNAGUAbgB1ACAASQB0AGUAbQAgACgATwBwAGUAbiAmAClTMi0x +WVNlcGFyYXRvcl8QEk1lbnUgKE9wZW4gUmVjZW50KV8QJUJ1dHRvbiBDZWxsIChBbHdheXMgc2hvdyB0 +aGlzIGRpYWxvZylfEBBNZW51IEl0ZW0gKEZpbmQpW1NlcGFyYXRvci0xUzEtMdIADgA+BRkIzIEBrKDS +AA4APgUZCM+BAayg0gAOAD4FGQjSgQGsrxCgAZoBKgUdAGAAUwUeATIFIABJAGgBjAJRBFsFJAIVAeEA +WQBeAWcChAB0BSkA/gQhBBkAYgHdAHcEqQEgBTACEwNZA0UDmwNnAE8BxwU3AFAFOABUAFUAYwBqAGwA +cAP3AHkD/wGwAYEE9wRpBIgEEAVBBAgCtwGnBJ4BTQB2AnMASAE8AhsAgQBmBUsEvwBSBU0B4ASxAFYA +cwVQAboDGQBrAEoBeABXAG4FVAVVAF8AeADtBHEClgFaAE4ATQVaAFoBGAK4AEwFXQTpAUQB3wCAAG0D +6gAfBNsEPwVlA64AZAKcBWgCFABdAGcFagN8AFwC9QVtBJYASwISAHUEzQRNAGkFcgR7AzcB5gBRBXYF +dwV4BXkAWwPABXsAWACZAJIAZQBhBCsAegByAHEDzgWABYEDtgBvAwYFhAWFA9yAVoAzgQFYgNyAWYEB +WYA0gQFcgCGBAQCAUYB9gQEYgQFggIeAq4DHgNaARoCJgQE4gQFjgCOBAQKBAQGA44BmgQFHgQExgC6B +AXWAe4DDgLyA2YDIgEWAZIEBmoBKgQGqgF+AtoDogQELgQESgQElgPeBAVCA+IBbgEyBAU2BAR2BASaA +/YEBiYD8gJCAWoEBLIA+gQFCgIWACYA5gG+ACoD2gQF/gQE5gFWBAZKAp4EBNIC7gQEzgQFsgGCArYEB +DYAsgEuAwIEBHIEBcoEBc4DYgQFMgCKBAR6AioBCgEGAPYEBoIDMgC2Ak4A4gQFrgQFIgDqAo4AMgQEX +gPOAAoEBQ4EBDoEBjYDfgO2Ai4EBkICDgNSA+4EBaoDPgNKApYEBeYEBK4AygG2BAT2BAT6BAROBAQaB +AWaBASKAt4BogFCBAaWBAW+BAZyBAZaAzoDkgQGLgMKAaoAQgPKA3oEBB4EBUoEBMIEBKoDpgQGDgQF+ +gOCBASGAqYEBhYEBhIDu0gAOAD4FGQl1gQGsrxCgCXYJdwl4CXkJegl7CXwJfQl+CX8JgAmBCYIJgwmE +CYUJhgmHCYgJiQmKCYsJjAmNCY4JjwmQCZEJkgmTCZQJlQmWCZcJmAmZCZoJmwmcCZ0JngmfCaAJoQmi +CaMJpAmlCaYJpwmoCakJqgmrCawJrQmuCa8JsAmxCbIJswm0CbUJtgm3CbgJuQm6CbsJvAm9Cb4JvwnA +CcEJwgnDCcQJxQnGCccJyAnJCcoJywnMCc0JzgnPCdAJ0QnSCdMJ1AnVCdYJ1wnYCdkJ2gnbCdwJ3Qne +Cd8J4AnhCeIJ4wnkCeUJ5gnnCegJ6QnqCesJ7AntCe4J7wnwCfEJ8gnzCfQJ9Qn2CfcJ+An5CfoJ+wn8 +Cf0J/gn/CgAKAQoCCgMKBAoFCgYKBwoICgkKCgoLCgwKDQoOCg8KEAoRChIKEwoUChWBAiGBAiKBAiOB +AiSBAiWBAiaBAieBAiiBAimBAiqBAiuBAiyBAi2BAi6BAi+BAjCBAjGBAjKBAjOBAjSBAjWBAjaBAjeB +AjiBAjmBAjqBAjuBAjyBAj2BAj6BAj+BAkCBAkGBAkKBAkOBAkSBAkWBAkaBAkeBAkiBAkmBAkqBAkuB +AkyBAk2BAk6BAk+BAlCBAlGBAlKBAlOBAlSBAlWBAlaBAleBAliBAlmBAlqBAluBAlyBAl2BAl6BAl+B +AmCBAmGBAmKBAmOBAmSBAmWBAmaBAmeBAmiBAmmBAmqBAmuBAmyBAm2BAm6BAm+BAnCBAnGBAnKBAnOB +AnSBAnWBAnaBAneBAniBAnmBAnqBAnuBAnyBAn2BAn6BAn+BAoCBAoGBAoKBAoOBAoSBAoWBAoaBAoeB +AoiBAomBAoqBAouBAoyBAo2BAo6BAo+BApCBApGBApKBApOBApSBApWBApaBApeBApiBApmBApqBApuB +ApyBAp2BAp6BAp+BAqCBAqGBAqKBAqOBAqSBAqWBAqaBAqeBAqiBAqmBAqqBAquBAqyBAq2BAq6BAq+B +ArCBArGBArKBArOBArSBArWBAraBAreBAriBArmBArqBAruBAryBAr2BAr6BAr+BAsAQlhDJEE8RAccR +AWQQXBEBXBDjEQFpEMURAZcQ1xEBzREBdREBohBNEQGREOYQHRDUEQEsEQFZEQFxEQF4EN8T//////// +//0QzRBTEQGOEMcRAWIQhhBSEFcRAXQRAVgRAXARAaMRAZ4RAWMRAXYRAc8RAWsQ9RDREQGcENwRAV0Q +ORDKEAUQ0hEBKBDQEQEqEQGUEQFfEGoQ2xAlEQGWEQHFEHARAZgRAXcQ8RDZEMwRAXIQ0xEByxEBZREB +ahCDEQFzEQHOEOIQ6BCREQGhECcQkBCVEQFvEOsQwxAYEQGVEMQQ6RDeEBMRAZ8QxhEBkxEBbBCPEM8Q +UREBmhEBwhDnEQFaEQHREBcQyxDdEH4QwREBkhDYEQGPEQHEEQFtEOwQOhEBehEBmxB8EG8Q4REBjRBW +EE4QUBEBbhA4EO8RAV4RAXkQ4BBnEIIRAScRASsQjhCIENUQ5BEBixEBwxEBWxB/EQEpEQHBEQHQEQFo +EEgQzhBKEH0Q8BEBzBDaENYQSdIADgA+AEYKtICWoNIADgA+BRkKt4EBrKDSAA4APgUZCrqBAayg0gA3 +ADgKvAq9ogq9ADteTlNJQk9iamVjdERhdGEACAAZACIAJwAxADoAPwBEAFIAVABmBfQF+gZFBkwGUwZh +BnMGjwadBqkGtQbDBs4G3Ab4BwYHGQcrB0UHTwdcB14HYQdkB2cHagdsB28HcQd0B3cHegd9B38HgQeE +B4cHigeNB5YHogekB6YHrge3B8AHywfQB98H6Af7CAQIDwgRCBIIGwgiCC8INQg+CEAIqQirCK0Irwix +CLMItQi3CLkIuwi9CL8IwQjDCMUIxwjJCMsIzQjPCNEI0wjVCNcI2QjbCN0I3wjhCOMI5QjnCOkI7Ajv +CPII9Qj4CPsI/gkBCQQJBwkKCQ0JEAkTCRYJGQkcCR8JIgkzCUEJSglSCVQJVglYCVoJYwllCWcJdQmW +CagJsAm3CcAJygnTCd8J4QnjCeUJ5wnqCesJ7QnvCgwKFwoZChsKHQofCiIKJAomCj4KdwqDCpkKpwq8 +CssK3grwCvsLBQsTCyULMgtAC0kLSwtNC08LUQtTC1ULVwtZC1sLXQtfC2ELZgtxC4ILiQuQC5kLmwuk +C6YLqQu2C78LxAvLC9gL5wvpC+sL7Qv1C/4MBwwMDB8MKAw0DDYMOAxBDEYMXAxdDGYMbwx8DIkMkgyd +DKYMsAy3DMMM2AzhDOgM/w0ODRsNHQ0fDSENQg1KDV4NaQ13DYENjg2VDZcNmQ2eDaANpQ2nDakNqw24 +DcQNxg3JDcwN2g3nDekN6w3tDf8ODA4ODhAOEg4lDi4OMw4+DkwOVQ5cDnQOgQ6DDoUOhw6oDqoOrA6u +DrAOsg60DsEOww7GDskO1A7WDuEO7g7wDvIO9A8VDxcPGQ8bDx0PHw8hDy4PMA8zDzYPRQ9HD1YPYw9l +D2cPaQ+GD4gPig+MD44PkA+SD58PoQ+kD6cPuQ/SD98P4Q/jD+UQBhAIEAoQDBAOEBAQEhAwEFEQXhBg +EGIQZBCFEIcQiRCLEI0QjxCREKAQrxC8EL4QwBDCEOcQ8RDzEPUQ9xD8EP4RABECEQQREhEUESMRMBEy +ETQRNhFXEVkRWxFgEWIRZBFmEWgReRF7EX4RgRGEEZARkhGrEbgRuhG8Eb4R3xHhEeMR5RHnEekR6xHw +EfIR+BIFEgcSCRILEiwSLhIwEjISNBI2EjgSQRJaEmcSaRJrEm0SkhKYEpoSnBKeEqASohKkErESsxK2 +ErkSxhLIEuwS/RL/EwETAxMFEy4TOxNIE1YTYBNuE3sTjROhE60TrxOxE7MTtRO6E7wTvhPAE8IT3RPn +FAQUEBQSFBQUFhQYFBoUHBQlFCcUMhQ0FDYUOBQ6FDwUXRRfFGEUYxRlFGYUaBRqFIMUtBS5FLsUvRS/ +FMEUwxTFFMcUzBTVFNsVFBUeFSoVOBVFFU8VYRVvFXEVcxV1FXcVeBV6FXwVfhWAFYIVhBWGFY8VkRWU +FZYVnxWhFawVrhWwFbIVtBW2FdcV2RXbFd0V3xXgFeIV5BX9Fh4WMhY+FkMWRRZHFkkWSxZNFlIWVBZu +FoMWixaYFqQWsha0FrYWuBa6FrwWwxbQFt0W5RbnFvMW/BcBFxYXGBcaFxwXHhcxFz4XQBdDF0wXVRdn +F3AXexeHF6gXqhesF64XsBexF7MXtRfNF/IYBhgPGBEYExgVGBcYGRgaGBwYMRgzGDUYNxg5GE8YXBhe +GGEYdhh4GHoYfBh+GIgYqRirGK0YrxixGLIYtBi2GM4Y7xjxGPMY9Rj3GPkY+xkYGTkZOxk9GT8ZQRlC +GUQZRhleGakZxhnYGeoZ/xoNGhYaFxoZGhsaHRofGiEaIxolGiYaJxoqGi0aLxo0GmUabhp7GoQajBqO +GpAakhqUGpUalxqZGpsanRqqGqwarhqwGrcayxrWGt8a4RroGuoa7BruGxcbGRsbGx0bHxshGyMbJRsn +Gy4bVxtZG1sbXRtfG2EbYxtlG2cbbht3G34bjRuVG54boxusG7kbzRvcG+Ub8hwAHBccIBwnHEAcRxxk +HGYcaBxqHGwcbhx3HIgcihyTHJUcmBylHKcctRy+HMcczRzuHPAc8hz0HPYc9xz5HPsdFB1FHUcdSR1L +HU0dTx1RHVgdeR17HX0dfx2BHYIdhB2GHZ4d1x3ZHdsd3R3fHeEd4x3lHeceAR4iHiQeJh4oHioeKx4t +Hi8eRx5oHmoebB5uHnAech53HnkeuB7JHssezR7PHtwe4h7kHvgfAx8cHyUfKh89H0wfWR9bH10fXx+E +H4YfiB+KH4wfjh+QH6MfpR/AH80fzx/RH9Mf+B/6H/wf/iAAIAIgBCAQIBIgMiBDIEUgRyBJIEsgYSBu +IHAgciB0IJUglyCZIJsgnSCfIKEgpSCnIKwguSC7IL0gvyDgIOIg5CDmIOgg6iDsIPAg8iD/IRAhEiEU +IRYhGCEhITIhNCE2ITghOiFXIVkhWyFdIV8hYSFjIXohmiGrIa0hryGxIbMhwCHRIdMh1SHXIdkh6yH8 +If4iACICIgQiDCIZIhsiHSIfIkAiQiJEIkYiSCJKIkwiYiJoInkieyJ9In8igSKVIqIipCKmIqgiySLL +Is0izyLRItMi1SLmIugi6yLuIvEi/CMUIyEjIyMlIycjSCNKI0wjTiNQI1IjVCNqI2wjdyOEI4YjiCOK +I6sjrSOvI7EjsyO1I7cjwiPEI9Ij3yPhI+Mj5SQGJAgkCiQMJA4kECQSJBgkGiQoJDUkNyQ5JDskXCRe +JGAkYiRkJGYkaCSGJJ8krCSuJLAksiTXJNkk2yTdJN8k4STjJPAk8iT1JPglAyUdJSolLCUuJTAlUSVT +JVUlVyVZJVslXSVqJWwlbyVyJZkluyXIJcolzSXQJfEl8yX2Jfkl+yX9JgAmDSYPJhImFSYhJiMmOyZI +JkomTSZQJnEmcyZ2JnkmeyZ9Jn8mjCaOJqQmtSa3Jrkmuya+JtMm4CbiJuUm6CcJJwsnDicRJxMnFScX +Jx0nHycmJzMnNSc4JzsnXCdeJ2EnZCdmJ2gnaid7J30njyecJ54noSekJ8UnxyfKJ80nzyfRJ9Mn2Cfa +J+An7SfvJ/In9SgWKBgoGygdKB8oISgkKDUoNyg6KD0oQChVKGcodCh2KHkofCidKJ8ooiikKKYoqCir +KLAovSjKKMwozyjSKPMo9Sj4KPso/Sj/KQEpFSkXKTcpRClGKUkpTCltKW8pcil1KXcpeSl8KYkpiymO +KZEppympKbMpxCnGKcgpyynNKdYp2CnbKekp9in4Kfsp/iofKiEqJConKikqKyotKjIqNCpCKk8qUSpU +KlcqeCp6Kn0qgCqCKoQqhiqjKqUqtyrEKsYqySrMKu0q7yryKvUq9yr5KvsrCCsKKxErHisgKyMrJitH +K0krTCtPK1ErUytWK18rYSt3K4QrhiuJK4wrrSuvK7IrtSu3K7kruyvAK8IryCvVK9cr2ivdK/4sACwD +LAUsBywJLAssEiwaLCssLSwvLDEsNCxDLGAsaix0LJMsliyYLJssniygLKMsuizCLM4s1yzeLPYs/y0C +Ld0t3y3hLeQt5y3pLewt7i3wLfMt9i34Lfot/C3+LgEuAy4GLgkuCy4OLhAuEy4VLhcuGS4bLh0uHy4i +LiUuJy4pLisuLS4wLjMuNi44LjsuPS4/LkEuRC5GLkguSi5MLk4uUS5ULlcuWS5cLl8uYS5jLmUuaC5r +Lm0ucC5yLnQudy55Lnsufi6BLoMuhS6HLokujC6PLpIulC6WLpkumy6eLqAuoi6lLqguqi6tLrAusy62 +Lrguui69LsAuwy7GLsguyy7NLs8u0i7ULtcu2i7cLt4u4S7kLuYvDy8dLx8vIS8iLyQvJS8nLykvKy9U +L1YvWC9ZL1svXC9eL2AvYy96L4MvhS+OL5Evky+VL5cvwC/KL8wvzi/RL9Mv1S/XL9kv3C/qL/kwAjAE +MAswDTAPMBEwMjA0MDcwOjA8MD4wQDBZMFswbDBuMHEwdDB3MIEwijCMMJswnjChMKQwpzCqMK0wsDDZ +MNsw3TDgMOIw5DDmMOkw7DD7MQQxBjEdMR8xIjElMSgxKzEuMTAxMjE0MTcxOTFiMWQxZjFnMWkxajFs +MW4xcDGZMZsxnTGeMaAxoTGjMaUxpzHQMdIx1THYMdox3DHeMeAx4zHsMf0x/zICMgUyCDIRMhMyFDIm +Mk8yUTJTMlQyVjJXMlkyWzJdMoYyiDKKMosyjTKOMpAykjKUMqEyyjLMMs4y0TLTMtUy1zLaMt0y4jLr +Mu0zBDMGMwgzCzMOMxAzEzMWMxgzGzMdMyAzSTNLM00zUDNSM1QzVjNYM1szZzNwM3IzdTN3M5AzuTO7 +M70zvjPAM8EzwzPFM8cz8DPyM/Qz9zP5M/sz/TQANAM0CDQRNBM0LjQxNDQ0NzQ5NDs0PjRBNEM0RjRJ +NEw0TzRSNHs0fTR/NIA0gjSDNIU0hzSJNLI0tDS2NLc0uTS6NLw0vjTANOk06zTtNPA08jT0NPY0+DT7 +NQA1CTULNRY1GDUbNR41ITUkNUk1SzVONVA1UjVUNVY1YDWFNYc1ijWMNY41kDWSNaA1xTXHNco1zTXP +NdE10zXVNe418DYZNhs2HTYgNiI2JDYmNig2KzZUNlY2WDZbNl02XzZhNmM2ZjZtNnY2eDZ9Nn82gTaq +Nqw2rzayNrQ2tja4Nrs2vjbFNs420DbVNtg22zb8Nv43ATcENwY3CDcLNxY3PzdBN0M3RjdIN0o3TDdP +N1I3VzdgN2I3ZzdqN2w3lTeXN5o3nTefN6E3ozemN6k3sDe5N7s3xDfHN8o3zTfQN984CDgKOA04EDgS +OBQ4FjgZOBw4ITgqOCw4LzgyOD44RzhaOF04XjhnOG44iTiWOJ84pDitOLA5izmNOY85kTmUOZc5mTmb +OZ05nzmhOaM5pTmnOak5qzmuObE5tDm2Obg5uzm+OcA5wjnEOcY5yDnKOc05zznROdQ51znaOdw53znh +OeQ55jnoOeo57DnvOfE58zn1Ofc5+Tn8Of46ADoCOgQ6BjoIOgo6DDoOOhA6EjoVOhc6GTocOh46IDoi +OiQ6JzopOis6LTowOjI6NDo2Ojg6Ojo8Oj46QDpCOkQ6RzpJOks6TTpQOlM6VTpXOlo6XTpgOmM6ZTpn +Omk6azptOm86cTpzOnY6eDp6Onw6fjqHOoo7ZztpO2s7bjtxO3M7djt4O3o7fTuAO4I7hDuGO4g7izuN +O5A7kzuVO5g7mzudO587oTujO6U7pzupO6w7rzuxO7M7tTu3O7o7vTu/O8E7xDvHO8k7yzvOO9A70jvU +O9Y72DvbO9474TvjO+Y76TvrO+077zvyO/U79zv6O/w7/jwBPAM8BTwHPAk8DDwPPBE8EzwVPBg8Gzwd +PCA8IjwlPCc8KjwsPC48MTw0PDY8OTw8PD88QjxEPEY8STxMPE88UjxUPFc8WTxbPF48YDxjPGY8aDxq +PG08cDxyPHs8fj1bPV49YT1kPWc9aj1tPXA9cz12PXk9fD1/PYI9hT2IPYs9jj2RPZQ9lz2aPZ09oD2j +PaY9qT2sPa89sj21Pbg9uz2+PcE9xD3HPco9zT3QPdM91j3ZPdw93z3iPeU96D3rPe498T30Pfc9+j39 +PgA+Az4GPgk+DD4PPhI+FT4YPhs+Hj4hPiQ+Jz4qPi0+MD4zPjY+OT48Pj8+Qj5FPkg+Sz5OPlE+VD5X +Plo+XT5gPmM+Zj5pPmw+bz5yPnU+eD57Pn4+gT6EPoc+ij6NPpA+kz6WPpk+nD6fPqI+uT7WPtg+5D8C +Px4/MT9DP1Y/Wj+nP78/wT/fP+g/9kAEQB5ANEBAQFNAX0BqQGxAfkCgQLpAx0DgQQJBJ0E+QUpBYkF3 +QZhBpEHjQgNCG0IwQktCTUJ3QqZCqULVQuRC90MuQ0NDaUNrQ4JDl0PoRAJEDkQaRDZERERZRHZEi0Sk +RLlExUTcRO9E+0UURT5FS0ViRXZFj0W0RchF60YWRiJGRUZcRnZGmEbARsJGxEbhRvRHCkcpRytHPkdT +R2VHakeGR5VHsEfLR/BH9Ef+SBNIO0hOSFpIXkhnSGpIa0h0SHdIeEiBSIRJx0nJSctJzknQSdJJ1UnX +SdpJ3EnfSeFJ40nmSelJ60ntSe9J8UnzSfVJ+En7Sf1KAEoDSgVKB0oKSg1KD0oSShRKFkoYShpKHEoe +SiBKI0olSihKKkosSi5KMUo0SjdKOUo8Sj5KQEpCSkVKSEpLSk1KUEpSSlRKVkpZSltKXkpgSmJKZEpm +SmhKakptSnBKckp1SndKekp8Sn9KgkqESoZKiUqLSo1Kj0qSSpVKmEqaSp1Kn0qiSqRKpkqoSqpKrUqv +SrFKs0q1SrhKu0q9Sr9KwUrESsZKyErLSs5K0UrTStVK10raStxK3krgSuNK5UrnSulK7ErvSvFK80r2 +SvlK/Er/SwJLBUsHSwlLC0sOSxFLFEsXSxlLG0seSyBLIkskSyZLKEsrSy5LMUs0SzZLOUs8Sz5LQUtD +S0ZLSUtLS1RLV0yaTJ1MoEyjTKZMqUysTK9Msky1TLhMu0y+TMFMxEzHTMpMzUzQTNNM1kzZTNxM30zi +TOVM6EzrTO5M8Uz0TPdM+kz9TQBNA00GTQlNDE0PTRJNFU0YTRtNHk0hTSRNJ00qTS1NME0zTTZNOU08 +TT9NQk1FTUhNS01OTVFNVE1XTVpNXU1gTWNNZk1pTWxNb01yTXVNeE17TX5NgU2ETYdNik2NTZBNk02W +TZlNnE2fTaJNpU2oTatNrk2xTbRNt026Tb1NwE3DTcZNyU3MTc9N0k3VTdhN203eTeFN5E3nTepN7U3w +TfNN9k35TfxN/04CTgVOCE4LTg5OEU4UThdOGk4dTiBOI04mTilOLE4vTjJONU44TjtOPk5BTkROR05K +Tk1OUE5TTlZOWU5cTl9OYk5lTmhOa05uTnFOdE53TnpOfE5+ToBOg06GTohOi06NTpBOkk6VTpdOmk6d +TqBOok6lTqdOqU6rTq5OsU60TrdOuU7CTsROxk7JTstOzk7QTtJO1E7XTtpO3U7gTuNO5k7pTuxO707x +TvNO9k74TvtO/U7/TwFPA08GTwhPC08OTxFPE08VTxdPGk8dTx9PIk8lTydPKU8rTy5PME8zTzZPOU87 +Tz5PQU9DT0VPR09KT0xPTk9QT1NPVU9XT1lPXE9eT2BPYk9kT2dPaU9sT29PcU9zT3VPeE97T31PgE+D +T4VPh0+JT4tPjU+QT5JPlU+YT5tPnU+fT6JPpU+nT6lPq0+uT7BPsk+0T7dPuU+7T75PwU/DT8VPx0/K +T81Pz0/RT9NP1U/YT9tP3k/gT+NP5k/pT+xP7k/wT/JP9E/2T/lP+0/9T/9QCFAKUAtQFFAXUBhQIVAk +UCVQLlAzAAAAAAAAAgIAAAAAAAAKvgAAAAAAAAAAAAAAAAAAUEI + + + diff --git a/quakespasm/Mac OS X/English.lproj/Launcher.nib/keyedobjects.nib b/quakespasm/Mac OS X/English.lproj/Launcher.nib/keyedobjects.nib new file mode 100644 index 0000000000000000000000000000000000000000..92d0d4bccac796c7fb7e93e28a1188915967acac GIT binary patch literal 26078 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 VwkQe7KZIC5g*PmpEq{wT|3C33km~>d literal 0 HcmV?d00001 diff --git a/quakespasm/Mac OS X/Fitzquake.icns b/quakespasm/Mac OS X/Fitzquake.icns new file mode 100644 index 0000000000000000000000000000000000000000..0806582b8fe0ce6dc00b6e76c9e18cc344eb379c GIT binary patch literal 249151 zcmeFacU&CFwJ6*@Jv{+t7+{7tgdyiF5NQG#hA`wHGKegqKxF7Ni7XUWtId+UIoJ|8 zBW-fHws)O7Qy~W-ElT18bLTe!Nsrq?EByU9`k*{_kRA|^gr$HzwtHV&9tw6?W=Dd?0o&< zJNvIL4(l0ea&&Zh{qXR@o!vV_QF2%B@L)H;mk$mv+}_##>ax32)y~#b;Og$)($3b_ zoh4Uk{hj@n28fO6#f_Df{Uv8f^VhcfuW#MlSlqmIb9>fCko%C?k=kR^E4Oy$qz=w5 zGTFk;z4W}Rtm5ezcjNB;w8FXN)wPzZTemFu+q2&84Vz!tUSCt_$vHa5vEWSiVT*A6h@g@X-d zQ?#+MemIwD9-Ew+o|+;irza*x&rt=_V-wvi9qnx`&CRFJ4h`p=>pxqYlcGt@NKVH_y7KW_nY5-Ao;-u@8A94{SWU$;rikGpGZQ+ z1Hk_)qMxbXCo(>K|LdP>U&k5t85jJXi^PBJUw^vvFXYeoKmFC6(15SKd3gB_e)zS$ z>DTtDL-PT(PaSagZlAw%Kpt{#zxIalHS~=)h}V%ci-M6_OSi=!(DPuw!8B3e3*x~w_EBML5%jC3UC=Y+#zeJD3PlZ#__MO`Yx1Wo3p$@jm9c*@gXP4ZOZ|~oTa`EtRDB0ZJ+S+?QT53Mn+TPw+ zH*aig6FVi_TYJw$I=j0&RIu=!n`f$?+S}S(TUnb~zqPu)xef4VqnzB_WR)9Rn_D|O zo10tft1Bz3Yi4%zSXo_P-+A_=le@cP{nqBj_Kn8&7uRo*s~8I=SEVbrHm-+SOQqHo zz;lllcwgUuYzvfHwO`q|7Gh;95tKdi%+oInS_j?u6foRICbbKSkBy596oq`6GQ!r; z!O=z_w6e0b3;Q%MTITBNc%mRLL+LM#{1ou17-)_|?fR{kpYL*t{xmSw)zj0dZgXX2 zZ%P_*?UNOH>ZH53x4d>8S~Z_v`|JZi$;!r4Cp~?AJ*rn%K`b|KGWQ#4y|Ve_32%7* zsvzHVKUcD{`FNaPP>@f>SJqa5WaVT0TN{rg1cZe6mV9~j)<^i(>${I71cin9m)zXi zxR*<=+T42l%6M#8L}W?>==RnGAC3bl%C7&jrT;wxLO*EUzlHS?-r zjkCJ-C>M#m_4POA-bCMclYWE$`Zr$mb3SjTjSNH6lz=3sO++#|O;Q9sO-@mh)C6yQ zY&4Ucf)qMEO-zxK^aN*oe2f?+MzHkBv2kLIJKEFPb%y97I?;}HqLtgy(lsp@I~5nItFLRQD^iE17S}g5Hq_VESDpw9 z4-Zk-)DkuFs&sW(U3F1fQgT>wq9(Vjx~{gaJUTceI54@2IOShmeX6oFHzg@qsSJZR zTT*gLR(?rQWI#|*fU>fpyev05T%}A(CY5NIid0IIlaiG2GHZ#QBp@R#B_)hw9jBsM z7^CE?PD;2u9CIU1;t7E~+xYtcf$F3kUnmsVIuJ6hglBv5J^)jlv=^yq|{0zvX;5YU7c*Lqz?idL}IbEH`Fx2-&*z{z{y4;5&Ni=N==xx?4!bMRq-yi zc6Jh90H|UVeu?)B=c^K2?WIyXzd0o*T&*J2B9%&=D3>`nN(10EO{#^EW>0lQDwD!b zO?G#5c6JP$OF<*knKXX7O5x(_>Kr(m#z~LLVlsu<8ZWuKyK8V})=VZElS5~V(^3+= zJvj{im<|>$a1>GTxu%8%B^xLuau*enOr2|D_?!p@cQg){5xNJ z&PTSiXeMVUGijoXgn`ft7;1JRO3&zF@F!@3B4EZ~>F&fNe_~>MG=X7r2FR85sIRSoUUsUgsuDU>d07qgQ9z7nCtBQru&J@G zthA)0xD4PG<)ym(G8VI5cI($i3qrSJ`d-7jKl*{6h*8EDc9Z_;ohgU zvBOag2eo2nU}E&6Y@Qtt<8m=8Qi@3gR`-iX;i1D(uJtU`Mrv?CWmbd$<%?$_CNnsp z4kCCYg_1cZ#KGW-I!g#KDzck%MI0G7%-vmXM@kSG;cj+AoEZh?;Vy^fVvcU^9%cpN zO8a2mu1-$0Bj)7f;$`wd+~@#~zlW<{&T)13GX)@?Ot3l79E{2%uZCk0cu>rhXf!6^ zjAi1-6(AYEz5C(a&;R@2?!P5v-2Lz$f$sw02fx1i!RHfOazD8H!9S*EG5!nY{{`D) z(6I#mACbU+_4Ke!{NFu4KmXr6f65R4;p5Fdzklf%WEVc!LkRp?!Ag*WIM#3c{1?A? z=U-*N_{C4IWmzK}6tWSU(I5WdH@|-O-FM#Ozx(d5fAj8c35P)Wh|9CT{^6Uiz5bgw zB(J~r>YLyH?l2B)9{TQ`-TmJkiuQL84w?|8VsCH%&Yj=i798%aJrXEp*7kpPn|pZs z_TlZtL*CAlr=sT8@4R*U+9B`uv%~f0ckUeC#ts4e@*#fbCOvrN;MQ#pB=-)vw>M@- z9>0E@Iz(=N15!KZ$DX`&8$G=J(?j0D?cEC#*X|f^|Ib72-ld7_w|{+z9vl#dFWi*nj9=>Ixv-zV+JdtLW|hOZV~~I>ZiM-Ft?*X1tDFyMF!J%ysnI zb>bR%ow-Ing5J^#_B@GCPchHk*}rg) z@8v`5+k10_afX0R6NCBcEIotGnhn!SlRSfoB))QI-*8~w=kBnzoIm6o93D~!w)?L> zJ!K@aBf`TY;?r|W>YAuVPD5kke1oX5x-c7FqB*Gv;h|v*p}hERTjhqict?jMl*R(p4znlxv) z`g(i&5`G5X^FCJqSFX`dymYvGeh=Tb@T3lw_9c6Fo}4rc#s>!ndV9FLd-=}zEO;Y6 z2Jcxfp0{hhVS4po`3V21gG>9id$(ViB=mY%fAlt$q=tC#t!~`s4XoJx(5$Enh!V;bEHh6IqZVJ*%;2#1kqeV#?4D z1tZ=wUYNqKs+Z^&3=B^a#KgJ&0is{n+ftMmA06l+S5Uyst%agC_AaoD#-9RdftWAs z*|5*i=IZLL^FS8q;cfOJ6_}T6vYDWqiRp>)v9a-qN!Y9-NJdXn#ORqMxu+*=E_lk@ zNM`FkxBZ9rh+XTweb}Jbf|Xjl+{>Wgc(RS~R5)kT6XVmyg-e$nz44_dE?-(SQd8q& zz<8P_B3*$O*Ih9%X}ok)ul*bWpcGxyu7=LpA(LL+k-M!tN!xzVx6jzYvjHkfMxmrJV^Y+fJ zeg^~KK6zk&=g|?S9Oi!R9?mC-k%fbuUD*EM!tc(mafiFfa$4M5*yZmWyfmgSa8@v$ z257KT6+M1ye|DGHvD@BX8KbKlJ>13kTcFJHp+~tPssR{O$cO zkI{LK?lW!(Y#4HSCYTF5Hq7{0FX-RyvI=74mA$RGZDfO96#(@ktLxjlyN~WzZSUP0 zBXb=+Kq@nCTvzY2cyV;mk2mb$t)%KIiJS9fQ((akmHh#Z=*vHjQ%4Z)PM(At0yAW` z(0hc>oEx1U8yFa#9vi&6w`F7rP4@_CAlzEqK|l`rZ9X-X>*x;8?Tno3!cs49i?;Tk z93C7V9UUGTT;8>i&fFu_uX5Hlf$q|_fSS@m2LM7^4)+AEQ1&Q&VcTkJ|G7C6Md{6t z@9DQWTN`V0_lRLjWo={Y@-`Pp9o>yU2qg}TP#3qct-ZY+VhctJW((b1U%W>!V1LASZmwSaqqJe$v_)=mHa0eaXcPA7Ih*Ti=kHO?uX5Hmx0YC{Qb%{jjVpJP zyTR?}xw-faoipt$Y+;*Q@F>B+v`GQw#@fYuluJOlu{95r6Lrq+lp6==80a=m5#xh% zyPI=BxU=;*d7i)g{NC0U6#39S!V9pa1!Yp(%oa|LwYs{w%>tQY%*5GC`ydjD53v**oBAydIoh=VecB0-AKn9Go9#`*+41Sg@zJy0olkA7JbaG=DA!mL zVv9qKb&+ttpoHl0fh+r)Gh33)y^G!Fx>6F7k{buwOuYN(!)H3(Q5;8|y1M9(OS`^mGu+c47E55Y2|E-{&d!vJwW}<0 zwC|zabx?z>6KnLU&H78dg9W(6#zrD2@10)1datV2S2-iS4TM-PqQ!h0f!{#K^45xZ z)plj$xidprzKvLHBP{77)<3G{5y8S|k+XOfJ{sSH7k2tSC-#wJXXKP~h zDP#<)VnazduvtUeSW9f+u<{>hU*5W9Ug6)`yxut&A+#kVxK(NICu+n6I$O!SEp8pq z-#NWDyCqp;I{O2x?IgCgqEF$n&0VnN+gS(nb)OkG&zK~mT|K>?Vpy!(eJ-vY&t4Qb z*wfQB(}8#P^p8|XNXQa@mTlvrJ=e~uvb$%tm)CW=F5lHwO4#$HHf5izEL5Oz$)00t z?=h#q-5l-2wo>vRpe;)gyE$8~9o$z?vhZY*&tbJJn|CnEcn-Fo1AEbd=V({{+2UVx zV&93H<^U|?`?Xy|Nji`Lr_U@Wxqll8L#7IL{OJX5Z&gj`{{!lM<{-`zR7c>cU$ zdSYmx=L~F1b@dN+g*&;Ca@_e-EI7bo0mdY!$o@`doq#8Jef{Q_UwG#6hnA;1&zx;^ zB?0*PL@*!$(e=$+J$=zGFj>OopDGNb(7fQuSIA@TA;TE)e0SdoxdP^1Zl`)aQ8QL#j3?&d>FGg# zk_MjszL+B#DB!_Sj4gmrSOGVf(6Of{so=StxK|ozES~E=t8{`HtEXE7l=k2V1~r2z zu?2VIX!LrvyRSLe&BMb@-QTI-{KV)5$X;iEpx~JxUU0B))$ruX$6(-j9l(Ae^TE6jzpBxZFR$H~o~6JW z0~00wq4OcUQ2$fo!!NIY5_op9C?IS;lphvQJu&nGXddsi@`!YBA~PV23`IgrM;PZm zfdLx0YiGwaL1CexVWCtQ6Uqw@D4#g@;z#9QU8Ps}tD7@}uG`7mC1V8PVjlRE@t zzjUvhE34?r8okM1UmhAA0h59GFstyu%!zZ8PkwoIeS-uw*?mly7p-jEeCi?MGXEko zG(6T98AgR8VdijQNb>l|xuFT#xIkV;pV@fv9_!2OS7{Uh6UD|lzBXpa!S0;wXr>7=IhlcuEwc$i05&&w@v*T{p&=I{xRDVdVNpb^RYFQy_L<4C zQ5d_PeGvch5K-5Q=GF99^7og9Ahv(WVLnB{0B$_#;u=EtyDpXPC8 zn9K=^{89uzJaS-q^b_@9OBf~k)0AIQ@s)MNIkfxC&8lQ@hN1IoZ^yG zBlBy|-)r?ltGx9quxT(lW*WuV3o*(aW3T#AWXv#%jm)fkgnI>M&M#bl?n&(No9inU z2BTNk9)@+s#`Bvmtzx&9MjpPp`r-=Q?zNi>=Pv(c6<_52rM3Tr z*wa&f+OzWoNEChL=Gq@tt=C>!9(F;HJmW(ztrBbRf;N`B z^6WAhLxA2Qn^=16*_Xd^^PO7`H^1`I(^uz*V_@SBPQR)l!Z^3M^zY}bmKJ99Q+)+a zkPDV3pw_T2dHUPme(SBb-y+_|-g=w8Aa9XxlW$RPbM9xp1sTL!ddTFw&BhTxBHyCn zYKD9+ClCuYo3pmt_Ynr3Ec1XOPbW27+(RM7?b3 z%3%huVZ)EUau53=ISVx+h`e?WBxXn+D+&m+#KJU>tr47; z0BL^0I8Kf6CeCUii&-c(4Z6kUX=)0YUYasZ&Q8pZqpWHj88?sd#s|})%7Du>LYSxd z7AC;z5>#UrG?Bmw86(FpLidIjPdZ>4rqLx&j%s9%7 zn1?x_-#4Dahx^l_N+(TV7BB$}G2nOhp#i#|+Xsr!eyVS_7wMsU@t&UE{=s4MIsK4e z5XQ^C)X0(v)A-yNXME%g*@1Kt9aKBo)=sx^THD%~*0~nCb+(0jy1AwI95XaO$n8yy zEFNDTL)qt9IMUVL*#&k0?HxoXr=zoTrUPjwI?(nGb33=K71XSzX0)l9Y{FZ>xUFx9 z9z@R$&YZ;uds8Ed$7vWC^dmN-eXZ@SDQLWaPqt8aOvQ1fZrXdT>%ra*3 z(z6>I+s+P{`VD<}|CyACqLGDR7`wfm)o&Ak(=S zwe@ZN#y(Rox35bRQAiEXLfi3k-OVjU+4`LMYy%+bGxX{DG(0u4uC}djrdQu1?CsP< z=+2!RI(N=AWE{kY&NQ{?vKXk29=Mv)O=*TyJSDrX2GD!--MpR-Kpz^K8|0iF9Hh_k z2D=(h7o}$rnFItT!;o%Hn@=^S;A(AMbw`h(+k8gY-L8%(7y>Oe2$2~O_n+;kZ>r7B z%mRIKY8sh70|e$2vj$h?)mC?O8_$@!1ZUcSWN=^r@QwXe&=KG~Q&->6K-BW8%8K$b zQqqj6R0@)6NDWt*Nag z>hSu8`kHKwDaD{c)hbGjr+`8_MMJ9)C7H|t^94r9O)9FYg3h7uFtrOhPAkLn`+EEO z7JJd2UZMw#PrBM#o9c)fth%PIf&nfXy_#pSV$hY5<#}WVuU7e;R)Ox6iby7x6 z)sarWqMWWEDg~^1zpN-VK9Nem<8|c~ZS6B{XlonYinlcbuU@9d)NKNL8uARUv%2b3 zda}x(q>_mwkAy5RQLLz{uC1+aY^<-Xt!C{`O3O-1%PY!N@d;!+mQYkyx!h{q($dAX676IM+0JQe1(O+mV|8gsc}8qJ z*rdcIl@wRCQLQsAF3Ub~l8EEQDocwifo+TVG}Fv&NDkLRbM$aCu=bAj4yGMxBingx?agHsStpqU zeZ1ggJlL6*mo&qJkG8bxTllA2nu<%aPs94q?u~rfT4xqG#{*58;VLYqsSOMQdL|~0mA{>*u*r_ z4TAcH=E{_iul3_W$B7pof28k(dFlm5xmH-K}Wmt?e|^f}Uf?%M}$X&YVx(G>d87oEnZVst5YYDN>OrXKxA@uO)G0Pd|KaZYBDzB zb@@7VMAS?qpPj-+Yx8ubdQ+WEfi^cfI4m?I3=B=6&zfrRy4vE@q-08I1x%t;iOJfU z7N`oRv8hSlXlk&5#~KERx&oaloSh8ML~z3+bMgxGb)4EdsDn*Stu8w^EfS`(Ds8s5 z+EBx-}IRDv~9Np2e0z@0y$Tu=&tGNYiJz4_Jn zscLPuI*0%}T0;;X5T22ytuj<{fR3u*R95P!Tw%$ns`6rODsZ@X#Nj-Qo=M8ooT3Vl zO7$tG3d_#W1QJ0^AQC_a;{M?osrgl81yX6M;8vD_c{Y*8Pf?|3X}~=1p(7R-p|e3P z(sFdAl~t#RDsE+EW}0R(;E1@=P(hcADk^f)GSbuuF`@oGv5y?lT~XSyCVVLwT3tzb zWmQgQN?;%nK){-wv;^EQEIlQ!LSIf)*jdcAGGkAKx`0`cBET;~ef5aRqe?qqlB`sx zWyUAOd;9vsl0S$Fq}kHbQ}U~*N+)&%FNWtWBUKgT>tlst7)R*m7pA($;VGpIY_bCU z6g+`7Y>qlQxqtx?>k$xopUDj+ z9^~)E!*Pa7;1mz%+64GSsi-6(nO5>t34VdDT$TiPe~<)>oxNxt%I6y`1isPgStZUQ zyKu=*<6O3*{$?FoCbJZA@~oft|KajieYdr^d2+rpy(+hwrZMFrvk{yuVvHT{oprR?n` zqIltLBPEW2=ueJranzz6CB_p7J(fs1ooE}RYS)hNsO0OhT0<~Hd?H>?eFCsq=cSelZkicIS7?7x9AC++b zK-uS_`YzhwVuzr6Xz}oXh)5f**emd(r~ZbL6B6jVV8fFDUf>bC#K0g2F^lIN^dMen zkl&&Nw{Z*(x`!4N>}W$uxHjHF;SW6jfF_aH&iw<-PcRJjCnPdki7nu>zwjfmz0co9 zl^7i2%Ib$C62IUF3gCnR8E9ufab%|ljgqazDJ1xQjY0yXP$PLrP~^uo;)I6;EZX4` z=g{DI)f~*%LqbA>;ZDLe-cv3X6>Jv7eVo9HjDyus9XuA06zv#iZi0h=2*CU_Y)`@z``&K=cik&P%%B zfXiHgOueqMVzZ$$svt0G4qONo7tF8KDnd=F5D2(h6&2+z)q`gd*Lxchr7|VjaSd6;)Y#|!8S~I7{HEK9CfTtnVJjjcV@{uh%a-G8? zPG}5}Yf^I{m(XwlT@5KjGpoi_;ej!F4WfQTgGWdCIygDbIdL6b!Xr;CK_&s=Nx%;e zh)E$ecnTQ)r=*xPND2i(4;h-6XkUj#C)_0>Dmo=)0dh%=02~A?J_3M+roiG4NuePS z8csyuiMbR+b0G!SM926#fPM~f);kHDot>PWfWwK66rKifQd3gQsYuHCR9;G|Ci;Y* znq7(H8m)DwE0}Gof-M z?0UfTJpB=~7$XOlTxOOl3E4y1VCJP;d_q&4Lr+PNG~Mp6P1 zPb6>?lafO`NCo0K2PSHf$z&p$0Q(i3gcR)yzyJtxAJU4mlM)hPzML2z9~Tqkxvb!N zDnejCAzqLOlW2HZr{-SKBDr%~evURLHZ(a`OXOm(asuBXPVP~{adXg&83yddye7t=?5lVP-e7xbxc%wc(dT%kC?c)`v zVoS)&U(Q2vm-6u3_%KyL-fTXSr_bl*6=WoZJTbi9JXER`lHga|@{nIJB#ih=?cAx;Mg15d!aB)70YS76W~1+zK~ zVg-7g5X>XsNC?*y62OSi;e~}dI8B9IT~VG|Jqw$7YIr567c^XWOQ`-oFmRLB%@iVNU=BidzldzgTTAs5%?Y5_)Bu#iH! z2!-0PKXeff^4Ws`-=(C8RI(T^DrOI&h=70=!w*tS7U9L<{Zmpx7K`CxIV>5)bO}}r zF`}3Ua5jr5p^AA$M?Anks+eU)6!YP?h>crVl1F@b#l=vhri3oWSlUa)Xi*VWj1(E! z2vdx)1OQ{18H$mT>&19sVz`>E1mKqxQzb~T9!j1m5kkSGrT2=5A|XYVa4ogemk8im z%GMp~3N0z&gEJCa97F*HAZ#{O!Y@h)P6oshqLc&lLx(tDW zFbC*VDGH4&@t9sm64@L8B@xE4OoihQCem!CCWH(rQwRh z6;84gFJrHeCuFbpbCEIvs4tcZ%1YCMIsWRR^6fIDe6>tio}cK3*u|uml+To5;Ko%( zloMrCIpCKwWg^I6&ocHGawy1w`27sl`Mn&_aTZz*P)mv^r^_7fQ9*V^p*l=}Ao95M zqH?l=fW7Vt*gb|_42-={6=Jv?WwH6NI|5rm0L58o1w;r-2FCiBu?gN0HpG|;-VtFL zQvn5&72NUyO|(6M@KM)jRkp6AjDcq8A<*Rj6tOG3_S=8L-z&U^Z z(h|D3WLT6f%+JnVdhzK((1>z7pPrv)z zjI@C=k~G05M>56ykhA6`pylWdhFQId;edA3KpQCos|7U?#%XJ!$XOaaW`>#=j28^3 z9*QwDGr+?DYDCa{nx>6Y{0XALTb@iB&6Y}-Xz+3*&7c%DOz9_?3I6z0SFn2qV<9!s zdT@iBC1wD~fD+F*&Ie`rL|=qQwt+DN&;;d@pn5a`f?-k*Iy*h6|9B%~ebJs;(AXM* z_Y5%$#Tq6J69!h{s0Ur7X#^b}Awf;ne?p<9n0s2(Szv-rLM@CFdQcnx;1?_aR%u%_UU`69=x|b$}@AEWL1!cQNsuZy3|1uJeWCW2Y{!(Uk_+x z4+6RyV;6p=3k=(UgRz?rN|@G2kBm{HrLEk-{(=58R41qF%o%+*eMa9!bs`<0i)lkz zi55LIbob-o7rfoob_78PE^tn+;6{ z&}wk&8$d5bbs0fZ!)xzo4);g{`x7%Xm_IN8KBjH0t!B`RFwG2TAD9M1JyQpok~RkP zF?vvAHHN#Vf})d#hVWT!UC)^_tqd@y0bAcd*K_LX>-De;Pu6g2o10tO4WO%`TJY9} zF!vPD_L`va+@3R?ou`io^cG|Ww#4aEcr_?)TA{KO=uiYrP0h8T?wURz(D$I-Jxn*Z ztG&Iso`OP*b;eq{Mh`Sh6Ay24P7msQo(HiA}y)y&`xr$XFSa1)K7exg8uMV=;_xlN7rbv2ZQhN&cB z3^Ks@jFnW?RFe%1Z1fYgcwJ?%o2rZMWIBxOooO*Pp^dP)PE|56B+{TGgckr^sxM(* zkrh={L>*IWg#CNGraZ_k86;{1=?Gg|!Q;2Nxv{~bn1Q`wJ^SXUswPj7)#xeMbLX>~ zKzI`t>0uV5E32%eYfR8~UUgZJTT*+Q9yDPz+ybX&ER17^o??C_tXjtOsfaZVOq5RaaFNGld3l9p>hjRFqfhLEV5t z!z*#N1*HYFmYZ8#R8qk}BN=$>6$Z%Tn@FJ6LqB7n*I?BZmBoevBTOZW%1SFq*!*WI zu+pO9d@7rll~Y()R90pxHI%@NL>C}G2{(_a)7R=jAo!{BilV%HCQqNsgW0*Rq!`{V z4BRxlR9Bdn3Cl7(BS%+I2rqVhFtQ*DW#;L0B=i6pW@encylg6!o05^M%_nsxc7B~#m=|tuXCpshfQHi0Y4l~>(!#=A zSXk1T99W5xu-Hu3LNPGKBB2A&Iu7jQ6Y$E@s8e&Y@(K*lVsUQ1PUS9aM)EHjt#pw?PgJu~S{8j;EYdjiTbRn{>u^Ck-L{QR8kEZ7R-DpRvFwIs-n(Awo_ z^D~0%S+8ud#4)w1vb2;05g1{*C@3n-%g;(>)%mG3XyjqLg_D(?LqaW3R`gg_W(Fvs zvDD0r99qk;Ld?yMb^;%6LdqB0iS7KeD$5Ne9GKKma1Tg!;tlic0;f!5 zJ15PkGAc2UTdqN?hqb35BQ-4r)`SUaB9(^awICxiCoA3)T+SJ(L~Lgxl}RPip!A|5 zSUtd}0*v`Iv>_`snNS*%=_D*U4eof3nKj#hWq1Y&yGXFCMlMQ)5r2o z#GZ(S%}5%oJM<|cs1-;Ywq@*q#e#){nQf1)#KAizB`YV(1Z{?m$HWt{v8EGL40a+p zSw(|g2uG6w`*dPhP^G47;zQh}Y!j9&3}&TbsDiDngCZh19lkjLwkjNzGSLuYh~`F} z0QDP@GHcmYWR+W@WOZtaGB(J~!r+31!Gcs`VIY+U#3(^P@M!`f1s(@wav~XRiXtPq zF^P%Ent8RIN(I{ruqzNB9pd8*UnY>sE?YR9mpZUtAF#D^a1V%1)IgVn?~rJqUoA#* zBcc-%l1bPj1*;TNX$u>!&~Hyh2DnQ_LJ9aGJZ#}`N$Lb2L4ciasf$-oRJ>A?3X0>X zsK|(ja56#!YV>f3g@;AO$AfNJ229|lDifpp6;9UhSp%U+B#}L0Vf3)n4ypp;u#-Bu zdHV!~1%-r1($EMJ6yebc3CT2QEtE+KVEE~;kUNTm0+d8Bj!0zlsD=J9sWZ^CRk0EZ zQ7+$FB6W0e^Hg~I`1%q4&VGRr@U@xn&>(*wPd8^r_KOU#u`Ut|X@n!Z&*Qojli7%^ zmJl2hS=rdzk+!%UU`b(*n=1um!Gp**pjeR=fiS26;bLNITPY2X3hD* zf%E<=xSdGM{d_ny73d`*G4^?I1S3RBX4Hnvd!~ z2ZM{j7i7dFxEhH;a)dRP)s|tOmBK8ni3pU709;~_TG_LG-o{!awnAw1;~sP*&&4A= zyE!Rh3wHzihZy$rQm#ZK;v&>1c;L{nP!39Q5KAC9Toj6Bk?jB(@;+6d_2S1E_MgQN zTG+uo8tz`#GJyd@07k17P+oyVatj@A8V$RYvj2N6Wp zToS|hA3doz;GGG17#v0n;Sv^JcF;H|Oe`X;*c&1_dZ_O)<6=CKwe12((;z~{_Me7{ zMYfAl)J{U#a3m7@$1KAEP}+z^OE|_Ci)}YQm1XllmP8_2;$Z@bjoqdchc__$aXJ_V zWK!9T6uxvqgZ7J-Vzv@%Q1RRGczifP#czoSB@*@)!z2KafrA#%v6?ajUgaDcJIM{1 zg=&$H32i0zn=;6=z2Sh_*^2nAx*Wa;v+2O*QI0|f&`}*7lq2FW<0ycXgQK0DNI(cd zNzbawg%Cv`aADYTbkGAD!J@Hv5GY5SW#H&Q0)TWR98gCGvm-}hXLrL9v$qoq7C~bT zl$-w`&))8a6J~F3BV4q?tij1_(+RxN?5{g>ouo2})uJ^ff&qWi8H2&l|AC(KXW|jMX|*B96VxVbg_UZ!f#gdRNXfbjOGFb%+_-qlb9LORdJ`d;+g;Q!T z120h)2Tqd3W-;(1C;^0AR|iLXF>Qm2L4j;7wqbn}E!-_kAEaPekieXQ0RFL{Ct@oE z+%Q+E)PZoLK+CfL!6X+zHKpL2Xd{^cHMNb@$x&{Bn&n*9nahooqi$}?fC|-@N*&!z z;OKkV4VODP+e>WW%Q&`X&{4~ro#aLU=po#22LA!G-9@MOU1!c7&0&uE! zb74OyMA)LNf|;;mXALecpf<6bfDRE0@eIqsXwl73;K=PDbGq(<$z5EfOLn-egDboc z*F886GUv;l@EHM5O2G#gD|cw5birN#I$#HAu)C*TK>^qZfwrLGtY4R>V&0SED06v4 zL3(hYLhN0DPVYd;IiO|&-Hqo<3ZAE4Fq-Cfp2iu7{U` z{p0}RHLF0qybR!|1;}uEF$#{8gXI650aYH;_0Dex6u2;MP z!<_@)4k8^n(Dn836tGtl+v&k2(G3LQ?L)(76|Q;ny+FR;R^xw*j1R}f$&L0!{N{ay ze!jkb-ku6qC+B6*y^>BSINm~pa3Y;?Cl7_EkKaW=Bq5j}5Wbj?is=aDC1h z^H3;!p7+CiU7b7#e~us6boim{kKSM4=MPC=FE2Ua%(zg_G$>GAT;PI$XD{K*cX4)c z_Vo7hB>@}ENBsOqf1V#uz)8cb2V>(TM7Vyg&K~{?0f@go0Q2+qaWlFgt}_sTldIVU z_wx4k3-G7F!ix-mqGte+gun#w{QU#`<<6e^03>iBKpF_NUThDC1G>58geS#~cP|U> zo}6;SAmvGTBfyXY&RtIha03J6E{ZEbNZ`x9i2n0;U*z0VF zG}yz%D>O93a==e0m{)+M1RaWogwi1hSPlwUC<_iD*h~U4*+7P%p^$TwgeVQ3Sri2J z%4Qo_!^02;j2NMSFe+3K298;lg8=_5I+O_GK#~ZxcrUF4lDm4k}a#S!@ad z2}v>xiVQA`q|)#Uq2j zMKEwqA9>-kr2q|TJT87B_YMy$x`6XL`F$1*cM=fuM-zRY&-%Ys2DUl znurmBg)V$?ko|#!U^AH*A{skNVJwscGv1gO3V=wo9s(IdLRCmTJVXg|SSb1hy39s5(T9^-=B- zoQ&bK%-91gizCAVy_{i1z~kAwdU*NxzT?O9^-;JxOSl9wX!-b<2DAqp4&pKTlmFA- za(e&GIy(e|Nho~n=+Qs_7avIa@2c2`cYiaC!yFO`{ulPsy8m6p{6oGUy#K-7brFI% z{`1|x{hu$Lt=0#Bz5619T)q3Ze^|%=ZouE}*8BYF3%K|9+x5ZSZw%jk|9* zzrf~0gTI)b_kg6o@CrOom*eQM1db(eEP-PQ982I>0>=_KmcX$DjwNs`fny0AOW;@n z#}YV}z_A35C2%Z(V+kBf;8+635;&H?u>_7Ka4dmi2^>q{SOUiqIF`V%1db(eEP-PQ z982I>0>=_KmcX$DjwNs`fny0AOW;@n#}YV}z_A35C2%Z(V+kBf;Qtm0e4*ZtAcWVy zSQo?(YraVT&kyhZ(f;4RKmojecNH1A``0h3FMjy`T@Aunz5BN>q!WJl{@?Es2#Sba z{=)760p9N@iq?MngD>C~{AEjtU`R)EWITerScD*msIyR^5L+3oATDbi9PR7ui&j7! zxp&pUwH=a<9qp$F5RjZDaQS>ThDe%w&kR^%h%F?&n@_j2BJeo{_(P$bd)Uxm4&-2L zHn3~HtGio-M6;>;2yC4F`&63CN70YYyTu52&V%T1E*C-X)*wPyyYp`wck^uG2OkcU{-I9!M7{#A zK4nad%~*R+R_O7wwHN9GfBWt~Klbd8UisdC{=KZiTZz2zX5b@zB|Y`i|KaQqc;~$s zWZ#2okGWof_dn5iqtPM4j1-ElNtEC6KKJA^9u9%_KX3Y-XWT25w-Uc@=k^EfFMsx{ zfSGR{iZXuZ@~AZHk-_)=sgiho_pfuN_nv?6sV|>1{g1+_`jjWXg&GF`a=WLL8&ptL z^RtEj(Rk~t(}8jO9R|ruubg=(;`wO1kjIg49ZX1m^VXN&J^!1$-ImNB{G?ZPOW-{A zuU~)qXAOd%|G=>}sqoHkV~js;!`_RK{c^_ln|(!heAZ@PdBY*&m2ZwTez`CX|7G=0 zE`2j9E$z3?zbe+*QjuQm{D>Sr*_nO@Jrg|ry{P@#mpbLYt}u1JYdqKT*uQ-L+M|Db zX3lUmr}b;e?~dLI{N9f@$G<~==b7iJ4;HPTX+iBtr|0TwWRBnX;45t}%*?bEFF$kx zGi3Mtrnivq|Fu7V=LO%EDzPT|OFz8f^Uk&X?;rg2dntc%)J(jGgdQya@&&>9Up%b+ zNv_wQcgnvd`F7L)TJHGpt!JDTrXTzJTfhI-Un{TnFDE5E91{9o={Nu5cUL4Sukn}U zZu$Qb(D>-}$va)P} zEd1j$J87-|>ikUqlH)h$-v3#ZV~pZ|{Yf2t=eH+}KknlHxGDU#b>+sjZ_aYRHug8Z zWbRux{r~=xZ;Xu;rVy7yM>Ri8`Ob&KjX$`S_t(eX{AOln_B$?j$HM0Q3fzhevcIf9 z>=*iS7X61W_usg7HPQR4Z+m(a4Thge{Cb1z+Uh$$ug?kn`pYA~um1N_kF>qmJRRZY z`i+(!h1h-dQhUvFuPN@}8%CFcTW5aUiT=kcCw`Rtvp4>2SUXc4(j2m#_P*|dUjzS* zpF4OGr#;&>vUi@g`&JzBgZ}qq?>zhXh9)t~^NqtN?Z3YC$BM@%lHd46>fxUXzdiY~ zqP}SI^6u|j@tYyrU;p`Ewrh!>`}vkXJZ0YhCXbOlZga!;1@#Yq z_r&l1Q2WU1Yag6epZ&G;=^y{)7jJdG{7U{md^D}Rr?)#PYNAu1vDtG4wzbiD} z`1;!&r{jtqTSbfBDK4z>zxDg8(jTQKys+`lrGH_RUV@HVhaOGE{*Md0LzdzfPHh(c z>6Orni8^tema}+e!u%7u;}=%HbTyufEkDmKd9MLQK3hzxDL2Ifd|%m16)TD12P&8*RI4$_?or&pz8+q>4jv^d zam8=B_AfLEi{Cl3YUdq(QO0mZ5`dc^eA>2*BdP#DAzh*DO^z<~Q2U(OM_@1FxN2NX zoO58}wu7j3tJX;$VU5TuT}um?+1orn)2e7rPjCb1RV*5G zFHc9`RqVKJdTjyE3AxE&_ctWUF~tf9C?l*cevZj~e;~(miRLERVnZy-4{YW{DBpSV zMi#*2qf-u@1F=??%E9$fP<>Q<52@%RB#gTR($3%;CB-uND-)Je7w~M4K6x2+c%!}b z=!vv>Jbgq2E-ip@@oS@aA7D0ODc2nh^wU@eAFA|8b>GDJHu363B%2m`wZs*fNd6KO zB1FuGSH!^D)cfHZ8igO&{eBM|`!0W_Vs6CGGp_!cIUZ~4bf@N6`f45I=k_(Zp<*ni z4vWO3kr(^G17>)r0VJw%AJ_s1DloZJLFwwonR%k%U=^8_NNfzj=)Z9LfT3e>X}*@Q z6revbsp-T81Nwj1r%n~O$xy@>ZB(pLmPDXiX&cXy|4^S7Tdc^Knaai>hIPryAZyqmM*c@HSXo>rSCRRB8xyW%sLCDDs$6|hMQc(;D` zbmV(!%gSi7Yy`*PB_DvCKLG$=Qfzjan-(inNFQAL$L8k>lAW8670C_F(*ub)NtUv} z#(*|K6>d8Tv=-vXs_qJS4xK`b!|l{qeY)ij!%@HzG8-}kl=^`v37GkPq54bxtz^fk zMYru@K(0WgTdBH;{AOSal+L+O5(g#CYe1y0N|#lNHoX6vACZ-3#)!j!J8LK#?g!#T8|>P9y=*0(w* zHf^Wgo`AZv6#30oEN6a(xL#)?-5Nv9tJVB| z8RzUx(!8Ibp9T`Dc7*|Y^7>Jh$qam|M<^6^T5mCF&UJUKfP4dlyVX|T61Ue+a}EPj z9?wE2oMhT?s~00`yY_Q#e9MD6{+7FfUS9Np7|@UHRafKdJ=`}Wrk}F9P1LvD#^?guD|F!@5xB%CED5SJONf&RHvF!Mg9!pmm1#o|>EN+;T6;f=Y=w z7^4H%n8~%uz=)PaYaL!)jPn)Bop)ptpRhO65pgBjGAZn3OklZ#Q$>bhUXv`-@KqK# zq&Z)2-1^xuJ{UqH?UFrL>TiA7zr4gt%LK~(QmJfOG5hzMv!uTIt!ZASgUV7mctchb zJyNOL$FC9KIa?LVQuF+f!s0!3rM*OJS9~N(ET=@zx9Cq=bdqx^EOf#m<<EaUUlI`VLKn}@Eud?G3xS(_W2d4pkthLO#|oZGzZVpu;Y=Mr^%X`OMb!CIabq;S`lR6*C-5+-quyTyhuA&zc8JE+rd#{zPv4Ph@h z_sUb0PyrJxaHIqiy(MNUBF{9oS->a4@kefyhg07lBjXpF>I5SG&|akNk{Hj>GD#jG zlOtKw&n&y9IpO%$m9RVt3!%icjwnS;mysu@(%99V5^`MX>l$O6>Vxjy{vH#mJPQDy!2W6}6D46B-xw@KIMZ*a&h6iH4*Pz&+$*j8K$9VEYMU-&1M< zj&5@=R8=o{aK|>rF+X4773dUoW@Gv^%KN7e(Fu?gJpOutdKfvtnc9`58lA>pKf!S# z^m8;f6MU}Wo)p&gdI0Y~8CNXqkpCUu{-`1}e$0~*KlloW#z{N^yNAR$PTL^M6JE^K z>nyd8pZp@Ef`x@_V`M-DEL#cZTjuPj%}scy5PxR9h5fv^dYs5`F&sd0 zq-5OCBp0&^UNc@BdkfFrX}Q_=_qyjd3(IB5gz#9orFSo_HaIl#3(S?2oK&r8-+RpI z@+!TnprG}>C`V8|d&P)2ljK&eRuB?)mRE90cDGCRkjT=s>dhKD-fI4+S_O z9b`IoihO%~9~(;dJZ|&$g8;RmGi=p(Y-@ z&u7v&AS(OiGj1DHB6>(A`Ny-*;Qi(Mu3ZFb{4X2<7_J)QlZ2ye9(aZH-%*`-+$mX( z#ZPAhf1hYL;nAY8s$p7x5=vBMFr;39g9yrTl+@DTnOp5Vem{PVoacGZ>-=tT*y%D- zm>t%|%`tFiL^8A%PGTf6D^)Re-=i6x)mJM2L-8x!gd6_gR^lfoLgP<7EIANb0J}q9 zIzb+RgRkDI!S!nlA6CP`_UmAmN%h?JjpRFh&(9%~Gvq3Wgn$yGpgBxRtrrZ^7omotpJo!?=|E*UgR|PVyIUl$TobjA z9p7i6yG2IVmEyCN*cl)_D7_mT z7Kw0SyA8>&4)HQ&ji|HdokLc9`3n#@y}PqqC2!2#=22k`ffdgqE%e~^+ggNAT+}@Y zJ7ee-ddq@X0o4fC6gX}tw%v9tm8P`1*G^YgOQ*<@hb1-j(if44pgq-7wK;h)!W3Zg zr+)&6vO}P1*;X$bH#SSmb(a zpiuX9z5w_OBzWMcCqsPyEp{Nskr0FCM)T2TL33`U5{aDBij%5o7g`-4ePChIqrj=O zw9>`$@}O)#Fb zT~|wt3cUDr&lE+8;1IWh`OaW(J^k!lMU1u{6QVxlA-num?wtT>9{wLHa`DA1`B=eR ziLnszJ8p%DCLe(`x0dM7kpr5N(;_sAc6%+7XQHv$cgI|s@XUeOUR8RA~%{{Zse|26%bb3hK< z4gE9Rqom;Y5LVF8;E*D)AXWm6LW$z9k^bZ|pXb8-Ps@2)RNdqw#rOG zPPvfX-1beg1;C0s`d4SV`o`87k?m11I=ts=1Ax}|s3juCJf4mMOkLHv^N!Wi{q@ldRv>d9KT5$J+uED7z`5xg0CO^zms7!N8;!zjLstgU*HdFJ*zvpB8y7| z0rw<)W^Dop;+eUc_&ikl*5nb-Qq>QP!|m?wKMwfe_V-q;$M>J7`OsewsSKL+^JOGD zf5#cfg!xD#>BLc>j7oTN1}}9vO;2>kZ#1Dt($Z3{rpQcA!`n^aOLHbpG7k+tqbUmg z&6>pUNdXdWN0&f@bo#Pi04fm+jK7uhmrTo$O^bJ%HM{J?5T}>%Q#Z#f;;$Wf3Y@G! z8a$rWzs*8^v0H~&pNM^I)Da_L&1VX`4D?(imL#s^u(#EA{Y(l$U-qHJ_=lr0euqkZ z7#VGhiR0t)U$`l4;ZR<6+_3awG9tx+QuK=Qo)Py6g#Wg+%S!J zH81xV47QfXs>i=PUIk*XD|)hr*R`p2s7hqAl$#1E!tjMe^`T2&L@GaE6_eJA{U+-+ z0i_sasKHgyc86Olfgd40f|wgCfX^q38wM~Pa2~{+dud-q86%W;)SB#q2Wop1XYxSJU13?e*o>Ge4 zflZE3Noe!N9LFIaPgx;!2AOzxh0blxk)^3h9+)FA(>QhnFV?=Qzc2XCY|yVLR-CCf zExSX;KJqihlqQ;8W~zRrCvH3_1W}`kjkRAq=)7=Ol2@k?h8odK;fTRswWJMF@*oI5 zno2tCA~mu)EIxm@E}N?7BtKS}q{Pmh7%$KeZQ5@6)2l&7_ydjfVd`47OX{v9mdi0b z?l)6XS4$;8(o{46!J~wK0fa~^yLp22zhEZzYILyl1Ny9SM9+hShss7(7wm7GfB+SB zc%=%Bw-u#O{h;)*j4NS!=1Sox_Ht)1KvBub5D0y4(0w0Y8HKI~v53 zBZ-!#49+>sPZQ`*>`?h%JV@a2OI7zJOXrMKP_6P<0bOjJmgL8@odx3Rx!K}~O)&BU z6L7&*NhGCP{tbp8kmMW1QnkoG?TMCCU@ay~@wzJBUXTi^Q}o|EQp!)8xb17vp_6=U zqV*z7(x4A4?g-sxONUd+VnfJM&psYX1EGG19@b}&eZJlfaP)_<1ZcR5AmlQVfLS@+ zFkuz8a!v8XAj|0(?Au8v=JQLLdieJBeEEjx$VIdUv@c|MsHz>Iz*%S;NC*z8r8bAIXT6JB#uc=is7Cs3f z63^guIwTcuG!Bp-An<}xexJ61kxqqT)nOwd;lEQnI+p~OoM7rBaJfK}@_zQvj`Q;9vH0pfK<=rA7gWIm zoh?Td(*b3}iD-42Xt=qweN8a`ADyA*6QXD`n}cbAwNuH^iX4l5q8rdfB$#nr2GFt% zblgq5HE&H!Q_IP4K&9>ZhF%(z&2ibi39aus>=kq0G+M!mCdSPiZuK6y;W2X_TBEXK z{|jZ5M6v{#a?tEmEFRaQ-sC$J4VOigLbw8>ZkN=3W)^5#Rp|CF0}DUI-A|*fi3^(_ zh8Y8{&Bsc95CJkfq{cvq)qpN~U@|D`%uA*AiL00_Qm+Ao^WsdGg^`iK48L;=3lGuw z3}ZU_SEUN88+LY09kuP}nL(gS`)d~h+#ZVHO@o>3kqV5TW9_RVv$vI1an;FN28t>u zBWC)H7$(@W@LdqH+y4r}!7cHIOQYg342jP=*AEXdiq-txculTDPZ+A8uEY~=;V@87 z!E<&NR2Ov(Ldzhk+C>Q9n{3lq=5lTFEZh>q->_!PrVOb ztG4cfBRn@OrB-?$ZL8p|gqa|QyhvIUm&6%lAs)WklWg*tbqm=MJ*8@mnC8>B-BAq3 z@dTyo`zjJwxRC~6t1d3(aj9W23@784x_JVo@;w_EX|>A~At_TjI)>4dL_UKfQD01- z5AOva%ZL&4>-RS)A6$Z--#zT0Pve0hMVOxdN)v6&%Fa6&yI)80r?68UO8JKrKWAdx zy6$Y^n}xMh$6s%xkIxU?Nw&U=9Z99L_S1938R^&ubu2a$PJ)Ca&SD0lkG;_x2df=D zG88D|Q@yO2FdD3MA_Mdhu8=8fdO8140%%NY*D{wiMs<`YB{xLNU+FSgZFx9}u|X)^ zJ=t8tpnDy%&$IF_76{0Kuae9Ht!lpE*0Fu3&KGA@;y*vhBUVz>6}1vLmw6f?=PJ=5 z#>XJJUXlatN9K~+l}1k@f6VB;ZIePk#621^5GWL>;UO>vo4RwvLaCg?=?EygqZ>G% zLdi7~ne+Bx9YJxP4P!vYA1gt{+7ZU4&WFyvr~`&}Za*!4|4ai9b(IBB1?vOKao*+g z=6>j6M11U%Ky@GvnOrDNGbsat*J-vYIx_Wq3~5VHeIL9|g}Z!5pAD?TT{hjSt#nC>8@Og!l(#^XQE zRC3-6>$E4_CFNmc_~Qg*G&;K8boJTg(?;s+i4~;q8@1=9SL?Tc_R3jyfQOVM7771TNQ2*}maU?uZrAakuhAI%StW1Ri(Dz!HY&7( z&JKgb2QTgNrT$ry`OK%kUeMuvSpKPt8FeYX|7sm`Glt`01n3RQYy-h*V3`cVN~bI^ zJVHZ_F*w{|UJ+&#nP*8qkMJ!@tY6$Ts)v?dV%0ixMGX?VO`<)n=3H2pS5!&qze1U1 z+A>ozPSJh~6SXAaH*>*Hmyun(vrE=ToETrOrVj|vu`=O~p?D&4{|^Ivbu}T9I(=Jf z4Ae|&fl<_-Sd;ssir1d506ZXRS9^N=JCoMo@*`?o^aLgtQ{;cGH^*k^1G&v9Q*-gx zxxL`^UIgki86%XJ!1?{wK>7XpzQ4^Ey8MTzDg;-d9 zJe=06dDw7BeJOoOzw|>dx%fnMG!1p6rSJ0`SEi-Q;mp*3@?y`ywPZAP5%BDbR)v*< zkS)=2V|S+~-&%i6+3FO~q)s|lE71wA6i#wlbC?3IM!l%Or{HDzs6KJ!mFDH?5IS-knumP+uZgc*sHH3(avjVhN6CiOu)3o znr-S1daTGKk+Ug-T}sOuUxJrEfuw}=>r(hnoQ>N6SwSG*F`#q2N0p^k;HGpao8aNO zkHj#Bb9}Y%!oMT0hGkOtenh&~(Ww1n?fh9EN;v>cNI)dWf^Hio1ixXhnP;e0Rr~Z$ zzjF@?LpUK1ihURES!Xa(e&DHg&73rBKNd6w+vCBDwp&`X{K8;$sAGUh-`}_S?bz{E z(v~-l7QY&kg%_fitxr@6$xG<6GxqVB3VQ_GZZ4`HuU6 zj)Q;sLC&BY3c}nz_QU7|Y}^5z@Wen6Z_5vBXp(<>g0=_1 zxZFj@DNe{~t2R&aX~T%3R{OOvla<017}3$iMn34M!Zn+TuZ~gEmPAiAa_;(wBp}KJ z+DL$a^I^ftwSS&35*%I+QTg*Hu=qAUlXQMcF6Rg)I;JYx0WoCKc-N~6YO!JXUm;tL zDnNL+Hm|ovZ%f=50{;yb3&|&h?%eCHe&5_?bJRA#aRdWK0-i1WJlvvX4RP)ABKbQ6%tj13c#*USq z-aPhITx!%TqIb z$XtqEQXksup!Cnn9i1faRi&RVJVL)-r0Ie7igSK=O^NgmbX7Vo+bm7qv%#!vul|lEfplg4VC59PTx_Fn z@w6`_6L8ZiG>P>Q2jyt@=XJ~EHp~D@#Vsk|YR>lhUzR0ziz9`jzLkO5aydGovJsR@ zTmg@FrY%fLqE6#Ey-`9pCH1OiW%Q?NT~1FiAQ@ol381w2Yf)*v&YAS|Q#^&Zg-bf! z5}wD=+IXWe9+`;sAm(JBA_v4Nu(aX5*=N>AGt!?#hnq^zx}ChYg@AM3oA@47wtqdFEe7M! z1-~XOS@>zP!MK*&sRJ=HK&(w0quNun@2r(=64-sZq56l|#>FIW-SF&E09J;T=*s{^ zCQn3a8gVPne0^9RHzE>g6g=CVBk2wNemeERteXH=VYo`ktk1=I;0vl}&-R1Nz5#{t z;>s@dK5*JxA;i`blwj)z+iWpI1eBcZ#1FIY0 zssh&Yd$3b7LL;E3G&o2oaTFo;*>XAA9DIMX!TV-#48!~I{t=hWaILxL**JKK7GW^( znh3{<`^TJ5isyb0YDJUPg&A3>%X4V-jPlzkyJOJhm{6*U;AtdF@dPeo#ZLjBa}?U< zs-_Qq9$^?MWi|daMX*2L71IydVIvX^pcs2hfwvU*{=d74UCnhmB1}+AI#b9E{(yp| z$M|z2rs1h+6^|!^uvv!OeU+tFujoT_1@5Dfe2B~5@$F9WI(o} zw|<KquG=F6+)*%HIv6E!$Nb)smXz%z)Tz4@Fs)gPPg0xV6FJ2cg~T{9~@pfjzFhg zU{{oxQZO9LFgYobC4+QSQv7V zpCP&_k?3LrL9;toEd)+c>!|ZrbwST|{w0{|)SI6bwVDPU@=pAYLCmd_U4tn?sJu8F zMi{S+;k;3F;D{1x?j6&3YKw{5)ndt^u3uJc<&z)Algz~#sRS}b*-y&EuMao2!b@n^ zDXR7pkkURf(_YWHw}nmm=Fj^?J+F-LYvq*PjDe^NxRc3(5M04xODge6N03vQRO-BL z#E2s3d3sMKLRLpU_`Vgnaj6Oiham&;?F`LKYmIc?DiWa#eyIX{KNX&dV;#yCi?{fjYqb%hCWk_x9W4HHr~pbS3Grk6gfj+a z-8P@ns974=T`hHu z07+8}hZL!!NUpsni&4M|>z}b>%lx$lsinzfu6GwS+=~I)yOcX61aT4_f$jPu5!l(A@!f(6u(7b5Dk%nF@Q# z)@&05IF5cV-1W3d-AOuKO-rMOKO4jC^goB&=>Z4T=$iPMWn=Tv`c@%ew^~>Gqf7;A zOruTq)meeNm%VJ+?aVY*QeDj5lGNXyRI6f7BriusG!PjtpliY^vl`E&ceO~5C@UH_ z8A1IYkx=})szHaeQgogkht4aCaRJ@;%W+umq+w6(RHDQ~=i1^!$;Dkot7vIszxR_0 zY+GX?uLkN7+t`KKuzpj(5P)wY1|sI?~E60fGOCa7mjkKaF{jAa!9F@am9FEYLG{2Tuf{4O`O5jtu6jD&dljn_M) z#mPrz6z%7uBM3tY`QI9kT7Uj#R_}>|>8Wq+;hDD4al(r!hESCxXGTc(rjS@muwLOM zdAYzIgVD!h1eh+?Z1Mmf=TnWXzt30U=w!m+0zo+hWN)0mAOdZvx`kaIUJJPk(r>{l zCK!V$BO$RqWkev+WSL(h*U`CmG_W-VK?`ryiZs(y9xV#0L%L}pyvz@7FXA4%AP#(- zvrM49-nYl2Qu9kgkrHYw`Gl^@hwDhtMn%|z2ws@lJT{an^(dL<0tg7$@kXNac>RX5 zo)Sg!&_0wkLGc@hSPef(LMoZ1(c~|II20rARZ01&SyK+5V^8YZ5Kyj(*XM4jp^4jn z2Brutu5en|$oIwNv|}^lQ!_Gjlt6#6+G37FWn_tWi;y`*HNE#10g%?KOZi6epqfa9D)74;_c(19tnld|Qgz{5b zNR2>nQE&p<129+W(dV&}xHKGb4~gVH7us(Wp{uf|?NlW+eW*i`)@#Y2StBOP4bHo0 z0}A~!DotwrH>Y*Qu@8r0@s+kq1^S>S*KweWS!HVMCcoj#%mV@Z@-fbS&?EO5Mm-S9 zqe4*^K8RCoOH->Rrbd;rBWug)x`Y9M0o_tsVV>@E?m`VnX?u6hmC}$~25VLu$3XnK zuHwl*uZ!;?y*zhDpe;#Q`reGxnfWepSew|pA5=Bz-ta-&V4W8d05{MYPx4ziX=RU4 zhGs#%Y2OvoKcea}xlg(wEt7FWEngh(QG7gKFeaX}(dguYGL8}miUnq|O+ zn#YaSUM2m#2=~j+6!@F&wV}ofP+U(`gn_XjM73vEC{hYcxB7LwkUT~H}~O zk#CFQE)@grsJ`8uX_^S5xX-ofuPzi;`mR)`HRtc#Crf29wcFOGt80WNaW-|8)6A^`JEk#8=$ zuFhrT!z@>|(!cbGuDWX=EbG94&R9J=)TkK_1Nc&Vp1Tgqe0#tMcnrZ2k-T&$li?VL znvU6X$5kMVu=}Tw>$5;3N};_dE{2RF1+|97ojEV^y?@KUjMbz+U&3@5dzAKk2RT_` zX$C=*&mH>ErM<`ajh|5slN&Jso;=sHP%P^SGI#L1Ao-yDY{W;;fx%zV7+ux6zccoe z+@TM8q1rU@$|tHP#1MJGO&rrq=oRil9(dv9_FT_}-4{>SN`y@y00t5elY`;8w4@Hv zQKrepY@_;MVSuvQo&W#5IG~)4IW#-pJ$4++^VIye3ds5{ozyWm+n%;v{1bbIo-G^qXc*gJ z!b_}YB=l#qp9|L^%MC3!uEZ}NqCEr1?RS7O+ZPcgbK?}AsGr@X!`B(M)exkp^&k_o zPY>fMsW|>U*vIy@$KeuP_TN-#H86yk^fha0--_w>hf#6wZ#l# z6R#6By!y{3S(fRRPke-qQya-TKn8@OAs`6MhZ2oeZz(ZEtS$7cl-4kRsR;>jLI%~R zoiC7t4G{YqJ^-A2dvohh@njmx{~rGuk!%7%Lxk@|_v|ZH#?enozFTj}0OR^ROtxd$ z(7^f{Um-oWW~^ zaH|Q)` z!W}WYQ`4LPU*Zzc_TWpvAmTC3|5P!_OmrfYqii7+ z$RZCQxM|FTlS*%l-b6mmYisF6s%^Arrg=BsAejZ%>x~WXsh) za~d)r)95 z(@esJ?#DSy(^!jNxZnz7oW#g_>9-dqIgtBN<&xqnn4F{o<|Vcy8u|cuT#~b{#gpi& z6;$BlvpqG{u@-kUKQl6H6<%jU+L)j%?;ywt&V9b4(YCgv%?!>nvs;`qo{lUAk#YI@ zFSiLh15i4a1+hQ;5kr3kXXcq+;3--57rKuQ4pg_Y_2FrYP}MvugQrLLW*lQ|QN?~2 z`z933_6%K8xp-b)c$0Bl)(BfL5ZXLOSOxl6o6S?N!m|dQB9b zjD^Jfw~7}UMKW!_3Vjd|sKG#06-O8UCoH5ja1>g`v=eHw{J**i?SmRX6z;SJ1P~ik zD(BC6Pk4Xj}eO9pvU8 z{ob7#N_*o?pdL1*K`#pb6p@2o@hppLTmDNLJPxrUAb8V;748be9{hrufs$_~qKNfD z^=Rw`ZNDw^eCiX-hJGq0h@f9Y3c~N=^p8A{iS#Nuxs@O{9}2Z8;|!_Ay#aZ9`QD(_ zGPChnfelqP$gS;9KY}i|V2k{_n^OF*khzU7GRj|PgW(cX2tjD7!xpNt*e2FndR1!> znb^aN8p;*fY`Uvx&;(mm6%mQ$g)<$#6XaUsp0`31Z}s!n2;ER5!(`=?@Vyvwrwv>} zL>H7EU_cx6`}W}(s_juqJ$2}Ei$_c%)YB5%T_W-_gwHQ~8 z83L-in`i%DXW|s`AP;0DW#JK|0aSyR=w^&fUB`H|`R_>(pj_^Ew>3Q~Hgo4(H{gB} zmJB+%xE|C)a!slNSXS1eIiHX+#1+nCgW$~7@p0G*+14_Sthh-763!Cyv@)g_+&Y+; zB$9FEs>)ee$+u5i0NF_!_+x^o^lu1FH5W774~SH@{l;^(abHwtDX!i5b#jQ>jYGIg);I=8@%9z5p8@RGvsYj`=K@k_n-vrLchHgZj;L8vZxIZ^`|7-a| z2f4lFoF06yY1ZwCWn<5givuRtI0(K71d|`7`1Z|)xkIp6aE^|+ANmpN%2yn_M{3Jw zbQ9bZOk?6Q=&afnbKpgrzK#QOMAA}woHtx5JCQuQT4Z#<_k6{`9E{&Usr?po-8Dud z#dRI0l)*7f;kJ6@b-K3c+hn7t__Dqb7Ahbus3Y2VE{H#?d(HCQkz9etF?AB@7Ik$~ z>ln634Hgq^HgM_>*)_AzVLJPk;YIyLF3XSgMpvy>Uw+WRUv*e*+ExczQwAw!bVTQaY!iE`5SWdz)Cr~P-gl@=~Q2KN_e05)gfAKB129d=71(rFtuUizq zsKBplj(_E?2@jC&ju;BD!g{2ABvfZw4z(^umb8CiZ@H>*s(Zw2mnaSrISBZOPP-8_)>eGw*JVjRchhp^XQ2XgBJ;+wbMy->)?^vSUv>gjzU8z-tDASXT|M* z6`78MRM9}Jq{sw64M$Dn5+aBtqOU@jain8Q2K=0rGlE0Vc)}yN zVf4`$wTSru%_#JmlU1R{DZ**JcP_I8@9cV-aIhYmxM=c#m`k(Jf%VB1)hZK}TpE*n zwZ8Tqpk{gWCNE}Ty-rb$+PfW4W>LNiX%s!p=YC!&;(^#y2!THW@aRF@qR+W^AOOTsnS3&Rd(T^S zVGBpV7CdW!KO{-`)=B2RfxkXlwHZ=YrD;J8_i;!52YEfvn_)?vU@|{qT(|7NXlF;ZF>k6pOxZhZJamX-;5(n2oU&Ja z0~v_C3LRjZEh*bdc#O?Vvkdzc?%SSiCn#6x9!Qlr6C9+^v_X#_dtL)7B zDtb9*gD9ew>tQ~k7$_|n6P{e0VQj@XG;TfHH>86`aHpIXx~j?KJ{6qpMw%=FZ0Xt2N^7!b;>FjB&^%E!pqt@L21yyqGEtC?(af|v@$}%#O@p6r$}uCS4n;AJ z(vQL!4ofu-b<9(0?O%6ON-&PKwQ|jTVh*n1a}FEt!RC&l`@r@}Hp-JZeHXlo?nYOo zFt71Ch)?9NK4MbLapbD75)hw@U9}!^kUeubO24kgU(bPX2EHY?r_Aklg2W zOv5HiE+tLh8Lkenz?OM?zmdy;#ymLA2_jnM$)|XY_Q%v>A3aX68SYobCOve*ihILZ zs=lgL@c4OL%eYvL9L*1@q{umHdQyE=DSddx%_1;M1OS>cfG-otSb_Pg%+teI@54f0 z1K-rYA^%)f+x2D=*+xllr&g;fX2|mWK+uo&>@x7-pspV8jqf3BKp|lg{RD-IZ=uvu zhk6DYgC?d*ae_n;BBDkv@?XS(&6YtZiw~tPPwAH?aII8bJ2KsUbDKnyMtB+GK_tGN z^a<-Ob^|QP)Ih$0nKs}7_3qUP8v^gT?1W&s4|qB|Tze%&So;37?Hd@6*78$o{d98> zZONiT&%LHjoD`=Mbj7N#U?v8-Oa3=0=eD?bWojGG8YOwH*3^yjXQA#Rt#xq+?3?H` zwMtJv!T4TdreQe~Y)iYL!5QhWeQi2~MDUG1tJ1qx`jPR5u@B@&3pjix+vg{4|kWGS*k z&#{C%{tk|#5F@bR$*|7JI#xl6&BWQt!0Fi;BFd6S6u_>9x72ht?}U{_9T_o&*^gcs zvoT5m0fd*bQ!jjW1)?#lGaQWn2v2_=d%!Jtptv~X=kV`WD4yF>E6YZ%S;V&bY+8-% za9+LX}2KMKdJ0so&xH8N(2aOm%Rl3l!&}$#d(9D@-=|~}7 z*e#;PQuFVPyMtwjgug$)u+u3uA{EVC2m5q$%MdG7?E8z1r>jz=bH zkCg7L3eWCg+>%Ke5>a0d@ULv~A@|2c@jNzQ%J@$Nz-8j3Xgd=<{1Z$Yp=xj^o*j|D zL@%?m7Hu%4a?biZ+C!r~5{u9;XB5aHNdzYP4}|6aYI!+Inj|Z4i1BvdGoY@2qJiEE zBEoao!~tG&o&ItgG&de8zl?(&wWQoS>7L}#JP_FT)8=vY?XLEE5yLebPyq?nCYnE& zEjI(ZY}J1No1}qasWAeuM1{7$k#7rxCNY!G0I{C(ih-fu#Xc5xbY%q6**?6$CrYb- z^{Wd)7sq~tdly>XqOe4$WqREBYE(UH9QzmNh8U~y8hCGBdIi@RTtm&U^g%S#7ed87 z;G#*8i8%=?_^r6sNn*@MKyq63wdApnTcbP)i0eB)1ZAs6tj35R_m#%Jv)?QEj1WhU zeF1yB91I^(NU0*Ld5n7Ayaeh=zgRJQW)_)t*_0+Awmd)Hab5!tEB6@z8IvF)HcR-+vVoaux39KJt+>j`-a87TuG>2A(S;Z$jJ-q2^69y?D=ej{?E~-!!4Vq3zq+#KNg+H zxX}Q}V+#$h{B^<7(H2+5(4J>|R_1-;!XCW;dBNfF1)I@uwQ7=NERo%~{B8=Cq?8^q zVfNJshBZn1phNx7U=&%+)|sTL0R3Vyhff+&6@brwVxOIg$@z)KrxH+|U^g$uL=Cr2 zEOI1x`9jycH78y1osvUng!XbO>3w|5KZ`;Sg7LV87!EYaCa=zd+ROImBh8~KqH3qy z(g}>TUl&voJ(AB;zk{zs1{Yg@pf8_57yhIK&Q3xxWel0#?!ho?q((5+U;=KxBV;-F z-QLIq>02AZ<2KJR{NbPdM&m(({BCprFF?@0mf(mnIB#M5i+_|e)#VdyN;ghMv>*MS z$Id`H!<&b7^{&r(KTt9<_aUWou#``|*$g>cZzYCWH5=QG|59sb25F;I|3A2%;dQLUHGuakFORkZX$_l%++cAMpcB-Y z_2iqJ+gztDza#x;oWx>GczVc7DNI$jN@z48A-;Ao_QsHe`gws|bFTp_xnc+Q-QjN+ zp5!xc7G|HSgweR*T>nmtORrg({6s$%4&lDzXP<%EG+l6Z`M=DTcH0|`V!Q|7dtLP+ zX7%IQU;xaXkc|Y59)+5ksdvcE{pK97xtN;-gz!*vrW>Wo<1o4Tg6X3s^n}$+_U48Y zC6-vYaC+GOt<9RQ=}X}Yza3KqV5(+2mfv+WlDtxq)WcA6n%}_#{kMTNrS;CQTZoxH z6{?V{3z88pf;OBe@1)f1Xok8NuCa$#dzJAu?suLm(i9mFue^%q+rwtvszOf3xu=K9snQR z{YCtI{cW6Zlo(!~038?H9DV;F18MEA@2c!tb?^M28`SxCc27vs{xrmtuc$Vx(K>TO z3mOyhdvk!Y9lyBKT$HOtH&`ROO{gn_ z9Xb0@6VbS^29ZDA(U|yeZay zc3sHH3M-W=)dc@U^7y~$Tyfe*VmPm|9D1d2DLCHi1%ADG`5JcD{?k+zDgh{J7)oUh za5+V6_#a^438r*OZ#`DS5!RV24k9bkZhkd1w#_#a6V#0E59?a`T75C-?Q(SWs)w{ z0B6;ZgSnXk;(7#CQ=&~eh3)W@O)>vY4%=)X^|uWZud+ryfE&vq9b$y_%KYydG6#_&i6N%-K zd~n|jq$8s`LoD_X(uyVM#X+_k&dLGGBdsOmdS_6f2MXR|cIb7Wr^G&%g=nLrV#QMT zpL&!iGy0`Cn{&`LqA)d&1xW_{i_x@ErU?`{Rh(GOu}ncaYzhO6R{nX~@qWP}4?ed@ ziQEb7?xPkl-p|s+$w~ftLS~?{gIm?u!#BBf+8(=NCf&W!=ky$bn%&WEsY>3(yR}LZ zpe!*=SO$}C)*%zN!qlm2drSePZ)sLe+F0Nc7-+yXv0V1_x3k`_wrdSM{;-6;nS?BQ zhC#`&OHglJuSnNM(Xv~?<8DbCX1s@3Smy!eQztB# zv(B}LQWs%jLX^~~01tKt8xLcwOy9oaum_8Khz1mrReF?~)G6Q9hYPZ9E<4VIIKeTR zZxxv-W9YD8Xv|1yHS5l%nK0Id{*?ZSH-rn7R&#XirMG&X886&d%un`$5$F|F6gqe6 zNXg*1%Uk^%EkQa90Ms@^;nE{0jrdjb@+8E`|A#;SdvgZ@Zn__B7eJ^^0lY!^ntIbh zM&az7G5B*=_WXG?P+JF`!6oX zGwFXBJQU9_LLpXLZ6h`+e(>Ax>4$LZKzY^;b#G>c$%Qqu1fOaqptsOvZ=I9V;CC7~ z^k}kGGuOS5>TI7 zlnU?1uteZ(+G9MC$+WX``KKRW&s&VDes&xPepK9#l3I_bWPI=9@AscDNFG`mF&g!h}f|6lAcMdYcZk>DAkYqCGBEiN3!B%*RS7n z(uh#ch2slqJ=EVs6q+(fNV&6~WYGo$J|*(ck4PMy4EU5}`SlQsaeS5Y@)5Zn-x%w! zgk<4oF<^@=@MMWB<5~I8dWh^%DkKPd7d=O>wTH{b!VRzgeOTi*X`&FFm|X|l}sJGQQH6^7~aH7WD1SHRVQa( zvS9~YqUg_Ol?mBt4lzerfW&Y?vlcSZlL7AO>)KYVCf(nm>tX5bdfDT33Abkv1}HvO z&SB-6J(>R(W|H%EH?)!;kCV?{`(4R1PtF{HglrBaEk=q)F-@uVMa1&y51o^yEix^Z zc|iS8%8XtIAIxij1!6F($>C*2@#9HpUW|r9MuIpbdkBofrpQwzhNTT*K8F_Mn&A2O zrWCFbp*lY4Lt|==g)5gMAFSq@Y z8u%^hGF7%BQVa~(CXu*Q3Susp+gd~w1(9JzhIZw=+)qrJNS zH0$`~!S2+Rzh}=#fgZ2bu+5&oJ8LN(2TdWMnqM~(A?-P`!6l^MB{=Xp7H|*{uPZhd z)f}_-qs>V__Jk{pW(?2Y-C~RSOw4rST!cS5*LF!i+tmCI!qjmI9^4Wm5WV3044-2} zICC-rt$7t_v>PH4Pn)T1uEAj5aU*)w~rE7eCYB8>6qD zGk1*QDMvS7$SN1N7z0R`$pLj_P_2L!=+>Ccuz&#EXv<`qFN{&5lPY`LwJfd&a9>*t zbf{JMtwv!N{N&>+QAL%Zy4^l#ee66JDn5Goq2;jI{i&lr`q|~;QZ&GDJ z$Dl#dm8Z&Z0w}DO7rQKZ8cXu3m|!OZpS@Q~f@lS<4=D-H+{fiedHZ=P=Q)iMu(-Yb zz6n4x)2#uSxVSzil3UEqD9u;hHAgC>cmkRh9_1~Uf(VpP^=jUIcYS7(J)Ghq7I zlJjDNn6-y0xUm#fFz`D+v0x&oN+k5Ce!Y`83OUQP$8Kps)GCkj9c?-G1MFhuQASOQ z{(wuX08JwHaz8v0EZpMA=j#TaXHA7H&%;OcCeEGg-s2ocXspJP4zy31voV$PZA;5m zF4#q~-*52oc6$EU;7PC#ZY$&EF2q90L$u$Ih&2x>p$HqbIusYdGpm(rw_|k%4@ksa z=2zaWyvvZGmE0$dsH+xvNsjagNh%r;c`z|TXwi3LF}psui}v=0AnN%+^DQob(1O#N z87Q_mSLTEKIyShRB8V|O zL&=;GN4#;V66TNpV8_)e^GjM`Y{KxVoIzfl&Obtro@$HJa2d;-U*!oUlAz6oMLqPr z0A{dQ1#af5Ar5(doHh*y+w`<>QZTkmyDXn1vXq$)}Uj-vBqq zId|b;(PvSGEa%Uv!*6K8et_ZJC=aZfUer-U5mPSxNUNTv)R*=z7{`F`bRjD5fhu!V5`R{+i@v&}RTn_%woA2~z2M<_b}ch*$Uqz}{bA5sAIyffr0N7)5;FWm`pC(-0hx5-~@kv))(elvk#${wYlkF{}Zmc z<1}|tQ`iut&f~+L$F1~G8OJN*UW^IRPBlI*NGJ4-$Ud)Q>`AM(8WA!Fx0!)y_7+62 zbV{B0U!|-7;=9OsYjrT|-_EN9UMvNEX-;weG^1_^WGL*w`OQ}61M#6pxREb?FAPh0 z3;zJ=tL^SYUbbv;PB+AS5klh(p=z>xUe!a!+6dC5@4Lx-XiBVh#D%S{nCn|>1{rQA z7W9kMGDW!UfV#I8&ytmaB!%hrhpTtYSOj41N&&dczH(AjB$50}liuVBmctCo2hC0J zMlZgWzKA3%y2LN!We=w!gf_=%#Ya6-lL){m9~rH6)%EL(;>L1;6i>B$?{tqAv&ky6 zhk8Gu8wkt_jSj@oqHEuPy<4~QthENLW{C^~Q=H^qgHz?O^*!S$x*DSnolTW?%EhW! zMUfDNAR3vl(L~sr$y7g^r5g!=8PRZypakarB-$`PTeCGH-!aQ8k3@t6%xB3q(MXr-)@z@n zHx60lOg}~g0WOqK0J9-F=m}>Iv1~k}V7Og&th@}bs{3}j&Ci;^Oc4Bvecpy9l_ zXxrqoS!GtXQWH)vodU<&lb`ur*2iCe6l?RVNJ&1K1YIbSgO#**>op;Ol1S-Fc|Hau zp4}R$6uBZgKCo*4H-lYL9OO(Mjer>~%a&~Tq_lv@?^zG!MlC;ysQ4N;e8bdj$btK& z85z_&iHAq8s4~xOjB_?1e137P%kzW{uf)`Yk;n$=q^$&c9Gb@Slsef)L3}$c)xhf5 z5}%BjsAqoWhTE*pCHa)$t#fr^Si~g4j_1!%Ht_!wD(Rdg4qk4NI#$5Idv$u_dPBq8M^(fT9P001vn{OGo)NS&I|8HBE zSc3tgcYI+0lo^tYL*P3lT4`0-y+MB5ZlyQy-2vzrRHjdd~r9Hq4L0?>jNWZ{q*!Ox6dnz0sw zU=%{+m_DKL^>^_DMD@dAqANUIkpB%w6M>mS1H{c33)iUui3jW(J*gKL5$ zln`{Mo1UtC0*+vLUrEb3Y)J!)a4uXu0Ve( z7hPw|MRNN@@X2l%ZPiV)a8pvj7v7y4<*@RU$5$vTq2mW|RWOXc5g0(gCF5pgd@U?I zUJl{VgTg{vJoCRpQdWulmX(|P)CcGrl$J&>*Q8d)mm~G-^^A1tG@wa#m&t-?7Bzh{ zTGITyaWWNA2&x%trwHarwQYx66DmKaGY9f7zzFHFe@5&sF?7`Lq!i* zv{iX2=ly=FR?X>TY$m&LAPdE9cmhZqM5@&ZWYpQ5PFnT_h4!i$fO`0U9#vmd5WF5K zv7rv`Wr-Os8(j9ChYLhL4?;SG?I3X0qW>_kAGq;++!3cha+Y_=nyBo6ILk({59T8L z_f<^2yR-@29Zj!Ht2pal5|0xe1(SMAxxb%X?59&)0L_A@rx*#O_{oE8enRSt^DntD zBtFYw8^52Ap?M9W=FJQ;w_66mpw7CM!^E!W_e%j!xX|zeEQ)uh4fJ|!E9g&Tyiruf zb3P3Z9uI8HfC)jzQ{9`lf)So&1x4P13~hF}W9|yyvXi^HB1TSa{SUXxpCk{8zb6%z zzY?p3y$Yf*9IBQ&^EUpabKerthy@@Q!#LbXO?o0egUdfiQ%IJmKuQR?ZhFvRxlb#+ znPAg++A;KmIPuF62jT-bsUZfXy-;yoEw;SCHvcbJx%nzO-GI8uZxrK$kd{iAUbMnA zYaY5v^djbIMnm4Fd@hiI5<<(VAXQSMp}mi=T_{#sQ#|>ZJH=qo=r~!dOJiZ7wsT?X zWHMBMroguh<4#>rrym1CMj27$4JkWEOn&w=|8#RK`O{>=<*%Kc{g>c=PhQ`X*tg{N zU->2dnMyFEL) z-qOSvXctM%3>EYSgZJ?m*R^|f5~C6BU&qbjYawnGxx?M0DWBnbvG1LkDvz=)P{ z+i?9s-dy}P#~P*2kAaEJQLmRd&rp2SSkU^CL^uq`I>y%sIbr2=?laS1s{2KW{+&m1 zRPznP{!~ZX)cY_6{khOc5^E2|3FbOerf>-&-8Gt>)d&OlSuRYSE)M3+hbC{|sBHB{ zbG0FX-r;p1&*&(UE@0h}wwDxaV|?w4urxQ&k_x4~)VXHN^#N(iiW@3RVJb-8gOVhB zq|}Ohlg^H2;In@RVdM@@2bR*>!cnYM`4)m4wW z%|dEj1Kdekep-^hLViSaGMI@5JhVqAiWd&foYmHp=HULRrYPfJJ zK2=bISA~ub=B*z$zGB%dk~`I)Hx{8Vo1naM7GK4P`WGGMW)cBkgco)PZCRfpj&$C# z0M(rPgd4)dzJ1$&>R%isN$YKKt@4m?DkZl$yNUJ zA$ELyBjTQX{h{h>E#yf5VCl9*Cnr6t=x0a93UHQWtatw0w6q<+Mb!KWRhYeffOF9# zH1VQm+;{FX5b$`F7BT{p_7AjO8I^^q^x;?WKaEJ5^M67d=r18CoAg=XobPBJXt_0l za_K2OgP5Vs+xUDN%v_w~>I}hY4oy?Cfg`zdsWCwQp*~V+LG)I9;ejH`!t;hAVqcrI zr+uY)a3Csz&?Pc_g1v+K7h+wWIE9nsn{wIpu(4_Hp;t(A7;k_g{DsbdI^|tLd7sy3 z)RuX+v1=$$Kn|MUYSqu!iUe{|!Odv!v=-Le(BI??h!6K06Q46OnEpG>d5jz>NBwYw z?_f6f-$=vkaSp8U&abiR2OnJpRW$|R>Xhuvt?}8`F1KxU?#lB>Y1SU$*&}>5jIogn z->SqIl^o$oqaI|liqtqNmi}Qsf55x`wldmpTA}`Nt$0&th)ji&w}Jwe$-4)vo}5`{ zj^{e4} zBdBE)G=Mt7SH6~dlH+)Bf8>j;A&I{xspY9-t(kLCx#(bbyz6A7^MD*!QYgV{n31GQXCloOl!j=v}Uq(7I=6gyn4c_>!NN5S9bs1?jAmrsA_nlR-weBTL*D3`y{=uJz}b z3*7>W>a|?G^ezyVB+O3vE$D_Rk}zI6!*!l^HD)F18;)Z3tjT?o0?M*V zBdp_N?^$CurQktn14tP^J5dDDDq4($OJQ*YfH#G_3tq=UtmnmM9WZR`*wOsahcc(2 z^95%KtUyc80{Xg60;Zl0^pip>D<>8-=DHmE_5eD};z$8gg!uMati|vHuXq#xRb>!% z=PKZkJMe>H+T`L7&O_^t6e$wJkI7$mH6Ewk`QC8IXtx+p(=&Q$9Zq5gEACTt=jSDo zx zU1tR-Qz(=Qtx7YzS?kG%(aZYq2`ZC9%M2}!_x51PuiBGcDiI+`Dyw{8ZB#TKzBwc4204WZ6cZ#aYW-k39UHG3LK)?2aBukYY# z%e)`b3R(FML_wyXtl%Nx^K)ySJMr=BZlcK^fdp~ZA629S5x0H{_d>A0G01u?%=4)nE*`V+*Z~C z9GP&40Rj@;f34BN6lUJxP}Ax*Vo!a#orn6&ZyFSJ>y$+>2u?xYdsP5{C~Kk%z`=H_ zcTQWuSBGl1AAk2vd*#9kK$v^WE&eFg(#iJDelNI-qw$T%H7i5zr?*WN>G9rOj~|NM zQAP2F$JIVaK%R`>8pqJ&sT*(27|3IK-(e0htD=B`Joh=yb0z4Sk(1VaPwVE-M>ghf zx~cy3d|Y6Jiv$-sdZ^yjHa5yVN1sD_z3`(TF)1sNA+wp)gB11Gjol1$!WY~!$`o+_ z0jg=s&^{2#0!0rIbFGsX^TO>uSmwIy7;KGNWiE*?fta<1@w3zo^|(XF-7Vv-tajbx<^9TWY3>jpXfRha zW36bEGHn5bo$CJ@G?|@7fX?CUDBe|cS^UK%K1k?-gKH2L~GMiJ&dOM->f*2(^? zZc&Hf^XN6?qOA%lzc!;o{tnGJU|1#_RHwz*pU706qCv6K`3jQFo=2KrU85N-kT;Sn zGouBZMJ9}cFP0fGI)N&3+gT!+`+Lx?l7o$0CrDz08Pz$cWJE27HW*3$(Tv5se+1?( zO0T-8vGThJ`+(vv&30V^I}QlSQ!iDb$p12stu(`xpr+=aRoX3nfwe-m%9A=4~fr&PCo@6--eYEVIkh%|b?Zd595a2#6oP{Iwwfrnw_deARXR7#7;6}afkvtP?b zm@UNkE`7`V)Ov+9UT#2~_(c`*b8~okQwy#JBf-?t09MJ`^;fS> z0yj`_B22(>Ne~5p_kzV#d%0vktUh-H^sLJ4{BsfE2A!ob^{U%~wvC?W4rnl{B@#3%gkcKbl@5me!46nO(i4krzRHNv1@LgIFS~n0_4Mz zS68F$)xkXS7Xr7xs>SmN)Bj0y!pJ~TbREr%NOaAu`90cI4O@8Ej`~mBL9|tBgLa3;Y6R`8uEqbXe~+UYC)|t29026Fy;709=6A@ zwNuS2X{wF7rboeV6UFdP*anvnwul+GLng4)R$&d)LonZ89+wplOqK>Tvp4@%OIaTb z*JxyYj8iWFw-UL-$aj73?OvSt%U?NXS_LX`@T90k08TRd1uVit3(ga8zLex3eqdTF zz0!}Vs@QqwUzR$|HQ~L2*l@y^jicEo&+^5xgU7JXHg{%jjcBx@wnuyH9Be>{AlhA} zlzqM7%_1hFByB^cK@+95$4x>;s!zJ7K5cSBSr7L54ZoWzaH%j4p>35J;P}Dq=U(#p z=D9~?;z%~OjP$8!;~pP;{kGj%oNK6zAj$dMm=s#H6d~=HyxA7!PdXG@jEs9-9tlkOPJ0FSEVuYs}(QuLD`aia$?zY9+-3;5J4=9X;-$tyG?s>p58!XFrZ1B+4Q|bi;%uE@}qe9&TE+~@<%r^5D&C{NWAF|xo z)+@hc{I_9ms@^;M{OJyR$z@#LPhXBfLnpCa53a`kC6V6H{zhyqEcA}a-xh5EpuKV* zSLqqMz;@m2I&z-!0-Ejk4cEm{r|bkf;^+hm^|)17KRn%EL1v+{u*wqOD+IL1eE$>; zpf~p8o&;b4ve?MDk%(2sm~nSOK{_Ra`hx(>y*4RdWKrC`(-{^e?P;RWAEI>5BYt)E zhaK)FgiBKyzJ@KW*r?H!3%!PahT>R+!TM$J2UIo(&p^@OVo))BPQ~W0B4@;kqrg;cQE7 zrAsCM5w{#Y_JR8@^iALI8pr_hpZuflpp6n(m*7FQ46xB}Ae#XJ1hC0D3w$(0c59Oz zpjJ~G^qS=#hu$msyx#`$Y*=gt2y4-?FsUE3&6vp9t&iyh=C&t?3nFwEcu2h?5((p^ zv-|4G=&;kH?spAO1?gDnEs?<$HTZ08glC7qPn8w*!e7x|*rq1t>zr(8^mbu!^mu*6 zYwC_k0T;A_IDOz&Fgn# zjd-e@^OlHK&O1ZYc02n6s7=B+@1VZ#7Ch6_A4Zvb{0ankDdFdm3PHcL5adI^+5P=+ zQqD$}bWB_Ja-p*@>%&-0$V3FaZa=%(jgMMHftp$9rj>ORio;l&8Q9kIt1XO&xn6c#d2HPTDa#g2fE zC-4IWw_3+xf8x5{ej;fzsRWKI^;F=k;o>PMFVu4Mos*RBWAkzu!6o8G1R@kIDXQ-2f*RnOOs{kBm}W)_gMrAQY_*)x zd$GF$@>O`T%O=y(!&C#;BD6QVH0Qg$KyNnzIjv%RHipWPyML8Yla=C^cLM#?Nhm6M zWK-@gTua72pzbeP9AgkOJAqyExi>xAbbir)Ld(J?#+aTkItSk#Q#c99glkZ}>^*lY z3@q{G+#W4moI;VN zgs<3x`Yg(}@}(GU4^vqv5<{nlZ16oMaPu zMG#H*j%{)J;t`D~LmV%D9cL9`sWBkXr?5`9rXj^-lX_w*h@2@U_g#UB!w*pNhI<))yw>fGNoN6h8 zUx^KyL_BKy7%>n4Y_UVo2#jmfIpok40JNZep8hk9>>R|i{7A#P4?{LR(soX4)?Drm zqEu1f&eI8B{b6;S4CjfT+lMH5I9uEioocFSw7lpagZ5M$wyUio(IjoD!$i`!BCcfS{ z{tO`7AykA+@DLK>>ycw0Th#CziNzJZ6N$&jLl{57w6d3X*bSh!uj!-X{tlyHM-(0#u4Ftsev(=dBkRf|lSPSF6py zSr4+$I@uN8mPl_AtSFuSrT|w=)qIhEcYqSCQG@g_26%67m3;;=KZGM>lBp3X5qpSz z;p6REv!ULR$h0ELZ2AD2*?wX=ri-w?F%z5m4Lm$RVXVYrta`VBFKxCd&NjhVX!Byp zjfMF42t#qcRv1{~_Tj`SsuW&uctOH?xi*g?bpq4%iW5vlY6gv;fK$;?Vezj29a{JF z^}kHq-708(a!ce61VxgRmEEknlG{7}lZ5u2-cIo)v@aVKfa5W*OYtO0ZNd&*VW)&H z7A2A^I)XRisHgXI!w?=Hozc0Fl&$o*j0}Y@FQlF!eU-Lm577|#p$H@XDlJqof6&BZ zfi!^llzM)`gB4C%eom!9aAmfacNWJmW>?xaIqo=rZ6|j+7DA6A{S)V5!_G`~ovbI_ zJDUGk)?JZzPXm>%_q@m;-}Ss+1}FQX))15wgW&rd_DkH7qN>=S3P>-FszLQ&mrI3~akkx>Ea0xTd@6|ZUYC0;ehRVma{Zea(pSj6OV zJK^#`%F*9f0w_i829-1)C;(l-WTZ>yP*L=YW5G(%t9k{49tg4uSF}5-3SP9OQQJ;X z;Gkdun1)z4e9aOhG;*ini(rx=4)m{r_*zj(a{lE!z!J1rSAgTk5yWiyuw(+yV ze(xx}&DsZ6i*oa7Bii|3$*n)5^WR+?wCebQk#J zotU0HV@g0+g8@Y3&aLKBs$vs0Vtg`L5<$b6udOkc)`d){!6+srAd~vs`j=uoX+)P) zO-3-ZD4Oc*k*Rr>24IjvaJE{ujJ%_C#Z|idsEo7o9a<@!pmrK)F=A>#3k(FT^Ptsq z#tPV`ViD&t&v8D#Ms4uYWsHoO9Jp1*QqAyROLhLRS8p>b>^phOOyE{NQng z%u6AdTkWvF*=SIq;m$=NINFQ=<-X<&x+lvx3=uFg>dZTVbUhFP{UH9r>r@I zk7C!G*NE$kByO@r=lU2D4EQ-5Wm5`(^yzt5NMHIKvB7cKAKbrM%nmsW{{~3M1mK#Grt`P}9L_;rGP4$&#^&Q>(Z?P z@}AK9ka6^&0X46$r-I>_de{s1u#+=d^}5vhGEbPxcyyB65gW%;`XlN?yt$ z?cJl|$V6k%DQ~xy->+i~Pv@XGbJjPeynT@obgcGD!tt`ca=&QTs=0Ro`;3-J_P+i_ zD4|e2g&+ww(d7W&Bi)AJ>3mNaZ8gwO_k7%lfQr7Es}+!=I0mnSUyIJ%F2KFCKwqG? zB`k`SRp>%`RmeeuEX|4pd~ub#A+o(vjZ>}zP-Fq50o>v@nAs`BXdV6?2Rpb%be{#YaopCK*hTxgz+O@uMwuI4<6zR~3 zfCS2R&6#Rlb3g-tJpihX9PM9^kdbw}1fr=Lz4ohPxnRxcm3Cw-QVGC!%FN)`%S{EM zWO*#ZL35^5-3A>#GuBtOeqqoplU>=%Zw6$^wM)qPAlZi zqZ^ULf_VdI3^oEI*GjVmP{b3buG-{2ioj^xW?iH9ZT*%3o>ajagW?i!n3l~*w8OWIpre^tB`xqcS@v2w zxt2Q_Qxx$U!zU(a}dozXsj}*VLte zo87f-SkDCKmELrxZCKL7R0!NEq+Ak+R3SnF0vD4oc8P!ET`88g$|w-i0{Mw>wo9g7~pG>wvpEpxK}<=%ps| zr$lXcmfp+C=d(C{LjH9xS;dNZ?4j(;Fi8I8wi%mV8AFz-bbAM#=LX5BkET4;ck5$t86dxX&6I6FLM>&Q88^^(E?bF1^So=dUIi z<^{;Z6jk}4G-*`UvXfKkMHt(Xu!RuH()FOp*(<9ouiEA00bz_T9SG9z|AkTo-&2@( z?!dD|bJG(_2_(dcQ0Tu5U_siUUwx^eAS8F2E>%Cqyr!+qQJ1g75J$Mdz)hYhqL3N71N4<#HYUNW;m1L;Wv(|4pOuGDFp= z_`>OF0n4-AC}>L^FIP!!8nULa6;W#@a9FIaeyuk}|3NAvbj$AIEWxvxyxa*%#i?8; zkvOz)qadJX`~k(^aml1f{?1s2BJRVts+*+2EiUH1m0YKjjy;9tfvE1Z3cA@vLJ*&O z=60EyE3#`@<8{kMNT5w(Yh{D+H^UD|{4YPeB*(EbX7mfqy%K;_uuLNAlz$w%6OR54 z|58!m(5A-C^bP^4Y`MMI7^e4(q`Op}ILTc|I91Q^zzuA32`})-P4DC|W{wb2J{=S5 z*iwI?mzj5eaOF#eRJTWa)Gu?HI&#(fja^!~ZDcsJ;(>OA5BoQPFZ}-{w!p`;3f^wLH=bTZ(+#6Fl$lApi>k<#;Xjq)P-h85y$9 z?_E0NTHMuKvh4CA2Q!30mMMk9C`>=b#rUYbIR2w#c*om=K}YgVVY4%-$(-9??JTk6 zuyElx`zzH7pcQbYFh~8k+%DVsj!s?Kjygzv@H~m;5qhsLAQcK-bW|K({ zM3d%;$r8?REygHxCt#BDbrRP4s<060C6m(<_k=$gj5Boou;eK$%8OKAPmdN0`5HkC zhCrVKdml4>S`Vdhfh=fy($D1*hT`w7AwL&j=q2o540f=%^KHs)^gVeAtnuti+8M>zo?Ipz3MA8AbfjdRE z^G>dD(GIE4mNECI&hW-8Sv`6_=r2pA8R^0&7T{O5#cN3&dE4|U_5B-F=8Z(?8?H0- zd~AH4cg*U1@_ed1W&^Y)y<+>sJs-UIMXL7^|AO4=vG>Z6eL(qdBVYjO@j+2NJaofo}Y)t5CNa#QN>En-JQb?dwe!>os@2cu5|k%G$}XEkBY-J;tq3F zcOSqn7oMZhi;jem0P{)-1Y-`XGqV_9GpE%flLHkwe?+y>*t!I;6E>>gS$6C;RQZOu}B4T4aRS)Ubu_v5Fr z0X&TZVRZbkD>DlM&Eaozbq{2)WWpd;r&y`Z zd@~|8PJq$A=t)e6o4Op1m3&dopmr}(59}@o^96x!RC^&epSjsc`uYq^d60GY_VeC{ z?!y&EVHkMY^*UL2FHd`zE5{3X%CT!Sm)+ABR_DsgdW(3MD`D>}3iuPSJfEHB?+cHsu7)jf#N3k1&o*#vQ2AEBDd9id2jHz%i zl?v1EG@TFm+hWELH3xR^^mmILv-hMu{q&$kI3uRC02xDNK7H}CIDrO)&{Ut*w5>~tsS|FVtn1qS1KxySJd25c-gPs>o_>s^liFxM3s7Cv+ zUO2L;gv~K-^=U}6U!Cj40H(?V;IK-DWLom-ClFcZ8ZJbge)ZKBGT9laA(e`GX!aYC zBbVr^R#~tNad(-^sHSKn_flY3T#+!6Es{Z56u#yOnR)~h$@#UWz|!$jH2r&ME7+W< z5yqR*a2m8NFIf6HTopHl)pE)o8G))jl~@KB3J=LA8dFL}W6fAvxRe|;J|pmI^U9Et z?Zv}u7&KA{+Dt=GislK5R{>2ow~ClVzgT=y|1fNcKtk2oN3r7$%F&u*Y6`k6gDTL+ zl(C^XtPMV$P98qSUgFexG36~t6Ag9AU){;?(J1kDk^Lcj( zZ1j5)j>I{)CFnAN)uz`{%_s%VMkgW-9=az+bT`G^5)`^ush(K~%F@d)dTZ_geGdsP z1+~{JUA#VEk4gaWP%_o>p$s!o93%zm+2ig$bzEd!Bj9e&IY^9FlS29( zVugBVRma)@5}4Lxs4r<3>Yy~@^f_h~F7Hx}7eneuhXz0RatR|l#61@r$db7Nd+iSp zers*&BKE_1#>oJP2vnAm>HSVrbjC;NTV&~*U0+&elZA0KM1THG+&<)}iW!&L>v2}S zXU_BWay46l!H!y&a735&T0VqE?tf^+4wB0*-eWPb466FD16cTJ{%WLJLR)2aFQ9oY zy|=AAJ%34==h%ULHv#5@kCT@w8n}mq%`=0X0{sUWos*60m~2N1W9@quR=?_D0vBsc z`rw&ac(J&PiD<1`mGI7tecjeL?Wp@>sR;9FzPsX9pQ29;(%0f$!R)zV)2nxLf+O>{V$-A=+U}Rx-stegfh@=|51W96&b9)Ho>GC^D?4d+ zjs?gQ@Obu2d#!EW;$fhq&@^uRbHkp+c;OFx&LEbJ#Sw0+(g@D>uKi(}Az{fl6Nq>j z1)T{0N~nC8@z#2t^vVs z0z>fLAnD-zE4^P~em0$8<3 z|5Kh?Bm$0J&jmvALK|EbVjlvYdP4^-cm{m82_Frsn2F^ZY7UCI^6^C$ zR{Z<&&!F3oy!O0%sHglN`XHyZPYMzGwAgRxbpoYfD*Xjy(ff8KfPW016eK43A_hx9 zU>7pgiK3shaXv87I@+zi;K?N}T=+c~qgbRvFn}!mh_R!d+z+(PV->Z0Xksp;92Kw8 zA|!)z!%-1yB$BU`<$z##yGw0+CHImmwk*0RW^^w`Aoz+gD4!fT8EQkSa1U9ox-nD|^Lfj(}^d#{B&6$5l7F4x719bt%wrud%+? z;^OssVfhaXO+1&&U0Q(aX7E*JVIvP%^nU&?iCSNwAlY1eQIIVP48r zYP=)#c2?G=!so)%WngF-p`3cMKwK2*GXa*Uim+gyA(a+#sbDpdHxNk3b`? zkM!MMqUXsUul9h}v+pnEiQG7P3Rs=E5M?OWF!{`P4-oV&VV7{A46?=4L$bHR#sT@EOuHtHkeVw_ zvMX{pd9f`59n(svO;m}#kr$qGGs*nMbPtL;7aS(_!V^rJYV2H5j43Clu$_Rlg~7Yv zDRXW88j#%^SYT=7C=|t4xFLiW>g3-zbZQ-blboF)g>4h^T3Tdjr)T3y5%2g8GDOI3 zPfW3}0N-CQb->Avh=)TMti;*it!2qNJRp1t$lL*CwdHFu@rC5*r;fmq@Tcbec{HVQtcp=;M!chJ|AXn39(@ zY;WBu4j23+X2!e|vgz46LYP{3UFUOk6Hwl`MXQ)lXgp#Ck}OSR=IKTD^fyA3XJviZ z-PP!OWAV!VU-iKDP&j2@Kfb_navk;H)_~J75l%lX8w|Duw8RaoCIlfb^agK|K{j-1 zx-CkuYD$q9zmfx81YGWs2+tyzydsSyBBG;YB`_sA95+K4*MOXcx6p%Z3C^IXjA` z94`x^^D%so_f&WANCB|eS3z{z-`muO4e-Ogg^U0Da3D?m+ zeub#P@L0F#Jt-bBqi`A@&DP$BsiZ@>1-1di0bbLZl`(#S^?&t56yQ99JX_kml?|4z zKU`L(0XLm}Zsgg>_m2pi40O?APFq2Xn`*~$BN{#GrWfCp`Oo`a|rRM3| z1!k{5VbJ;`gn=NFG{v+I^`sd0<0D((WCN?Xx)apMJyuGSQ7kwLHVv9vKRZK(yN}pi z%O7|E~wLu9jJ4rigq44a*mg;S#;qF|+(|A;=7$DP8i@!0@ z;Kex9ATd?eriZX9_$LMaZXAcy`RkEmnwy`>m2EyjfOzhJzIX$GwnfS4@|sOOX*LTN zPfro7#BV5(jA}JBw5YZFmr~?4ZVJ=L@84yMuDINMb6}EE&o)xFRU=}&R+mga{4?stN9cGYKElA z0uU^daw&3V%sd`;bnY2gSM{14TY?l%*P&GDp_2taxA3``0XRmaok5XdC1_?PamSt2 zgPz4(iSQuRx;DFrE(ZJ5lN-^y-c3AzY$xM>yN?0i*lW4q2&IRgg&EsyqPHMg9_JSY z_{^UzvKQ9LXoeQDq~Im@oxA3UIfv4!V)v}Nk01Uq_p z3>vv(9M#@7T8t{ux5C5t?BErRSZ^Re{OVEYjop)wgYP*9B#ambjh$I-o+h6bxA^T^ z^nzGE80UG)j(&+k1Ac9#f5`S{j!e2-u*}`L{kl5Uo~L?4^hACG+UB43&@cpNc3O%! zS;Foi6Y60$g_rPV^dOdcbR~72V8(aIT9}OXqJ0!HD5+zcmoOwQlw8~Q0Lf^|#WT1Z z3lOBY;xOw)BgxjCS<51K3Qs34oKU=6lea2-P-(8nLmLeB!LMU|wvZmX0` z9@6Qcm!YFv#nzlYKx&132d${d|EgbF?LPE&rJR+a3bL|iIBwZiee}=~FrEVeaI$_IZ zqc{@^S%*WL`!!@YSyynf_xqle24i-3cA07g@;JWA37j*;@C67Rh5NO)#$n|4%T(D_ zoU|eZO9i?VMv9X9?&QM90rv6OW0#Q*!UUoyyB9{`gbLWCn$`t9lB_n?99=CM2} z->E-8+x;*)5o&ls^w&_O)TLOTyr8Q^-Yy0hDG7b305647)2U5 zbD106t6(kqZkfvM3!he~p4@%e!feeB|05&uVahBMUm+~>bz?FhfH!>6=f*~6Z=~%U z4cOS;xY>2#Yk|tj1L-S|YtQ3DtF@`yx*;@ z>6NpvxQ5>?0Ti$4v$$}0;@AAdYbHy8rVq7%4xCe&AGhgWJ}#%GRZKEo%1xi3AM8~F z=v1QWQ6So|yE~K#SM^^lzsJ93eN)nTT|=-sTuoQO1CI?0LdV90lbT~CJup-I1=2z| zuKSfa&e>me(CyLidwh=L0Uq4h&B{sObQ%piS>E>7;x~ULJ@fdw=nZjv9E}c5U#DXJ zkWafOVH+;7yCCJQW<{ko!Xu8I--K$hu>&lEm*kYCy{o%f2^E$haYn+wwtWOpmdt=E?RUYF)gppNkw|E1=*Cf%MhS>c z(S>E{+uSEymm5z=_*4)R5C9^3+pMtaS_&?^_0bOt$-S~UY^Spx@3)OBvOTXguJc}J zE(D1DNvrLLv2F|A+Nu&onxZ}K^w2i+Z=CeZzYJfA1ffg_%ycr$rpn~9qUi6+PrQ`P zu2Ck)ZfCXm)QA=Ji1m7@R7-v#K4@CimDw_$6x_5e8!ER+`K}?GHjS+xm5!x;Qd1

LvCg*;+wP#T7bwq+iaIrvFVb=Fc@`B(}wk5T3?2BnTw z_=@Q=kRtoCEpOp!hH>9Yle3TgqK6LMVNl295kU!Y?Ds3>98Lspu@eYp^-pnWj2Q*} zQcfod<|W_TE84O^7tkD!VfPqOmD((k2_KytzH@#pGj_7>bQ%XPpikipDvI>-*?vYn zP!;PCF#VNo=+6KYk+V<`M*Q{viM8NF%A^n9%PBZdboN2oS}A4WL%st#~}a&@Q_XV?+E zq(2rPt^|PQf$&S9$2LAy?@o{uJ)uO`hK&T(?lIuVmEqapnoEO5f+-%>Gmy^DIeJ)G z_r38;$j79(Rrg44f!nZz<1`|c7bLT*(~8fhu9n{d9GRQgLGwkV_%PoeEL*J|s3MIt ze8NX7Iv!dIfSPmw?T6AXCIz*K5Vn@Z4o4qF8ItLv+KhEG3m4~C0))4nEtjY241R|G z{$rbEKQ}FbvF5iYX8VlOZMHN2bGp<{G}LI>udV+eia?$hYg+>DLU+xIA)r?+Nk8Hi zN%zto@C#wm6KJ*0?3+gOeNC8nsY#mk!r>KrXs|b=UeoLo6R7XbUzR9d1s4_$=Au88 zS=8Ye2eADEG?LS^#h9d0N^30tdOR#!i(7#(87>79?a|E#a&oAUo9K^q*v0W7Ei>j` z$1JZAG6A9}5`P+kt_@6)7tboee5%h=UzW-Zq`wuhD!R}zB}r_3Qj^`o*YTGI$7Xcv zJzSIv$x!k%bk&e9S{vcsChwd+iI@(-k?j8IjySHXO%_(Zqxd1|kKNT!@%2$Yu@c=1U=-~6p!=slioIAk z%f$)UyC1|We;gnTaSXsRC_Yx$ne?zO5*}T;F%+4b0^{TPYpCMc7@?h&GhMZVR;@r7 zr0uah(1RvK3ycy98Y5oZD!IO0L=t~d{1bX>qHh+3b15LJm=G#Tc*uD zY=8HCE1ul^4bWCn7gHMm>zoK(f$l)kL+9RHy&13C5#AH7ecDliyP!)JmF(trn;6+N zQ5jLwO>N;pjpSZ#pxS4WFD8Z`o1WGZEAWbul>%SfFKC<@vbcJic?PBWM!J~qP%*`$ zhHq@V!mKkNeZRf^3uJGJbRtSl8AZzuI-nS&&xeJi#pa|eJk9va!{>L-l1_zt^@z;&srO2 zVFb70X2{gRKM1bBgiCZhxqYv0VYSn5fYBDJg}sZn((v;G0G(uZM}&S$agQ&`f)weF zoJ426-@2)GhQ9))?a(pDt~_0x7;{}XZYY)`toK0>LhehYYnXhX1b-NhhE+UDi?5vY zg5{L1#l3q605YsY>@6#TrAb}v#Wlb&8{H83vR0f?G2`PO{hai>q->~ad?;yKUugD? z%dHTEIQpD{3V#E$L>-`l{zidGx$z*ZT-w?t!!B3+jMC{)1^J1=>ogciJ4zg?li_20 zY^c&04ih3*vc!cv>1__b%gBkGmD2wO@2ENu12z)gq?t8aaZe13>&9@iFmHd{AJZSt z68H#W#+vk^SUj0GxoyA>WfRb&lc;oz)iNl;qH^Ty$`Gr>>i&uA3i0nKfolMi>lJ&x zD@9NIM)9K*Qr8F}cMW|ye`X*>PJ}pP`ip`@7hO^?ecw;$Qyz2UCt6t?7B>tC0>5po zK7b!tf-Tm1^xzcK#+zZS5=B7`P2W!KLOoWB*wJ(urVM4Rs$t_e{80ydDEPM4;>OW$ z8fi|sCMlLTz|&H#0#+^B%pNg;ibzJHb)D^zO`tBAEL9D|R~0>fI_U1;xi{_w_y=S1 zz)>=SpK<%dSaQAgBEtc7D0C*th24U~C{F~Ty3tc2D3TynYUN4F(!lU*mfOU1(*AZ2 zKGVTFDwq!n^;*voz)24!ln_s(3Cb{vKD*q*BWJkO?!<#tIb~;lHZ`$vQmAt*?0P3w zT(8StcVy)Vb#p0OIVsF~O93e7Qdo=xDjkSOx!92G=L-QbUH`8KHTpn+@^k`y9w~ z784%gxYN~@v9%bp7I>LF#C3$}vGoJ)2jGLr%0FmNPRgT5jv@{W}(3(B5q;GFwIbfhPP-G!!0w)?$GQEQUm3)>aHemr!~{o z%iRnnS9tZJg)9Qj8cRZzm(O(rFf0LDt&_H=P(AJ)X;6x77#ieUn<|rspt)r>)eVM@zvg%BPG;8 zO~qWGTZfR$&{9t#gQPglgL|S~N#1R5LZI(KMeSmsw(I&Iabfb3QhvgbdeP&hD88nX z9M6mdIG2(l8>V)1G#TOcROX+BI)6a(7xb73{-Em{$YzVZG{oS7`oXavQVCK_$dr{l zDiAb&^Tv%Gmdd}UuP%jygT(*9*kA*ROg35kna{py=BF3+M-)$mlH{btCJXRFRxccAt@M!ZVg9?GGiiA1#~d zr#h2H0?IbRG`p+Y*`zR4H}nxzQzqIG`~#1cg1z%WS+{P(4j!_h1 zoP9ynN#z0X=xjvdxOAmfu@__P(tHni2U2=ua!wKNX>Q0DdizHM(RS7p7%Pr?UNV(; zNA_mSGrr}gBMwX2m|KH;dGV4??|rHvvWJQ()#BFjE*8*((GRW^O(6b4#I4DoedUK# z(a+`asumZg<%)s# z)zT&v_s$%*DX>}8FfGm?wMM9=ls0>cUqywxUnqD3Css4!lF7@=*9<$U_p1M%wR^iL zh@NfE)6VWl$WXZt+ob6i5oU}RxIEvC2);AF)bBx&OxQ@Q_N2y8^G}A=RGZ7hpx5vq zb#reo%Cc1{C(Nu9KTi8Tk-lewOnPPZyS;IZo7I@S>p?^N(VG+cLm!g`H-zf(ua1tR z;k42y&CjOC6y>VJ-Qgx<=rDqe>*L~k8}Guxi~RR~v(-~E&f{in#-%zoMryYq^^AWZ zYBTMg3DK*Q_u*(_^h3Od?0FVLS2{W3Pwk$S^$jrq13$wA&Kr+1oJ|*o*J7rq8*hqr@z<#?_N@-?iwFK()%TR3q z*6MeVPE=MD$|yuDiTaJo(}Lsa)X({rqK}@Y;Gf%?3})I=kHGT37U0UDfF4D&prG{H z(+07^bWA-4qB(`HcfuY^oDx|_T(8*?-G74iPt4jF!@){F!FGl?l_}CLDf_dn;1p>W z8&PNn3*NaM<0>+0tJ`Nq`+(7dZqABE_)UpAP~FF-6m^W80%e{xS3fdOo1()pUxy28kiN#TV0eRw?ZDQ-5R zRk@rx1~=&^uyN96q1qVEj`W;}jGs~RQFuyoZ+70t>8 zBA#uMU9i{#QjJf(a?;&WsMc~k?Ne0}D`sAMX{#Bwp(~xEq)DS7pp0rB0sWN&;@mvZ z`q^Opv}j1UK^kh`$eR~n5@egK(LsG}iO=H7gkHyc!7jhgShryGMl8w;@#VUuMDF&A zk~y~SnDlx1b@+e>!C1?xrrm>Dgn}Y~f!%c9Y(WScud~sj{S9^ysLNpBh?Pp;{%usw z$TTVs|EM4E=^}zH-N)`i z4=EkJQw@#ht+LS(>o){9psxv)CL9$`fC=DCm^q0j%%)_+zFQUa8GTrb0Fd+ek|+|6xdYZ|%6Nyi;UrenH5aPt z+JK-u1Lcm-te=wu^$`)8xeDS-BytLxC=}+N5OX;huWD%WF07 zLvcw3y7Qp=aXv?l6@|=^U$SX*P<)t)u>u?I_!f*%6($Rj!o}@saa9|hJo@dHg_(fB zXVeyf(K3F$i~2HSPEW1%wbkiY%+c=MCP8lO4-?jr~uSQO&f3p8kfk`Qd$R!A&hTHski+E)m z9c|s8VtD!jG+EuU4k6mO8d-hb4;>9EBFna$7r%(k^EXQ)GW;r2 z+nCBNho3tk68%ic@FP=p`k^N0;7@(Noqm%8ZHcD^VPel6-NH zFIvaJPko`py0vvKqqMfB0-_?_LUQV|@}-soa`~XB;k8njibm$bjn)|l5IPGd%`XK% zL|*|@bS`;w!%_Fvy>iz_sRr{6sBmJl5D`xfqdlb%+n($u1P7(En3q$Zi7tANB-%xE zk^r=;*V$U*L5Ay&B2gt9M_<-CcMwl(Obji89>xojQf5! zXZsJ+)*0)G{@ZxSL+Mw*Ds}T+EigP<@h~hddxA`DkOC4N3HI=0KuNv>W!{}R@Y)FN z&YIe>`R`q*1DFN^zrFBv=Vm9lKFzyGje+5ij>k=G^f~b=UU@d=9@rCI$8~|T`8_;n z*V;87iSXO@m5>x3WG&CZ;{$`%lTdChzgrzYq~J_?qcz8j790KLjBg#IIQ=JtMSHa%iLHqCeZVy5U%`_+%)UP_=i+JNF%O64 zu_oZ;dNQ|W_53;MwhTwm@lA>Oa_7KJi+s-;Gz&~vhZA(~qV+g-zBelhV+njaj* zO16DIF(>mU*yXU2m*NV{X(@LU3YCKdTEuO~)yu7)drEk3F^~lSZ=aa9LajPGe^$=o zKy{80J!?bA|E0hiY0NKy?=g#NMf;liU|<{)5I$zin__Cqp>BPJnL- z*M3uq(K+HL7aI{ykH64qgGT*ys`^y)z{mRkUCEaEF8!mfi94jqWzJya+b4LF?RgCf zFfAY%o4Ml>Z)7+tYY&9?P_%VFPL=O13Uyw}f8edM0NH{IKeD*~X3E-tym%lFhxoJ! zQH>D)i({>}4AdaOPuf|6pt`u*%{LB)FsbMINtzKPZTTKf#~I2IrKB%SCF<#vc}`6hj8^wHFFL6c{BwQ0ak_lOddVPu`$?f4jvQ;;u;w?r1+%kwtxIaFJb5nllDjV zrK6uO6l<`737{nmXJr; zs=gJXK2)r!Ool`Zjo!i@j8{yYe!5oU=ckZ1X0j{2sx$Kt7i$*XsVXrwK(AZ!Z5OJ1 zvCwKi5!|B|SC6Zu!&UgjYjEiVZ4#|Ht8kvh5|Ep#on^~J*fk+R&B!K-@7quII3ard z`j=7I0jP%RQt$;ug|4ARmK*BK$$%vry2D-`q?m`8Zn)6aXk5>s3_UB%BL7=H2;fdl zPQv1s0v?_o@=%nUa*(e*0fl}ajbDG2E;sJ;JWC4VW5Z@dA74N+X6><0EwT5qv1E5j z#OySsi^-}8vK2tQ?LGK!CZ@>B^sieNU3XarMNd?8Cm);QTj<2Fx}(&6ZxD)Z!d(iQ zvFR*qt<5+&_@#+mmIU-#7Lpj%tu48C(-iSfr$1Xk%2I zC`A=<`q~$Us#Q)FMtJlu>3+0sAL*u#V~v4RCV_%vwlg_q{9g>TPoDw?3#Hu~(d;J! zMs6HmaH+XF2MiU(GyO;{|A#sLzo1SRaaU-7*%#E`ff~@Aw-}DISOc8ev@D>SRSZ>T zK3dnH#&g=xgmz+sr3AN%eKrOZ#Ja)i7V^}J+ev8CGe`H`j`qJI zG67ZVaCX)AH$?<4lm_yETCT(qD;^uaHRJ{)7Yym){3$(yx_pkeB`MmhuDyuux%8|7;XfXAgTzdnST^ zHo*UCxqsUHpNnQ;ZtMsE0QArNCm`V9fd6%ZH?p&K{2vPd;h#%nWNcyz0P^1(06+lX zfAXLHZ^VD&fd9#V(;EHC{VD)3{pbDfbpM(E^Zb842sj|%|7*XB05JbL0Rn=8fB*pg zY6Bn>$g8XC|KFxAFR%V<41fp#C}m(}VC+Kc%1XyX$M_o$@ZZvaLX-ZDNtzv4K%$NE z4lK$;p{jrY0M&P!)tgvsA@YQOFEv(KKdB)&5!ItX)G?H|K7Mc8bF)_+AcXIHH%zgT3*w~MTnD^ojkXHsDd z+Iu!-14h25&3cY{22p8qg&o(V^#QMv`oJH!@L6H46%e3M91zO4t1wg;8z^#MpXMql zm9_7d;`pP)jZIom{6vbDK|@R5#7EGP9@QeRH=QV2H*H~M;7{Am-&ZGl;gB$Ds-QY} zQQl{GfJdt~ru^(G-uG$d^SHp~=^iouSeJypl!>OkqFMZo$BeLJ9Y_7~J&Q3-T(quZyMguVaCw9b>n0BWAXO z7fAQ_Wc%OE_udSdU(^MzX&+sU8yNkGx@*<)w2_jd!0kBhKd0~#u6e_wPR-*{15X%M zY`h-M2R1(*LZ=W3KT$?y*`ZS;ppBBZQ7ia~q2bVF{c}Rn<)Q-5Z1R0Pp+A1yK7Hfd7Tay9(>-)A*3GwHeR>K$sonP$hpIzFa)k6oqezKgZJYJY z{g=aIB1a88s5c~+kbaPf3ZVzKh|rG6i1we(fNq>ZK?d&HLTQ7aP)HS)dJyqFhNl;Q z&a=YS9)MnbC=DTl-}(@FBM1%`&D=^UG&tG)X2!=ibIVcdcX3`>knXAlG)gib<;Y*Y5J}9(1xsTEC6?olcQUH{SN=Eo=W>P8SpEM;FhHF%o$G#!nyC zrlX(|ouw8cOmzL6DRT=d|6M2M~(*`#XjvR8*1z_uk1C9+W#aHIKc`_Ymm z(=}eF)-jAEgf=?ThV8t&%a&FnQ|^@%hnu!R4!&@K;7tn9 zd@p+OBecw@xUx3QE_*F2_0c6Vv_Jq0jzDKArlX5|v%d_=g=uj?l+LYl*-2|+Y9XJm z!ifDJqJ|GA7;^xXMxnn;N)p?n@e6;qwhJMpKyZ>5N0=sWzkcdTg_Q(?P%|$$((~e{ zgF#&*3QF-DL_}M%bWLFVK~UEM!!|rE>Jdg)7O>A5!yxO_1o$q~LQiMfg-$1L&?ns< zLxJ;f2U3q%B!r91Oi=4SK!Nv-*~e9dUR@2unaJg|m{Dr^N-`84Yh zepz(~pKgp>AHmpsla#cuKq}T-yq;E$?W>d6RI9VIdw(%odC-R`t(^P^_iO4x*@J0f z11b#)SprASrot*I1z%`_#yb3muwf~Q>~)F#zATcOi|a&QSs}TCi;T4>xwlb4(Leiu zP2I}@Nh%%i|5bETG5l2)Jii#p@F?74B0O_j!nepsO%9hyvqT0--PfgcW_%0gl`=Jx z=i^N=Tw>I$?oEQ82wC9%PJ&`+yr!ZTIUEpSa1r2LLdaAlM;gcC3EMB=mVu+Y4FTFL zKhVpKDi96Ym5d&-->W^xc+t=EdY3$)k5#{Kq8WWHJT_@)LiJ-1<7^DssQOnBN7eiA z%RC(o_q|9(-Xp|sxBk?ixp3MZxKxz5zznS)lJB5#0kNyyer^E8ewaZ%EE`=?2dW3X zatMyX(GwgfPQ%U<(b;nvY{(}m)*jFp2-Sr}OGfXeSn_u#DZhL;sn|7s`j1zJaob|9 zCs@+x9x1+mGCv@Io}#sDMiv^iF-M=0j=M~JvRF=59O^ji^dcB`JLD!{7?%wbsx3EU zGn)DU_Ivr(U2gha`L@_RoQ`1@;`PD4%{eN4Y&*VQ)lF8U!n07bLan?HK3Rdh8eitqY`=Jc?p{?5xbvo)=HU+YnB;OvxEp(%;c3!r{ zPWzAKRxo4j!9^`x{uu)TNj(zXrDy5B5Tou#~B(2nf zJ&`VyInkR;wcQKX77(z;y@y;)Vofz1EkW4~I1mgNWRPI}4eW3$&-rOPF)mGcn*8ar zvp-)3tW^e*4l_x!(TiY}XigPVhI;4fo&ZS47d%3w-&hz!L>uHByL|wB9ZJo-!_?&t z8YGBYEDa*z>G7drW5PFoq8~Bs57+k-Hvs)oS_1JS48^vdOdr9bs=a?;7h9wH8l6X( z(2rykT!3b#nVe$YFXKy~uD?wy-gq;*tHGglq5;j10>=9?hy!>MNzuNaYQ0#{xpxjBR&2lvxTfB*!B(6Mb> zrd?M5`ko(u|5}v1R;O4@%m-b+F%qUe4NezT zAHF$mqvLfiUZ5QawD;ijy)D;AZr@*xV3g%#scQh|-09yXG9wpOy1_?eJ6ZlhOX~we z8%}}R_hG*oG>V6|to1<5Y~~Eov04$2ZT&BVD?YgM$plDN>EpOO;M7 ze`8=PrX^f)e-Vek5uK8`coSAwFD1d=u>Fihdi&uRjM?M~0yPw4t=A+<5oBtG>C=@* zNQY5UYw)i>aGyN$y%qV0fg8{Gice^Zh&eL|!Z&WLLyO;3~qv*^cgBiAdL*&+JFy?6y)?I0q zi84|WjaC1R+ZKP2-UH~)K)XfoxJVs>PoFU=uAe9}S1q(qYL;7f$6@2m*uKAIv6Rh4 z<5W)Qd;gFEKD|HzpI!7nOvo%7&x7Nhpi^6~bR62u3Cit{0?=fdJqiMjBW>YqTm;;D z1AOZ&V03}S$NBP^GpJK#GDhGk`gqnl2dKix;PGx%fRgZX>FZD6U#D>m^1R|wiDY_h zEh61-8;dQr!|tN8EkTOmh%(5 z5~?HUlik{9L&!9zhbF zwLcSOd?>#{^`M_g2XrB@=OCSME+cQ`DKVmshvB=$h1k%?N05Foc=j6NzmTVZVq!h- zV>?l0mMg70DBw*6`MbfoEmJb#Vu}m3=;p4-0mW`3Kv7OaW(m{NsfN>E@Ca7MxSxx% z^6Uw4%a5r>a~1!KHytgrTfLTi|qQ+u+uIC)alrC-Fh}R2yNjh9WpMUekD= zh0nF<-oVlW1}BUMMV;x81?R0AC2M7`6#jV=YacwfaV_$-BEtk})G5}o%VJTf(|lq^ z>k8z=c`W_s{fD(6S{qIV8tlOg>H>dW`;psfT_N+OR$9_uRDQnl`=})KEb%xm4?VTI zLSEkHh(>VY#K!YIZ~i$U(-4)J_(QM0b!FhB2J{z@??hq(o7QrKj&Wc3onYGoox^Q) zRe)M0M+Dnfx8B0jm0-FoCr@R0exHf)!#Vw-`oa2eCeoY6Oal1Fy<*PO_7?hPCyh({ zsaZcQvP`9n^M$SBI`KsBALR(d;QQakNFRQXjHQ!iweF5-t!zLD(INTA@U-aTvQeVl!u^$I4+=}kXYck4VUt~g1- z?mEF2g^4;NSLk7&O14I^NDDPu12fS}!LTbq6o_0g{%Z9L8NEX@#HM%A(a!`Ld_jK0 zLD%LQ%?D>7&kL^FM?vOK8{X3lha}!MpB=}mf>EUqON{Z_iUPL6K~sfL==*J1_#AQX}jJI-4!|8-ct~KO|!Qo zUP>BZCMbt0GwKZdEHgcXJKI>k==fE;Do>X3Bf?)O=jE(Zkk_#MGK360gT)4tP_MHl}>P=(60V_5&gQt428 zt!P(R307bKvz0c!>PY{~rF)vh^VUmL?r;=3yEe$JFhZ1Oh=L8_R2O!wdNNP8!+ucd zX4Soand|wuquDJ0__E5zDR;7))Rh@9Z(|RmiH;$urVjw!dX%gnhDRQMvmWy6_9znR z{E1-MFh%hfLji&y6kvM}^tQ&Hm#*D*w%SCofv?3(8MD8(Ql`sG9JC7WpWLA1_5!>u z{cbaN4<=Ve+Hd;l#BYGrKbE%Zt6x>4S^>S*DOOd%S(8Q=9Ghb-dXXn2h4^p`gj~}> ztk?nd=Gx306Fz13CFX)T*28Bcqc5qX`5iM}xwk!c_uZSyJGm&lS>PSzVyonCn zz_MQQ(8g*It?`s1DRFks=*yW&tBm3xumr|!P@XIUl^8#@|$s6GQV>PdJQ1dcM)Qg~o8x=|H(xg`-`{UwhK z61kdMC6b8RBreP%jHEcN(K?m^^gZ(|=8@C`CY)zP-s~aXhtA`*{GWCrRefM@3{|_K z;+i_4wgGzuxQ(N4SVKMxKRwqN^7_5$)nd!p!JQijq$|4wHKV#ZZDC=&$ei zr!)s|Bcjwzg#{qImJERGI$rt)B(K1CSd89?l_nSqi_QBS_f@>EjD|GVB*j$CK5%|& z+HU!SC>y0%wfJ9gGPHX;-?TEJoE?SX9c(Z?U z$dp;G_4!M6b4)NRhr{p*PFM8V9(T4i&QJEG==y(5av?a60R}l{H4QRh9yn9whHdVF zs=}$@e2@gAiY{=d=FJ!K4Iksptr=5)^*b}O?$;98Qbs*KN@!|o|NS2pH!ls@YWnDg zGyz(&f2ZD_v(tQy^ z<9^nobx$S0?nB*OC8I2OL5+6|Iusc%;HqO`9Ks(ND3v#4NKdcFr1Ev?fCC}RqY(;bG2BrK(4c>GKXsx z_Kogw&M%>bvMAZ%nq+~G_WtJyvU z=t5V6SucjT$E`LbG13iJ@S{`0>5sg z?UFlppV||44|X!2tXc3a7ZWr9A{qcMXA3C|$)b6Nd4iir#8F!N-NVNN>+f2x|2e@g7hnn|p%byMvk!)5r(tVfYiTnOaG-bl~8ik$Fe zf(J}}en6*&zvrkeeh<+t5Sd>Gb?rf|ITPVP^+w=UlT(HyaDaXJAZaI-Bz^zwpOlMm zJvp6U@{;HeqjbjsPp9}U3Ny1Mv<~DM!yXA(#MNPI^_OT$8C(G}VN@Zw@l%($Qj1E; zMvgT^e)%q0?gbDG4IhpO%EkGSnOVvzAi*>bX_BBhO>g>5R!R1Y{QQ#Kq^wDNbw! z8?sqb?ZUY*6)Vv73s%UHsJF&*Hb+0og(_DP$@(!u%&AI3>J>9k1>%(KKN5ZI7!*xo z;E|u6&LX>GeRs{!D;|*DhRe$%<_AQLy~6y`HFMAjS5iSAp~0Sz(7^1EqFsVx%-yV| zTiREVWeP|bb47du1kp2)Jx{Tqe7%uk2Dw&%*$7Lo-@hzQX$;0LyU2hRFpH`%yG5#L zAxM60@iWho06Wv~cf$y>X+zWmP+xwQaq8!$OpvmxFCc=1{&xckz#)sXV{60R0|Os( zC_ccD?Avs^4IY@6t=&VicnivLZ3t(wlqs}{S4+h@vJ)=)#F{Q1 z1cTIZ4>NWL20uO)-ojR0db%@55tPSTORSWPXcLNX@;GB}&827*Rw8CjLj(t- zGW_<2>uw_QN`upR)|^*vtXQNEwlxW5hIfoEVp#V_ig);w0f{Gz>|74~hqnVD%NKV))SCSI7a<@! z+^wpw$c3I15|&t1=@^3lU_Wp_D@%~Uis)iJM50a4tHr@9s%*ASw z;^i-gxp}iN2VN97il`QSwmmcBkKL@9$9fX}LC(0DGscTRs8;uoy=-FAPAVIMkJv5> z_3CJY*bdieMU5_3{or&oqHyn0f>Y}s0FSHTV6navsP1gk8$W_xiK%5w;N-c-`weED zdGBs`1Jn>8?b~1)&+0w#{HIGZ?qy8P;1UeQyNC_J5q*poJR_bf$i=Neb7WPeL+y7& zf8|}(JDzX2`l~5f;o9|+Xa$$+-_}rB^!nqV5(;8?FD^wA zD|fN0h-XVqaNfe?DOlRtx|-U79ZQ8QI6&OEkkgJIJwkc<33KqD!C{6+EN~%W>AixG zA3YX@6BIUEdO_@`RfOH%f&%EXUO^FyoAU!x zL^;31BH@NMqA0a0;*7TAghUmWTG|x1osXrYu|@Q>(L`f>>g+{PtX3P|BuTj7Lgg`xiD_jWWQ!F4xA zfI<24(gE{1S#ji^|2=hsegLQ#7-SC3r?Z5bE;o`;fJW1P^N^bKN77R&-3EKyT4R>i zd^HL}PvhcleXn@eH*TbAivm@~(Os%H4a(JeB^p9e9UCE^8tjGnFW?u31;0+<+Y#)@ zC`AR_8l8SKaYmLf`E;gz#i%=oqioAnV}qbtsI z7bT|=4GS(MTcB02uSqoRT_iO&jw44PfqJfe{nLDzI+(IsYF#!Qd?IPr4e< z#n{Dq>SntNYL6F!boS%?0HZd*|3-fTg4y3}@x^BB@6R3d~ltA5K-zeUbo#x$}^WFw-%QL_N0!;4!Qx9eg0~?>9kyV)mKyVu2^@7ugyie93S@co z&#UeMGkoGA#}@}Fk@2znhOVt@)(IzEc3-)TI;UVVW-c$j0!1RA)qGHA)m%@QcX;Qh z)L+*5!{=W;6jG9uEV{C}v^b^_VOPdV<~1b?Phn7gPU8NHzd;r-WTqC4$<4#z5QlDE zyvDuw1*Cj}+HnWAA;Jl2ERonl;4Xx919a*AlO`P=4yA(IO%1%(0$~71MGOOWkl9L@ zCs!wQw1YoCHN@P-64_hz8tB)(bbQ&hi&Tz618vmThU8%@+xK=vZqeKJxWgE$oWspd zeYI7nf8rSM3;|I9jyN!eE&0P z9iTUu z(^lX97FF-c$i)j$+CXrT1MqLBcUE{OKng-EOQz{iHP(LH7398A*U0Z}!C2RnaBw$U ziU(eLs?oBn7V$H6&vUw)=w<~&jOcG#;~)yf+rs*iyTLGo@vFAL76o&tt2kO|U@HWe z!51cmni6OJ+6QDcQRFfNl0_wI9zvlg#!y*3J|{{Ns%;(Ct|qeVSqyeN7^hzcOVXnb ztcZ?tB`o+KmhZvmrl~r zfBzKkk(0hhp?Jj4hp;j|LYntt;TK|SiHgg$Ypov2X7;@QFt#0S*2b~;>1v%<-d4SC z|6PC`&B1)&4?jWD-@0|>8pU*et0A>Nzksd1Y@E`4Bd?KRUf-Oet>Me7)&c;^!q~Fm z>?p!Ar9KuTQ4vH;3pRNgNrUiCWIO!K-?DkN0iiA%y+D28)Y$x^J~Txky~T1_rkHEw zgbRo9ycRO<)>>EfAHY2RYGx-&({5K^1gjkAuzQ!wQ45WYA|5Z6!jDreLXG3+pozeM)q?h@(oIVZY-p=cnL+6JPX_MtB1N30l{ zrQSvv83NSr{OmhG&9gd(hKUMv-P23$;O$psIL94%CSLcUKqNUu8C4a{0P@+$@4s2V z7%I_3ScIv%_bJC%{JH|929!R-A|QqgaA>>QEyC)b^i>M!nZz9?LZM#^qOF|^zk;b~ z8z0l2(%DDXIMfH%q^ds-PP)lbmgG{F9nJ(8QO{VDOHRRT z1QTKugSK#Vwm$CxBCg&p=Z%Pqd?WAP=Mrhv)=bovgDb8R{U3HR6<8wSa z$o#ol2aWDC^Y?8->Qy}U4WN+AmZtn$r%kr}glJQgVD{t3-y5fW!>ch9%%(GpTlW?? zok2~CG-l#p>At+xfJB~J(8^EI%9rGQ9CkkNAiXleIq5Vuo?(s70K}{jlP+s7etO1$ zy>j7vKndXjV~O$sEJ_U)-4V2#DN?7-B2EdRS@r7Mj@Kt3n7SVnwgLgxNf7Wsto z0a#1NqrOhxFpqcgwvHC;54*!^q<<}y6)Sjdil{!$W%Nq747T)g84ft zyU+5ZbJ5Em9a=7kQXNK@N}k(%_c$SZ+qKsWRYKhJJA(8O*#>M@a--11^08GQN~{Yhe5+W0Wg%tjl&Emb*kPA71dXCe(i~Sefz*?Zg-ldA( z4XGlA%WvnTa$UWJTJHAP7o+uk1b5a6*kFyZF83;wyv$Ro)sIVf*P87V%>>me&0Xep z!u?Fg9ipnJ=d*YMHhX|(p$<^4%>NI@dV)J4vWgK)%o#d~qPq%au&pcA$N|b+J$Y}l z5bOZ9a)sM9x@l}q3rh*1;55QY5A_I*6J4YAG$fxGW|P0hUfZEnw-`jkFoQP2f%^n~ z{Ni4D6)^jveQLPk>}+?gE!r4&9f!r&gjapD~HnoLF)Tr*3~a*vMf%# z{PPR&VwAG;Z{Gi76tH9l$1pY^pTf7Q8c_X9P2pPXC)fXetA}GDNOjJ;a|fMm+8YXa zZXA}rFcx8ySVMUcHDfZyUr25VMBl0F!Qmt-im9EG&^XnE^TYN+3N<%cH6B{aa))=0 zN^$!QKU8WacZNsT0Wu@sYO;=Ol)W}S!K3bVjqchf8h~jHy0A%r#1@z7o6@hbVqdo> zfWzCZ8r(9@r)=H8N9VM0b6t zZ?qzT0V>u?%P}E2)cj~bL#%a4Gy^-r=zwd0NGUMLb%8x;BU#aR&=!M>e~fie>$syX z`3K?MVzC_DUN_t%F()G?_8@M=);q;yU3J_c$U`xEjJi%&9Cq`k5UBtkLVZIvK0aH} zg!qKid@aV3gx6UHtFuV8%J~0Q@oy<9WLK)ep!>!X`19=` z=N}7<_;nZrZ=)cenG2T(KnzZWO)W);J-jQ04RW#t10pv>*t%lkUwmG3%*0D!u|>SA zkEBYU^f;ZI^RWpB8>cd`OpuD*C~1 z$CVgT^$eAm9(0PFPdF`mu0YVuuQ;jt|AE1HH|f#pkdZBakgl2`hf6p2dJ7y5TZc77 zEbJwFgtMCkveoJhK@GFA3{|`X$bZjZtrMKzvTvGWMdf#3A zuA(4whGB5uKD>b(u=@6Axo=Pt;612i)O(GwJ9bv9EJ7SLRZf`aJ{xLn-GkT_i1lQ6 z;3)?<(3S=a@TI z)|;w}30mN}&Z|U%>ebV!7x{(NEpHN)iZ?8?GKCQh3nDsp=#NDCmbd+mgk>H1Gr|bg z-+y)lU={GY=)r|Pmi6)b#EEg0#W_-`vu__j3kT?Ki*|0K7ZSW`nKO&4QdG*e*qQ{S zCCnuH$4t0A`x6Yb1O~wvs-M_^Al)F5!aL5a-=nHCKpgb_VnqK2(M+#TN!qwMKYp~y zDA$fdm@>)^(Y$e2+m7J=kv{S(VR&E@>>~G3uZgNsDoz9Kq1&f|_;ssCq^OZ0(_5M{u$Zg7MNIVr4Pu(oN=fJk>YI*Kp$ zO5sRi7Q*R%-k<^?u=LTIKljNAc}?(2QH;<@s$oy1)QzqV9R(wtS(Um{DD8)vAcsRP zZYF0?S|PQJiTz-`&y-yWbh~7^-5w*>%L5E!9&sn16g@|c?YOGXwbyR}oyaqGFNd)Y zbUJfWn9`;Vdb$&vgdksQIMfh9Y~9g2A4U0HJ_iNkYlq|wGWWuN8Q^Rf<`6DCClsFL zI0EfOQM4TNNT8-}DQZUZbux3GvG@JVA^!&%)!kylU*=y_Sej;JF3u9Y63Buz z^;N;WeNEw1TgRV@!N?dKflx5|sE|dXuMBN7_40hUCp&jUN|h8C@)*<3Oa-&B^s1nB zXW^Y?fh5uHp;rBVKd>wbuXB>*>%8%3Sg(!Ooya=gYI}K5q(bRHVjFUZ9^A^l%krWd3;F31zcSACh6WSy~k7wpiJ|3i;;*dnR9 zI*|&RXCS=d)hP@HQD+CMYpB%s4Y;tR zLql}Wup#gx+JLohGE%Idw%bkYVd{%*XeO<|HeGUpxIyDGBX8J)8)9k-kshAD- zvjZsVmYyu3(zY|=Hks3BHhGy>Q zgS==N6piLuLHYI>&JtWr60F`ZY@Rg}IAja1$d$Hg5Ee>bu|T(}L?oem*(CDTiV)z} zHV;YKP3xCWu|~S)CZ()g%Xt`#sJ#{}OwzXt_OyUI-t)u@)l0oLEiz6Ez=I^#L#fLm z@p;oG3sSPrK|^+=RgBZEUE(RacpbIHm^xVxz4%glp1Nc+gGll}35nIs>PUrvXshgF zG@0TIYN%&2-Or*+Nr-xfnLp)129UbRAf+A}?Vmw^K7G|@@Vtrrukw7KtJ9K-X5Kw5 zpai-K-@EVZrXCwFMOEDRk^qcMsM2ec25Z8Q(+Az1#Tr=h$NRFXv&f;`48mJ%n}#f_ zct$aE<2cT`b(5J4B&`I=j}$We)b(VLL*N_xgj;J$#cmV1gK9{x-DhG>1faZG*@H-X&>neAGoWi+6q?%C{Qf@cqX2( z3Om-se4K^vk1q3<$MLMZ2`sR9wi-kxWWMx^l`60$bwc}hx^i-4GhR&Esyo*qkIxMp_ZvO*sf9t+I$Qn2ve zCss#0v*;LO*aj5rf})WpY*#kE!aa{Z>tHJ$dJxM$K9I6Bcv)!;f*z1sgF zBqj~A@eBeD@%wHMMFR#a&Ux|L{txf(0yIPsD2p)4QhiucE7)HyVgVxKx?$mu^e~`4 z4vn%qmC!_{T{SfHD4v3Hc8Be`t)d!aH<}UlC+gt};an13Wz1*jIdV%cy}Ld}hpfqRU`N){K8o##`tk=(c@E3%o*w#C zwpY5W)5wV>g@ZB3T`l3YT|Wla08*GX`Z|FVWXTah+!Yn_03!KuMwZ2%gtqtu*Rbzl zr?tHyia4lUW*jz#D6c+Oi_gZGx^Y zsj8LwF%krjkrW$?LUZaBANuQxhxJMYX5)crd@g}Z%7d7|1JqJU770IC>}`#=pn+LNNHe74l3ph z&NH!MITTq-TR|IY&(`4T0&$kqPI$~>BC}GrJO(pD$J+aQtXN_C@qO{Pe&nx+h88~% ztPY$pmu4E}=PTx3PtU@1@L~lG>%5yyZ@}DDcIMX$bl3EeplzaJ3T=5Lv z!T{naEkp=pg-Jc&Z#HUYDf+zWlcljC_DeCjZ-j=A}Zt1l# zrfLcL<&c7_S_E> zKf&87)VxNdFJ@rj-eykA6I?xus*ztz?;X=%#?$A;M9#kVmVt-R{OCWxK%I$SqqiG7 zr!)r;VG3~^DUhgE>flxNH9PxI&T%VGo}u)IMwN+|Y_P`Uo=UZu@n*@?pU4zvO)W{f ziMKS?uFbU?(a1?Da0<{6W~OJT_QL$5qG@oQDL)c5fi4Sl9ZC$W^Rb~<(Meh|1LE6| zv{hYTS6ZZG+1iy;Jk0I>&D3-eJ+SHOo;t&UhlSgrRm+wFhwid+0$$LWm` zC6lo2?%l(l!eSnGUdOyZ^#Y|+vz`q}&%b28)|z2$;|GxEGBdJl@HJxKu2SL!VlW|O zgjh1(mC#$rhVCg2ef`eO&fRJILZmkD1P`A0b$@R~ZDP3x(T?~YsjuH=-Ycsjii^FH zx!UcDi$srr&y^r8*#Blam1Cj!(~b27Xg~qZ*2laD#P&Y%P`!T6EIft+jc=QD?Vcx&EOE|eqVhu?u-=PLMI2fQI_yZ z)8&YCgLQLpE1?55AE-yq{5#TNJ%l8-kL9M9(I>KO?k3ASUU?ZW#D{I$G%ha6DZ8O^0_5sy4<&%OyiElThmxYAxK@yJ+f4 zohD!!|2QqSZpePC|7nsvfpijtbg@rjs<2v{&gln6A4?tD66i%B$6{utL~ML`mlW`d zjk{>6dH!wfUw@Ijk9f>hF)(yR7R7)U_!GEV19+PDN8>bRLJNo1AhS$~1KA`#B1C~T z@v5ZLn49~cA^SX!MriP_|7+?kaCJ8jLQzTo8#$SyJ((RKYl!d~t7RXCqG`M#nOhlR z3XrM)L1{`7AGQYnMR{l{|3A%_WqekNaL%939M8<|erIs}4uJTXWu?9ds2nU3&=Hff z@fMx-D)ge8A)ZsLEXsNUYbIJ)Qfg5{lG@#VM^Y`2J;efXGnu{5+pI+wQ23YMfK7sJ zTt6|b<(bvyVG4Y)MN)F)O@id+I_V;alU3gztWO#nw!+&pUbLaMVK7VMyu49AR z@&fas5lXMmT1C}nAiAy1wm;l3cAnU@R$kMYc${MOx z|2!xdO+3bQP1R%xuXm?(gStoIh@`W=?%dS1&n5V6-wgMasfWpzpY6dxFA1n zIF!C>a%O~WpOj~&yK8%&aZ8mHgFm5Ep-{D;1_mNkR=#(iz99qlp{*UWjzgI`jbZ;P zHgW5@RP)~nfopw%n^`u4s2k&&!2H!KG&OT@y)_{*QZtbPSy~UHghZk|Gk#~7T2AHR z8N5OTj7YPq)=A^gz1T|9(K3hRE3f&$%7gKIwnR1578)Ol@SmH-5}c5=r(7!oY2?yx z7edLryFe5ilgUNRr2aiKWeRy`$1W;M-))dK2!&qX{W(9^Z$&mk5Z7dr9t`tL=C5by z?^_v@mt%Z4Z)&pQ?*7zpc8fDHIr>gU93dS9p3@s+WX5Ztrf2(dfIaSCropC%Uv zy%--h07-ALuc-ZqVOx%~@RbmKH4&;F{T^sE3c4bnNq14z@8b(exBenWiI-lBPLNnQ z7Vx$wmp8h)3RV)Wn5X#n;6I_&U*xu6KAh3CNu^C({Kt$Y2T+ILuWQug&Y*il9VELD zoWZ)*57P`DqWhQB%8UW3Tr;ZFtDn@Q_`bgc+$x({GlS5&GD&hyEx%~sBI!&MMjdzG zzTMDUleQJ3K9cYvvrt;@ZGZFxd<|S6*oWh?oELZmD`itE4>#&q|^YCI?h7o6;fZL8Xk5Mx8%zVGp>O2WN z&Q*6QH^8yrN#qH0bHMt+B;&Nwapskl5TO$!Ey-nvGr7zGOi^bw(^QiSLd}_sGruz? zS-m*C6I|DDaZ3X^2Y+al6$))T;RmTxsOS=q2>TK_uGr}oJ&I9eQ1>K89)8NW7C7`E(u1z9}`-@+A)0k%`TI;oX;~*}dkW){yl7!xfdO*;5hQ8MFcoi2_4&DB^51=Vq6u0_^)3=`$VP<4>cFV)qY& z;X@dxXcqn?08g%A^sIXhn?I+82_*_^-?}_1Iylt}E=9!EY6kcLCm58vjsI1Z7LI_C zS!;6j&4hSkuwg1|kG5mS|3M!JS!=1?KMcG2By%YXgyUnDAxZM~E)t|+mV&vV7Uy|^ zfw-6Ia0Znym}iA@w8D>yJR0)iHmL!7f2YMIMX^zY!0^A@ zeSwbTA56&rNZFj4PxJ^6o$-?!c;x8M2XoG=0A1h*)8!7Tbc8V^ta8hJ1X-}HXLsVr zFE5rg_EfuR2j+h1Yb^)gjFzjfiongJeIzz^nkF{c z0H26q*aS~4S2M&;g#LDRhBhLa8j`OO=;l=tHU_nJApvgG7)%WzDRnd!gV(0yhIB*h zggF`gVu`XtN9|iyAn4zm)HM}@N-0JN{t9VRRfG7}>ZWO!Z-g?YGblc&!9t-_u$z=E zKvF^~8?Nrtq+D}_2v5O|GB3=#!8$D%j*;ff{#@kHGp4ggC#bhknU0c|`(?>eJKvSF zhXT8i5;MCO5koujf;~%Zi7sfi{TwlH>`og2O!+N{RpsO0PJN~FME19H;+EiLbx|R? z%T#A^^T;~9;Db=aQ>1l8QdqCF>2vT))f9AWp&M#9doRLk$@1!SNuvqbG|t@5`FlR6Z~q?fFjHkn98DN$!;?8dRxN8QC}+ZOh!mMqT07j;^Hzq3 zDYFqI>!y!tr9><&qOSIN3lU1cwnknyR`c`hUK@*iAF?yZqvjm;39^Qm$ zb*yTnF#^<(%pEs3Bcqgn_UsSeE4nq2z)pM8*9#O&wJ1}YooP;?o4^*cCxPtM*a-*2 z1GbH_7ID;;Sq1fOAwoh@y*`xAifQJYYa2I)>L~0>AGUaArvUvMLZe=Vr+2htea2an zn|z|69uN4IUdoIZDz;#&>v^&th1l;DQd%r{#Q4Nh_vnbotIt>1AaUw^g9)f$rXiS_EB;ZtoXN5G4Jnhk+mJ51ke67>wMrf-lX&#gXv>UYGI@g_kwhUFiF* zGLvAL;F-kg#Tf*u|9`k1uPzq0^uPZK;ZJfkOFaq6&|v;+XHOEH>sGXZD^6ZA!j$Lb zWxE@9Yt|JXKAU(R$TrquMQ$Nt^Uwo^B)=bFRnN7q{u4BN2Lga&D~}vnGO7{HqO6{XTGq9T_uy)@EqRh z9NSywVG#@{=Qm-vRn`$=dgY=Rs556wKEFW>&w!O;1{X5QO{R- zvGN7-fN5UN2zFycZaEl8;^vHJ$1N<)%qb#x!B=yXLHQnAPRA(`7J^ovm$;wWi~EXh zs}}(6aQTqAL5}!oKY%fy72^SzPYhyCtC(2JyjtWl`$eE?$JN$ z29;do{`TTq1_4%8OuX^dif#t2CR2QFCKBM6@Jx!cusa7q7bKQ`^;cs2Tiirz<5t#q zkgBCP)E?Hn()3fK9^5xwNid!a^e6jJpM0hAc|dB3KpWX*e~P5=9xJa+n2(*e@v_Wx zE~PIRAurnwOkqA=gd@?*R&@yrBaxP7ral6my_b8*iPvjhRltfbPpuLRAErqPv%_RC z8g0HbqLgkUh$d`JrcjT=5E$zm))WnsmZQGE=u5M#R#qubE;BeVS5Wf`GzaVX0bT%5 zAhVI_r^M~Ap@f)Qk3=ahgm8At90u#md}QdyTZt>Z zQJ)zI1-ZPfOT+&L?p={pRRl)^9f(S{c2=lFe&#nUmN;|$ii_Ibu@YmV^mRAm@)w`< zqw3s9MlX-e#p_F8iXss)ls&joQ%l2Vqwng&8mJ{PTp$SB1sW_fjNEL3t3{QISu|(= z4CVA9BWh7%Ju8+0+9okr#E+^W9`6dJKDewFy^510>l}Jjz=~t$Vfi@z2ktNvMOc($ zFb_S{&`JwK*Ekd3@F=w<`?X470O8Khfg9h=Gv+gVX2UuK!Pw-CjUnw7BXF1AEAD`Q z6CHF}JhYrR2#?;(@m`L26FtFS|22k!VHsOr!g4q^9384u-R{QN1?=p>j>q-FDs-6s z*0TXbjDkl(!-&422Jc!)fkD#_byRb%%!%#x`&gGk=cLCQ_3~3#dg(0gAqz3akhmKy zx4rpj*k8}5SPb}WB4~JBl|H$8|21ab^7N^U&(hy}*tJ-A_KYR=4~Ze+J9$ag^}joD zT&(aK1Z*f{B)g+dO+&CZ9O%Vp?{Q`8$Iwq0cB|(+U)LQ6AmU&FT#hmf^<#SG7|}^aW^b9P?n^Cj0K zCY6ZGG(P;5@pnxmQ+Pl3q{H(;$V+>i(dO#^PK1gxFUZaz(OcyfP{(eu(ZP>Pc_Qnv ziStLiNy{%7Y_Von&O{1OUEs?xX~0WNMP@;BkN zz55&CASM70+DtD^;wE}SD;OFzQgTqb`b~wdi00SOJ`>2k#4x9 zbe9tM1q74xgUA&!G13TqGuEz$y1<$jR84-{0(&em5naZJ&}|AAr;9eN-h6LTuIvV! zEC5Lbs3wNrhl)PCVa2FWCeRGOTYg~1BR*7M%%*PV@2vs+;-#PfSH%(Qslpi07xvK{E zB-rUP`?(7xM3`^|BQ<>HIW}yn#?Bh}g50ehQtj6Y>;(JY!}hJL93oZn&E``!9}X+| zxqWMkjvH}C(yA61nL)WEFcoU@a|>$f*rNB6fH-;wvHQ)wTRo{Rn5L7Fxl=V_)8rr9 zr_b;{a*dj+rvoc0R+mh)U9fh5l(VAikHtHsQ1wzcq*OB%QWm!lt9RD(=y?3}G!Q9W zcFD(uakz+2=>+J*%ER~dVUW?yxNM!mtKmezeZybq)<2XBymV!TOm!^DWnU&c zelPSS3sHwAmezD4-4lF340&VTVp4@#Gt=&lGqQbLnK%po3i90%F0X3^Qo({%Ev+(e zl1%ea?>XF4AIgD1YGVu#1K_c5bjASV2y zu-&gsG>GZk{7{z3r^dTSq_Y_(`uNS3oO-7&RXBEnc#Q6HZ-e-MbA?FrAbN#%eehoY z6EskYPw>K_Li2mm&m{|RXp|&hXX48zZGPAYF+ZIuPm@kf2zl26pxdeYF_aC$+$jb>=&VdHk{bIOP-Dc=FB#JVznwNj?!7M;$zDqCBSz3@^j!6aMn)HBqHep1^$r zn}W{oD)Y>V=o)HSHV`mK4bVdf72Wba;0Dc{FC`E1p$Ao!ShwwZK)C9YeJ)a7a2D8CAa0L-12U?}q%_NN9 z&?n6{v@-bE{mp-E376yY0@5Bj<$rV==?kAAy1GS@Pv^>&WP%f&Zc=1?P1Rdgt>#B!+}8(rHC8hldf6vsX*JJIX#25reE)f*LP$QrgN9t7*8t zxI7&3?R6(v@=Xi%&@LZ|Y+|0GCn#)aKefh_l2f0~DTwm|QM4m1^A}+z`x6xHn zq68U#sp7Vj@v#7Ng-Y#CueRPigNt8_{?u*#S8(4*Yw4NleR*}HIlEz3@^RzI?;!x+ z_7iioNA=-8NU4>FaMbHK>h5THKUHvJ)1mYBN+og=n^CWT5bdCEatLdyWa${ny!jEy zV^uhd$#6)jn6e-;(xmNdsLnjj7hhSXs-@aauFUW(D|&MjOcKA9x<`7L(Y?G5O-#5Z zZUVq-zA_!sYDkTCmOLyj~hGN9m0RnJ6m@1Aq#~hT8v0NdBcmou(<9N@>w8Jk#+09jhdw8UeAk#Oo zSVAXq=7EV!XF=S*NIQd2UYaAkTlGL&u;^GSzhgb1Nbi3O!{|@jP8-sYrvZWR!FnQz zq|0l^vSm8>e?au)c|Fz@qxP3cvX)BzBNk1X4TpPayN!fh?=)oRrzutrb6oX;|4r-J zwSi3FC{vw7oa;tS?^7#B0~<=0;NidJ#d>L9u5X<2Lf?AMH`f6#)?=xIUZv#}2x6EjMro-$6 z`lVL6Y5xn15&wH^%q^$v3vOXa`NjWfqK_^JWVhsV7!b2FHqEQDF z9pE@RF!Z^F5@m7gB*o?nu9Z5c5+HK*z=r&_jW4Iat_xfrA2$9}plR8pGxKDg88;AZ zr?IW*85zf+?UsBEp5Oa97sXgW)`%B^c`6In)`-GFCBLuU7#a5&S42B={u#j+F*+)X zqAjfX#8+%geM3kq3$A*KO-KhU8DU|}E7uj+|8j-Xgn+qC(Vy7I%RdE3bF%a@ia{Fc z)_PdzqW?(UpF}P)oAG9)v2G44>pej}qwd%YPUWT}$l;y3(~K-!CI6 zn`L)?Q@xmMERADP#E0vrIDVv&EYZ;4*IM$j_pqqNc`xxHKJ`aDPvhkNoE1_a`Ppd} z)sMI-2zfhDx`(ITS_G<;62!4cM69T)u#Av$#GMF5x4oUtoJ>3AcJ8G^Qc-aUWowrW zF?XN?2mf?Y{7c@Sdk;H_nup{2M1Tr4nPD!ZR~axhP&abQF!|A87i2%GwI$8`-obT? z$rmy78DLPV$D@O^J_q9di_SOo)bs3!pN8GX?zyLbYXg392c_h$mvv-;-$ws0VSzPn ztp0)i{cjZ}G*}}0$vbp*!pHd@bpw?!ab;)Z{_lTC6vl{%V-f@bkAd3366lvZY4w_} zN{G~1c_O}#rLqBIA9d;_1XuWvXp6p|ai`ws3-LM2mo&&g#{(WoiaRMUj-gJyyU~{G znxiI;9U8hozU-W`Ef|ZLMw!bAQB%d6j1h+Xs{934NTMFnJecDDAELh$3)5SKu_b>T z;1~ynyoHKpRlh*o&oY6-e;CJ!Fv&d3@K$ODTNGKhG&(MnY?@DE%-~3*DAEs}8XS%$ z#;}_$lY&sdQ9AUPVHwO)DV=O8_o8<9znS>3Ji&t5sYnK-y|?Lo6~ibAjHnLQK^L_N zpBQqBbdXWo^T7kRa~dnkNgP}r;1fi)qM89C|6=SD0>`pso77cjfZpVuhH^DR+Zy}K zxyh+*hSH+Suq8dmc`Rr&5tgXR zszh)0h>6P@4`3`NuhC*M`@1%MTXuZ} z7%9MP0L173scgsZucf_rz6&F?*;EKRxf4uq%*~;DSN!-8yjeG8Kzm(pdBc#tC)&h( zB^uIT>k4$lGbDxI)+F=aaL%t6Xn8I0J#?-?@8940xo7YP-iW0O6DSK0vkm>GL{vBa zX(c?nb$ul!iAT{yqxxzX!f#xzjT@OfOBhW4jfkuLM?CE@MVN+RyyYlV+b1R?8EMAc zSA^pL?qD9AAjg5a0JshY@8&~c^KuytT-HGfuIfO<$ZHR$06NbCn3sRka3voZD%l9A zj36m2d;$AXDR1usZ;4lCzubq4UFqQt$eM6~7Z|lZ$cBifd)hq-kQTVpntym{LbPo&W6W9FT<19i;{aZS z?1*ht#{U@Z%x;T{mralnt@5U1Ckk7m&2n$YrQg4t^<(u-+?v4cm5Q(nBqKxc2lL$D zRR!ZL10N;tyDX@RFo7<>Gn2t3W(Q@CrZXq=K>$t~V4t934 z@$dwi)Yp)Xcb3uBvQB5~%^}LfMatlJcV;A(3pCRVxb}atr*YKtG7r?2v72((7Ho@v z<+Jb&kX@CF1=pRL;v}oGU%W8jn_cMl4=EF0sR_ovIcOB(kgwF}w160MY~@6aejU7( zMl1^&`8AYHrdE=RQpQQt=`CSYpEHeAi{}vw4U`>TZ%HE4QJe!^6`flp8Mi@EWMAH^ zE^iZ~RQ`qYDi0cIJ$!-HSw(x(2(vzU20!EnvkuT&X0>mV$H`?hCU@x|045Pfaj>qv zho$pr1m;W{DZF6wO|ck*c=LrP@Cd5VgFL6uZJCOzX!_3gX~7PN(ku+dwNX}#dQYu% z%5eiI++lla%2f>hJ2o;Op$U=h(;*&}q61s8EQg60eTg)kp~F7IBPOzSMDJ79={4R^ z!g8|Oh>(}DDnBE7HI5f=Eq9Rr5+#Lyy@tjhr?HfdGN^( zl1^5LB4Z3>`%tb&=0hQkRkfcQoA^Ip$eo!P#Xat+6igyl+$u4xFh_QT*?p0ZPIvDk zK1vNxhWy}fD0wl%uw#-gM>BCp6LeLiEP|MKxBm2w&R2JN!_`HR ztFF2T%zu{B!V$l3BxpZjo@5Y2139u<>k%FWs`@P3yb&QI$Fon#BK|ZZDZrC!QPIzs zoTgq-+<3RGS-&iuNXN`{PAp8^eocc@R`sPtqZKcYX3+X;8UR5+zQ0%unGn*l%U`fJ z%g3R^ZJ3pWrj>RlHYdVM>Yu#9-=yrb)BQ^9Qr^2xO@(hwwdeJv67pCSQIs!Wi`9u0V7%r*h!az{zZBKfggOG zCEN8nROfC~j{=&xtx&sm@z@dEnY41Q0vSVo+Fa4zR<(6szO_ghMjJ$M*cXPVLb|-o`;p;nGj9)cYK#h(>D>daSB94!7Xg3zVl#}wua{lU ztNCt0ncv$DtFZdp30I;OQNbui-8mjIm!PX^q6bAjaJO;M5fD!nvosDUHlJL!3vh9Q zBeS3XDkL6Bs3h+(JOJg^?VBpipT$4HXcW$Ow1a{zrc#)|hT?%h8{ium3X1rw}$O zgqH4=bux%o35Pxg{yyHt3;|hRUzc1oV9KPFQSOyv&*zq)sCvc%0~Ic96LJ^`Ed2mQ z3q=pRwSe-e5JAaCPWq+Q2q}By19N!bXte6BZ_m1Ic|reYQZb}~Fp+S9<7gMkn=~+( z-kDOCZM)*ybp7qwur&&>Jid~+5c2wD?ag}M#{?Qa%e69J?u_vOo~H_o=S=h8>pB(0 zB3XU)&$W%f39?%RME!Ou3&=%cmuQ8_u{VfcAirqT(=)Tq)&KX-PXcCm# zbckV)z!6A*)-rI*4+>YW^!`Xpkh;wST{-8|<%(Yxuw;_9UfVban4~*C%tY_QuRoLT z9EbD){MthTu#gM|Ro^c%yaBB>d}?#hUUxY^eSz&043qjJ{rtO9M}ghDMcZt2&)^Cug0S+RorAf}j38*OC+ryi*fQpQ1l_WTa| zYBqD<2DRTqd>IpEFBwT19(PeOEd&{1SsTV+MZn?g@&*#HOOzhC^ECjnsQ%L0 zoy)3UCn#r$GVInkCT!S7vK$7MOfu~4cR&&HSvyVndi^^J9)LHSr}&c_hGfImly>g9d;GGHBmvARWNZj=?t4|GYHgkJ zF1ygdS?`lxo!wX%t=Uf};{@qFTUvm^B~4{!bGMP1=nRhx`zwi<0a@yn{4hdIV>5^- z=L!>|Qg(!GD!eiEbJ>ZvBRJ$}15eSC zNTLA`-77)u5Pu&UKH7bwkRG7x?jyQLS-syf9mkdyJ;^WSC=J6`ORg!h-2wX#W}+`# zbZg9F81*KkC775jgtR1!gv&Yv)c-?pnqgP}OMqDpzhD;jlQBz~rnmenQ1kLF^K7%F zTzOHAr*7oHHwl5@siiVI=0O6p+^JygabF}KTe=exzOyp!Lk`cPw)`ub4d-T|Lt?n&`308~cj3B<|8xpf`z+WWuxB=A6wgd-{!37^^HN*Pb zc=YLZi@zS~Ogw!ph8(5cGvC2l%9|bRDt;ei%_0M-be%)(|8f=;vh*U)49-anm|eg{v?hoaxe0Cq%o_E5T?Nzx$g(uYM|c zCcpRcx@{48+4B4QSE`tJ<>*%8W>Yz&wg>Z-0jkD!n&UA-I;LjK74?&MRO^D^UnjEv zXZD$Vp6S0oxZDfm_P_c4$^L(LAD`a-1M+*I{GR8(C((oQeG`D?qqtBT6Whege$fo7RBFkFo0 zADC!*QBsb&y?2(1Zx6)f1uP33ZRN=oC`al!vFmv^`yVvLQJG1Mf5&6qu@lutoJB-~ z)Q44iiDI`PMIyXj$sDLVZU2|7x9>z zqw`D$0Rh>F7W@ymzGJj34{V89zzJo~&3g4iG&U~mhIDc9PD1nc3i^4XS-+^(@%R4R zj-!b5p>9=Q%vRw=Bg$rY1da^NUx9gADVU7sOB5N@KK!_c1tIPctm_|C@H&Abw}$|~ zz7N&aY2%*VMSA*szWDt8Wl^i%z!cxk^ zA3&ZCybi`vk#%2%3jUPuxL_w@P;eHtLQ;E}G0NRj*R=kI-F`D_w7@xHQ(~ct8V9)C z5k2k0874P!BLSIv3AJs7u9qABN>0pOY4L^$w-i0b(?0Bg)2A7B3u0vz-g`tk-LO1H zF+)!*il35^^=c%e@rh`^WF8q&vzI2=V_R}_Bv^)F=9j#&!i7EdxMfyqkf2Q4-1#ipE{bkxLO3Jb_DII z04unS1K7UjYmEeReF`Y&ZX)IllfkTT_s|@e#GkwdpY^VSb(qQX3?9miPQ|f5z_Uij zk|yix-7&Qe$0kbY51Cj?oHKPl1jHlNvsr5H+u4NHyg@DDLZ&{SiR+Sp=;5=wy||~1 z9XZQ~B%#Wp6DJ=Ssy1zR&%Fkk^2v@iGto@*J0}8F)l^4ko6Nhj0@9Rt0^YOsH#2 z8a>GU#mpfBXl~TcMa_2h4~=Y3{y1r@b;p5reZ^(#b`V}$Hb%Ydq-Zj@A)}8^|98c} ziD&|4mk9O?wasA@|7t34Ra^gLp9t%JIVV^Y&peW6QLFV^J|sevmw@+_XJAO#f9W0&_as#51T^{u4}8 zEp!=0lZhd0xz~IJ5Jp2gHduV6XaywlE8u;NB93pmQtD39X; z6Ar;aZ{xT~JZ6yg2K-RKnadLz0p_68xD;PY#Ce2O#6z0amt0+tas|4gN%X!RY^%+IO7S2EcBRO>32o_F&3BPWNN0e%*mUl z=?S~)%M3*~H)zMVd=k-lCF&le$es`H`6$$@sOCoc!KBZnMz%x5RgM|cJmrRBuD^IW zC|nyusg{5h8{CA(od^w#O6*UI*iW^MmFla+Y73R7h(IenV7NbhF$;i+>O28Z(2wQ& zyaAdlQFR}3ee&@X^!ZTg{1&GRydL3p=z$8b%~^@i zW9Nrz7lnPFz*AG^jGD&j2MU3JD#wXJcVTidAlAy2rkEKoyTl$wM0Uf zer58B#DwQGlW6NxN@#-`uoe$O13Eg=0je84}@3F}=c*CG>$Od6ijMg)~7L>MWC{z)XS`baU64zGdekjZ4ClFE3ZR^kO0>=$Fh%l~eN z7l*H=_5@)d$C2>6$XL&iKO5Nt3%<+L##fmH zPH|fF$8;45=b>opY?B0m1v&-1ikdt5AuyA^^V4E2@eE0#74mH3sn1oYq`xSa^d$9} zsH^bl{t|KI^V8Ma6}>)|03(vQV+Prok}Q?T5qE%%qGH}F3Zoh1=}yA3xeadMNLzc^ z<2fl~?(SeG2S8<>*hj-(MlcqwcjSWE@RY0bl_RFj)4tp_d&Fho3L(3t?}@yiNjqBb z!0XreC2-DXV_ZG*mADYkWf}9mZ97otb-)L4C=b23PB-PI#O(ETRXj3Ao>T6h8pQ9= zDObpxgh)CB_Zw1p*<4YM&sl(tNQ1XkB*FCzNtvQkktUj4z4x;Hs@A_)BFLhaQwE=!#$hTQ0GX8J znRAkKS#IyqohT6@8`g|e10x{nc<*9CIsSzEho#3n_)i)-uEJ2kJ?7G(_H&7)*-`JC zb06_ONz=&gGe*Jx2Z30z-Bkh5a>O}zx?x8QhlxETz3Nu)th@zUG^V|+^p;zDxffX9}_Ay(uUrp*j6A z98CZivsY`L2pa97y3{7>A~KHYh&f0DP7$w)qB%SNmxK&WbgQ34P?0i32af3bCOAjIzk8eWSxNKaQ`Oo2E$6rY35BCKzvUW1S2;r z3XOB5mHW-uJrs};F)U9Zfay{ZWogQ#0P~0mJct>DT^+TynDe1!TgJ%)G%E|?KrQ8u zKnG-94fk(6Zq&B3!d#Zln;fJB#wB{p?Icl0&8jZAHU@bK{d*rcvT7r&#F&ZqM$Q(yHcei7&9z1>$XLUjlA6m4qg+EINdO zC+$UyFfGP}Q&OA>v$jIdW#LfO##T~v6kqHNe!+5<^MZGTe%I?{pN)oH*ACT~A{>mx7m@RN z4AY?4hKMOp&PMnOa@ul%BTexc%*{B~9 zdq;TE(*c-yX%`W{TWVq-I@Oxz86S~7qT*U%6fM1im#>r1%lV3VcyPWBQf;ijNuncA z;Z&J(tl^EBJCO<@&91FMu54%%hKaiKKvY=)j<_!#{W&Tl{0o80Pxn8QLpu8^t@d1Nr-TK3BZ|vW#X8rZk1iKd4 zIT5$u{T+;;+^sJzpG?eJ)nvJs+e?)uy*9yZ$8OA{#Ec@|+Ap3REKd)8;*hYUnrmT~ znv2W%2t+HgS)7K~>qcRlWp|nLy$`q`>KGILu_G5PeJ1?U1EXwd0BdF)E8~P65br*Z zcU)(_rjpf2a&4j^b4d0ky<|N|IEh0v;x{RUg@Hfyr!8?WgVyL%Ir{D-oS)7gckN$} zv@8$EAmt$7PeC^Fji7Q9W8o+qKPGqSa%dA!eTRsC8a>=80&enryfmIxPQeXt@|Dq^ z+QQ+1dy^kFIAly93@SQW4b8=2up+9qV{i#0KcRrNs++O8*V>}r;v{I=$?HAE=ay0j z3w@l^vN_AIlVA0j$KaE2;AXU%m6P1(%G?KPb^9#P5~l-VMYeIE9QQYe#`Nr3&t9D* zG*?-xO7$V2sPcXuN-jSXMP~45+GlyUO_a`>s}-c_^-| z)TuP`k|&JLbU=g|*oe!(k~ndLkV7Hk&mR>@VXPVuG=?6GirrSR5*$z;wmn{jCes^R_FS)e3iGsnN9=^FOznM|M7WGRfW*u$ zIm>k!c_Z^dgJE3v?Pkp>k}deJrc&FN5yC*5Z^mQYV0%z3J}d4Q!~0oglU1?l{a}j-=+j^U zvzuAhuo21?n&CRwseFGQc~VowR3-uy0;ZKCdzgibJF9P>b4;S@nF-zfG4z>biIOQH zPs|`isM1JD5sid0m*D`G_S5}Vh zg0Kz^)BOY_JxIsd0+R+2^gP0ucJtMDNUP{|G2QA{5d-ihtz5YsgN4sJVVT=qSqX_b z_1pLHvS!-+jn*B45#QV1{Q=lH0OhNRx2cYaNcF@_L7~!TcD~qo-L*pbBMi*bm{}Vx zpvks;A1jG6cj7yd2i^&OtvJ>?qI@+c?tVkdwNhNACL=`SoWErD3dAKvcSiK@xc>rF zsVBtf?E0If0#NwrvVLx3LEUg`1rDwRBGoDM#?$?3GXS;Pm%HZ9to33uIy)M>v8}G< z!DW?&JPFa8Kky#UQToj-ksMHr>oOv0_@x<`=2uf{vK^m$BVw`RG84HqYPz%02WlbJ zu_S>`Pgd(res>M;FF@Tt^xhz}C>dHd)(~;91HE&>SSPqSZ851B@yEY2GI+-m&bcS6 zTo4Hq?Pw;lKEydb`7NtbA8UPF1!sKW+-59j-;m=75PRB^ail!j znFQ$eaNfDyqTLc#Np3QE&y4RN(7`d=+^$+Nb;2QP>PJdj?mL+pWP>iXsxqH_+;ph-;KM}MFxo>s(7M&dVBrvYp zbz|Z6*`yy1yo;Hp0wx)iB?KISm^#D}v0jffOcB6uNG|IBN%0OrPH)6iTiwXdCFrMo z-K*6;CK?HbP2!u1hXg744zY(6ux~$m(?Y!_#mu8MAxo6mm0Wxz?|vnNuTR{vMyZ21P`mTlmOGyF6&cWn-r z{cx!Ne6=bsHq+n=J-ApwAXIR3FXOSwn2!;Eg2@Y^#n`asGEc{u01o@Rw|hyKy_Xw7 zVZU#O^pHkERNX7Yi6$qOg+#$yKSJtA#0k6O{59|uTy39gEn%~4U3{(?u0|0udta?=}{1s^Kt@j9i z*iD?19;ZaJXgC-1x|drY5cDew?sNfISsoJp@x_(7M2Q10W-#b=73rBU)0RWGH470@ zusSDUg%O_?dw)luL8M!qRyOv>#?xPiU$wA5nx=CKKd$UC17gZ)i+4*g#7WL(tQN1k z@NPraDuXFef+?%@JFWQR*)QF`#qb0LEgq#M-Odt%rhtUvW*bjR^-dlS?&3ym!@;(S zL|YStryZZEUR)r|y34jsPDI9`j5lUc5`u}zt!`M6(^(Nxf4_1S*Yp6i|q4CxV`F{4Aq11-&)QMs`LCo>J5 zCpsUo{{z2v`u^nowmj3G?mo~cn~-{UXNR+_#VO-&;L_R9c5_u#Y%y1OTXzsLAyAt* z@p_%-?ZQ|%B;wgiJ}1)uE+EXZ$QW!jF0=A)aUZ{1SZ*)RFQJtenLa4$l7@V&TlTzo zewdC&=ExZg%bOGPrHsZgxc_yJ&AuRy7u#%5^JItqUPDhn{ITJF#roLUB(tX87>zhV zuJSZE)CD<*i4~^2sg{}7F|Qr-jSwsBm#-jfRH%CDvGpDOq160OOy`TE-uuj5%EmH1 zinIYXa$4-3?f8pH%buV49l0w17V&>KazP`f%)6;@!U}-Qkm{k@%q4Yn#L6A25d=Ba zJ7^&kJ4Jbh`;=MJf6un_mt5vSTNcIF2ymJ?UBeSrJGg7O+sb(vhOW6{EuTwAjPa6O zIIG^OiM4KmIROGfb(IFFGLX4%JGZ|X-k-T(usATj}`Ib6I;%x&8*=kBKh~$ z8MRAW!u36;gw8CkW3~$TCV(KccCq^tRc%w*S7&ValzMru7k3DC<63B-1Aje{c-_>e zBbiERO;7IUtwWUYRLO6EL>pIL@(Rp9J^`SWJ?I$a;$qCMINhkf@awhV#z0z8f}jci zeg!q3vERKN?BA#*qec`N89Du)k_0h%2kwI60ZEY%pso6Tz2VF&tXWvB^lm)gy6Swd zC9N)ECPcxEvN}={yjk!|`5%QqsRN2`0FharI>;chh6e#wCfNk2#Gb=W($E2%-_p@8 z6f)hzlzukJ{y`nYUEk@?Iw@}rK10LwuY3zA*ZbTjC@4d0SN@b>RUeii4Ey<)u{a)c zTEcCg!nQE5#OL%#KC0Q+M~dI}XOIsJQ?Lqo6PAWnxU+{l{zBF{S3!k=QinsXB8C=L zMEv3`Y`nle*I8&j0B!+b9<3l;jZoLtnu0na)vj%WI&&mLf+|`=>0r6EEKMTSlJL1c zmK^sD`8-=3yk4QLVN>^1f(u_6E*PGKEy*VB@;*g+XoqdWgh%{@o(i?0F{yto@6R<(AV*Y;qep5_2xo2&}FeR{KF7_Jox5~Wm;hIq39v%u1g=G z!bxWu^T(5pp;OtrQZkk=Ar~6FT@0`pR4nTa$_K^c(uIg2%7BdFvogOb)oeMvB;pI?-O$ar>Sl2`Wz^Bf@p8K`1=UZcb} zwr@qXr)aT|p;77~E=IKWvlX8!bqAL47n9=!26!-*c646TEj@0yfA+7Xr6bVMcwuwl zwRJno5=XcB+Ko}^MERgO)SD7JNeHw%+y{@f`J{iv#$>k!?RKUsK4yWA-Y)}CSvg@A zk%X1LVeYjYN76r3*1emex%)<|JDXIRkXmFl%OS8iRQKL`a208v_J#}$tUy)5_L#0Q z+y%%}%(eA-veIE+-VmCrW5ZiS`ou-RQHp{4TNIYLJ3qs7+$goUC!;L3>c4BIpSfk# zC5sG33I9WR*9MF>i_>zubQ~MgqSTahO_WIc*$G4}tES`!k&wQYrq%^@Mf~`UYl{#` z7}<6^9x`=ExwySE=(^K8sQvLH)><~Ce3e6;T^*)geK&>q?7_6*F8kN_3p%K?6iW6( z#_DJzNEeRj{LbWm9FKO3t8^_^iR38_gum#`QHWi@8KtWfc?5=n9N8vd+1V;wRRIfq z(wLzxV}IMbOikATxrMHUJCnhH-KrTKcF@efV|^NihDqhP;xC@>Jmp$p8zw-zs=7Qr z_r8-a&fkG(8WL(BXgSg7Qu_{gzI9ffV_{PBdizq+j}C(|E)Q!>FmC!&CO5-cw;(u7 zT_twEdJ=C{2q@)uUxb`du$EyLy-NbbGWS+XrOIcZRErWg@X}_Y#h}=E*Qw4)DcwN1 z9;@2<4ElaYO4m7M#pA%Xb$k3h9&ZXX&q4Udn z#ZTp(BMXq69mL<^SL63|juN18J|!cktIV~RS&_nWzUW7RtYY59SwUdcQRYZS#C$=P z9Uc?KveVHX`-4g`3W}XuilB=3P(Y{M!$G4SDTvaeC2B+8CY(#hqrCHDe?lK@XTeE@ zIJ-oPz;}(VQ|vd>@pxWoAgskVm4(E&{`JTbQu{UKj~BBx>& zMcVbT$t+IdbJl`|4DoSr?ti%;$TeXI&bgZaaqPwj*!8JCu>?oGegl!8=;GGdRpp0B7>i4{qh+9FlUy}uuNI{Fra1!k+qA=ZJYOUDah>Svzet; zTm2)Lv_@!MtG`qZK?xgJNd`0ZCuF`t3O#eukWLUBC7p$i`%Mc= z6q-jz_Bf>v2#bRT4K(LZaZ~+yV$D?i=9MrlP@aOUv}L7^rvT%FncFpG&JdNIO1U*x zvauCae)R>i@E{|0ic~*S{JjDkwY{g}(Qa+NCp#V1qg`01sbAYcyyHDJO0D7V&gQ&q z+VCIig=HPjz96tP*r!jABF!4jMfA_ zSYz?nl!go0cUpUuIkRa}3hXG)2z=w(n?C^OcrtU=jN{06*<< z!)2(CWjB;tBveLNtKy>FNb($;U2vg?y1bE$dJ6dz>-MVkisQS^{-KOogWwcaaj84)U$h1SQf-33ujVVn z-{Xu$YLgRafS5tl$sZMzA`59I2=J<@KTAB)G)Gp?=&n2}#?fK0^&Zl+4Cr8)aI!nH zD(EVu&VZ?$HdDu=h`@zP6G$8ZLk6rVKDbo35c?v$+IpH3SIGG}m2{>p6mjy%F^M1( zsDtc0{Vk^>M6K9V|9O7J6j8al%#%=iywYgxJ6?Ay&K)$VCej8IZJh$q(^7(%y;Ce- z0B%)DQPT8uLDUWB1aZ-Ol*sfM^%_Pu{kMmi@bjmH<=!TPYATro_t*}O*33UD2SMvc zoLoH8i7CRc2{PH!ug)R$<>k`Z4m!)wSTuED6RTnuI%|DwpdCF_DU&Zr>uq$5ybCwG zld8sjr~xE%ZRmq6n+5?viV{5C@_*^@SUd=n`$-kLwsfI2dpz?z*pvCc#n@b2YTb|3 z<~hQ71fhrwX7DcnwGSJG5r9Bb@!3=Ff7f8`I!;g#a0;>RBLtn)QI6{Pep~m_XCAP5 zJXqV|W#V`GfBJW!Vxvq87>;vx6}7$}N3-$kWcWm*9pRO92N3t%+ol)R{}mI%mbd&8 zsj;OpxF#ZYEuM5<1UV8(9I{jIuo~8YK1KfgQd3{dai+@r-wl^=b`Hlq z)Y>ektA22}xXK{N2|1LuYe=tqi;2@~2fJlM&sEPmNB=yNIp_MGOm8#SUM=2xCy`Bm zF}u~-x4J>vS?$(wn=Ng?l&@My_LSu1+{H>%eCt1n(I&iVnflOS*K zcTk;==Nv0(4*ea3l)66M>;f?pyIp{zZHzroSzJd12B7TW;S0Q)pCj;PO_9v@)UyoL zD7m9IRqgUpxwVA5H(12Ei)ILAp6C8?t?tJ3@rHNv2f-SgU(Q^||1jJzm0mR)$986; z$j9KiI6E#Yj)QNRJJ_vk^bP^ghq^*CRJPf|KR(TG%Ue)uth6O96aD6HuAhz`=bc^G zt|OcbmBT+lL68gm4Du_jiGtaN6gkWjD^P(cJPsl zRt|h~v*9LEsR^aEx0?sKZq6oBMwPDV5Yj6i$T-AejO=yKc%a9%Jtu@x_)KiDpHkL^ zUi5P1VK*Dk9D;?iXQg|n;Afg5g+Iq8(Vdh{S6ZPWbm~Azv8`noOWr&iFGI9=Z+)*S zUmH!66IR(-FE)B)(^HkR6}8an0)cxy1;Q2|om53+EsT^>YtoxpNaNjcb%Fs}{u8^` zvQC8ybK|Hu~aPIF3i(Hr$*3-D0F zkJg@B74WBd-R34geCa-Pfo>JM&P|zGH`h}UGujKtN>$rTLTV=uS?g~up`vR65wNxJ zpX5EOXY}R3|9fpufKYz|V6+XK26fQ+>Y+vTu)#%$qjqR;Pe#C<`s=-_%9LJ_HQ& zhxc1xE=8omGvHB(tks@efB14$)T9vgK&67WjIdemvq#-c`uG4}Q{{xnTSKn2=6%6s z2bywD1j2~VYLqKkR5i%XzP*w5dgW*-YBGB>cLNi3b(J4Xg)kIn@pIsoI@J#ws`iL@ zGZd||RrzQ${~vPY4Hz7; z?>H8OW$!ju&h$Oh68?P}In%Bxx(JHK>@*~q4BV38M0n5CVwW8B6W)GG9pV@fTe5U&OFj=K!;YveI$R{#=F-mog+S#i?&h@WZf821X1!Du<5QY6A;zm6 zA>`YAxxY|c^v9v&HMTrNB~TtL7Y)f_sTgO_8sw+ykJzLD73j}*0mzw|4d+<4oRX)Z zV1MYpOz;3pX?HDJ>C%oK)!0LHF>18<@{2d3KW}8nGofJ&P%`%k@WBo?u>m}}*hc7un$XkBxWfDNt6j{XH@3K7q?Mu2c54g?(V{&xKSx2Dh&a~V3_&k*KgqWL zF;s0gLby6%=x3?-M@^l^Bv1@tzFP#+UCNkJoK({3!?Etv8rhJZJyPgsnC&_XNBWs+ z7xRK`K-M6}gd5>`7JL5(x)x$l9tS9Szrm4HhYxD!2`upgG_SdNNV#1%1%i#1Y!bpH zo{L^r3*y~N?ko;1EO076=tEsV!Zn4ix>9qJ#8MDSX$?E4j7DUk2b6E*@Y?xUPvZpR zAj-ItjTmg)K5Rbj5~U8R^s(FLFB8U-+5G~aXnHM2a9f;+b1{|jmFS0 zvSP-S4Mt~ZR3+V}za;)s*D|p|z4wq?pgnV{Ni-=F@GEzq&3+P)iKXG^+R1at^T!*p3#%VUEA94o7ZRzgqR^py8t3QUjZXdx22t%=i^zVWjCg{T+TfW zu7lpY;n8e_p9(%{fWP=G1A$p-c>8>J@Z8kXh8I3^Gcim53UwwxRM3vb1V~|07YEwK zIWKfdrmmP@5yyd4J+Ll*^Qi%hrNk?1D10R>K71sgF2}!n@B4MF`9y&;gxu>W1ZPi* zkmM!*f8$v{KM;hK!4n0-(|hy427U{%p0*i}L7*t}r2jk>VR=4f#~>Jki@u6~(wvVj z72VRw}cRP?r=T)YQ~y_%$={cPRptIzwb;B=*zslaOmr;d)Y&Hpw0Wx6x|i!94xl&TFUU7T-nei zFPZ6NI{NKdS2wLL1R~<|2%VAx{yrooPTiIXM}YQlgN$dL6+j$rQ`&3bTrrojN)o5N zUBiCf?Qg5Tf7{;n7uDR=^?Dlq-t>QOpk5Ev-Iwa`zx8@K{;x*xuH(vwUFuiO z?ccV+3R4$I%#hBc_zHkT5JVozH60$;pb5}IB!4Oum4IYIf6|$?t%yOH%0mVqmRJEu zz}F!I4au+E?g*yaOFj6N#=GM|)nY;8m>+7Yj4a=e+c}g>GMlR?52uTH*?iqxsbz)W zqS|EA!oTYsO}GaI6vQDw&ipFsC;_6)WIY=%Ub#nlQ=sG4JISS|qtGFzzP^GMS)jZ7 zUa;KpsEY0PkMGTJvya}bKtI9tEOI3n$4C(5jRpq+{Hj)1gdnby$)$#H=f?OVM}1AI zMuZw;I%qWMO9;v&=u_ShDz?qN$yJX5pXwy7g8x+~*E1{^;=)h!w2Y&F$MYK6Xuaww z`!m~zKZ8!Z7xOq)XUPw2L>NO$%?7aHPkQKcIe zMlG~GS9OOK_c2?IPYP(uk#||2;Vj5qN*?)`VHI6HNlx?BJ-f5l&DxitBax|-aus3; zV~et&c8zV6aCr!sMsrYt87H$@h_2pm2gx~bL-~v80qlyaA%89`;E*ydPFQGUTDH=f z`X`3!$4cMe>0xaE7_6Vv@0ki2wi&?5Hvw(lN0vQg?R4-_q zSyxU1OtN6>#`+>?u_o14BLv^L331F!6iFB5kZf3~L`FtMjTH3bOuVu_t2AceTZ8^j z_46WP<;cmUdsptodS~%1W3(=O(ojn_-*rc9h}^C*%)1a3bw`jIUjRMMNmt7be#6USU%*Di3q67s1~RwK{wb7Qnd zWqgJ(&J-F*vZVVzRbZp{{*9wG>%{-AEmCFCpsXpoaC;43&Shu=*`ngfWlC7h8Fs#Gt89)b2HoycA)Vl z7abmzh*MCi(Ai0U$bJ1Vt5Pz&lZ&HOST`M)jvV-v+?r5F;AGoXKe8y0RY~`ge-cUy ze(jd=p;7{IsYAba9IKWz&Ae1h9R4l?in2Hp(ndq|ACT-D=ln$cPyT*IBq2g^vulk) zVpbK`H^;-p(CX3&B`sYXpVsma7S)Uct}?qglRl(K2flI}!b&AX&tPvEE2n@u{N2Pp zCx)M0QF<02?6N%h$rCVEn|^{%1c9irdl+q9?Nc2HoFI}Mr%35&wwU1|;`!0X-A%$ z;9F~*U)w-ND6grOcFx#G(N5Ab=9m8o6%Pu1j7z&Zee)ldD{mBrZXzCg>s zf?i54*@F8kIF+YN zR;0o8H-K9l;2U!e%VHyu*y4<=o< zT$Uvp`yL%a8*-KEMDN}##}*h({W{>*!tef&y zAY>)W9ogq0*ze?PW>yTHeZf}ReF9WxW0Y70lbEG;pW(4-K>a|J9KxVk?HLvyv=bxz zf`%7K098IuEgsh|`B?#aNwY;0`vR(h%FGKWsqf;mj$2Pwin3g=l-(vx$<~NyACn zpKahw(B~9#KQ!xu1zmNP29)JSc*bw;J&)U50qRT+CC2WC%_|rCSz@wMLRzA z0FLcG#yZLeXXWbAjGR?v`QK|RV>=_UPZwSlLhRIycs8tZFfc-~W&2vFWQx*E34QnY zOXTPr-E?!IEc961*g6H?tdidrR?&l>XR9p&dj$|sGE%Pd*!GQ8oBMz=yyv|>YDpiFvBVyfD?LS<)lbDaKoNT0) z-_^Us0F1zzkD$wp`7QDol!P7;_=U4ZmKdSWhF$?6&{^^2NSD$RFpH@SR+6zsXKDia z8F)@O$f`S+%P3`zvqu7BojCZt2C`?W-=Mo?f5KkOZJsklE+b&3(vQ0;>kns`V%BNw zksilw+wI8EN_u%Wd2!Ir;xJP9NPMYxPR%sEPR6&5kS|z(8!XL<+D!Ts_0l7%R+q(e zK@Ig-!ng(`Xw?2+C!?@vGB=;2;t94y|7gO!M<gnPKNtA;$<_+v^ZZZ(QT{wt>({n-77m##PW17|hTeF^kDHb-#eMjaN;S z&o(-IZl4&;=o*Szt8J9~kYefIw-#~P5;&~MNTH(kBqhM+@{_A10o5hrw;W884d~92sC1MA3@Ij=09xI4@;yiUy0^I zO4kNji=F}}l5xTjRUn0e4l-9gs}2u%XRZAqo@5|OsYhlUT_}Oqtb^3<$ky}Y+uDd+ zO*zO@%aQ+Cl`H!iNYYDJkT4Yq985cRMWZTB1_HmHg1Qak)G_S9XQ+6mo#{@1=?3L5 zl(VJq!D62*XGZ*r;B$!jA?#`kz8aV%nDp(vwM(H<2!o06%juNgZP_TGoP!G(bPG-Q z9QvsuU-czJj;KFn;Qs-Aj2BqC!LO%4m~fVQKJZ$WBEpo=&*0=T+S47*7{iD_2Qqtd zUgYbDdoWo5YCx60*Ejt`ZVR+jgOWB~c5O3U@MxZHChvYahWmakc0eav&bVkFW9wSpXiyOq47f;xDjc7bm?1a^!tRh=;C;PvEJpN zW5N1KG2-RyfoY_SI>g0)a6fe;gH_PAG7GgSHPosjQgW`Jx_d#EOKrHJw zdIOW@3Sqs5duUUzp)ciR8o^2h)V`}@A=h%sB?RTNfUYZD`f$YtS)0Ddc$!W|wl}xlz?b`4 z26xHUl18VKdmxoOzD_GW!o8=YZppOwKuL8l`+|8`S)o<4z1-IVl?}^2yQVDh|3BM_ zrB`mUx*h#(BZ#U!ZQ5`!?dO89YI+akDJu+=oZfb9bJ48|3v%7+M`>KG9DfGNZj*jm zs%^w8Ao=3=4Z}OS7+kdeKUzeprVl6FP^H3$BE3FM@L$5hi`}Htn@Gv%>{qE-&XZ)h zD~263>R@=K$#^_g*pAKgx3W@Fbt!4;6?aJN5S+cAebaG&D4f#%D&kOOV6yy9!6s~q zjOb+7_z(_=r=Zcg^QPlC9Qa4j-~BH4=$houBFw0(NeGDeYw?@lXI=^x)B6}om|NNq zMwaV(J?5jY)R(@;#DXIpp7%US9&&9BU`;@qcMO0%!m zi;R3n)@IPW(RRnx+Tek9QL_MukGLudPP_u>*#=8NFc$4aEH5LD4 zK^+9YX$F#YD+D)~m0B9_na>g0iDh|7^b%c^c!oT`%uT)I*`oqpPUO3_5W$iiqm;rZ zXS;_aQGc&J%Fa8MWYX&)PV8}Zyll2|vRURZV2^_5S+#Q7sfUh5EPWLm0QnaVY)o(kFbdG(iaBFLs1< zgy%UjhObHF8MQ^P8YZg17crvL^DCmbUl8~W-ctuyaOJR2A0H<1k$uU=U(yX}lW#Zz zJc)f{%_GZ5cpJHD!K`MNDb2R==<)b|1jF684VydG;VOX#H> zyFYb7%l-2p2~2)0bc>!LWM-$Wdf7V ziTZG2%*jhEacK()C36k6{OqDAX{R3YqQBG09{!Zjkd!T$xv1)T9Z4~6o7qRgK+d!w zJpHfhbOW_vKGTTPS4ne{WgNMlkllgd{K`naLE547Es#pL4kMf^wM73+jzLJStOt7A z>J|tsQMn$!IoE-ojm(_xooydUAb$O2^!ChP!{Dm_Tm6vMBp{HSb!3<{LfNpaNo#Gx z8t%auRO33x^31ZUtT_2!Vo6=xZ|63_uSU+}qbsUxYUVESY6lvi5J8YfA3x}aO*KvCpzBieuY<#h zLKUKG|UIwsq zR==BDgdMD7ykDS*PoI^2qFTJ+%!uldy=sfq%j<4F34{`&aiW&=!LA-Smpk_%waP zaN6ckR|BDi>1+zDa7fw6ux7XRO*(oF$@+UkV*7+lha|3d>stzj6>`nT3F@MLzalTi zp9=NWoNWxg2eCiKXjv^b3q06T=BC1}FLq6(fOoQ?(vm7XWuvh~0Ktu_R;8B1kD%s! zTS9j|F>m}A$3`I5r>$c?V|T{zd^rdvbF45u$c`Gd1Rt!I_HBH?L{wHsImy_HIhu|F z3qNHkb6OP-AJKkwFC>>-G@OA;SV&s`W3Szu3Tg+=c9Zh!A;fk56!dJ^W{Rg%AdYk; zG|LJF(=P3cir4WC?d972WwwMAs%aCaHhl`eTElSZe-epW4hl2yUD!c0?FOLBFjPmr zCDWjwUT4esFR!w%iNK*IzigHkp3sgA=Xe+*REhKo;@1?|H_p6$1qdk(YU(E4cz);S z5RkwhWiw(BnF(laj*0R|1S4+K;S~H>qA@0RQf2oFKE_!U{{+wv4XQ#i0j3k~99EU0 z0^x%+p&K`?%!QJNDDG~5VqC#~O>)8xAQ{#p5&SdYNVqj3ci{^(uFdRywNwGKviKtZ z5-D8o(z%EGT2*wPQHEbyJLw%M&XWCx8zWa(7C91rd1~(kfeDbPdXD?l#1{Onnfd&m zVJ;MG##dreRY{ViTPIuGTOd+mjTinX!uf(sWLYB;aHVBdy!cJd zjEUHSDyuyiSy5XVw3v~fHBBhjcaxfJU*yH8=n^vjfeIoVl#O-EQ@4pcVf8UwyXtd4 z-&=9~gnH&^fy8hO_*L`&2q6tJ+1^kExcaAvO@g8SfB$zdQe;3hG&y6Pk~yn$zK9WN zKzVPa1U^Z2qpo8htNQS-=0UJ}v%Q3Q0O1WEI55Cc2$E$KHk8GhzOj(8%h&s=rv!*r zNm_9OpWq?gzR4hZ^fN14pz>oskppY4J#mPIP~+QDfcBBRV0j}m&F-wLfstem!L+vO zED@_H5>Q;cy#7xbBd@$0Dk?$`5R(*SP^DBqC}d>k1*sif+Qideo}P27X=Al;=W>FTh2EI1nuIKt;jMGyZsh_M(RSsL@c#M%?B&mT|% zbF@Gh4s6}p!5WkpUgoH{cDgJg{#|?2MS`(t+_;ve!D)_e7M9puV9PofEwGvKU)1%A zDnSjiBzQC80J=o$ZPQDY4tW=g6IES&VDP0|%41>&k|_rd)1%~R>BwymlU3=|VjpU@ zq<~$+C5zl83vdKHly}Dj!$Yu*!E!GG-lmuIYE*PsRbV@8y0-$9p0Zm$f?aH1K zt&IUzz$yzBuNOVG&g|w|MZ*}YdQ8i@_ANEHoE)14nub)@(rSGe2%I$hnFQO1+*?yd zAV>xsAdw}KR&&tCpvVGrji(X(Zr^aaIXnGxS&8iBuYkn2<^fw*dWa^aL9E$VcbOLC zk;BGX5*VS_M=MTsBkp(b;L~d%v}Cv1NiJgw(sb^fG|z(1hjOn}Kkpujc{w{$Z2?EJ zO>s3*B4QMUNYCjf{|M?p-F52{x4P_2=oCe=%PP-)AYZ*#X33^o`MYHI${+8tR=+sz ztRJ09cdt|_wgdFgA!ou`UqoWb>slo(4X!zj17bl((^BSaKgxmD5MPppa!VW$2NUI9 zh;+!9%6-YCIl*t=6>R$a(dubN#)FAcDV?M-z&?GYZss2OW2YUg0nSlKP>|qa^vS55sZqI$A>XND+dhot<#ocPQf3r5;;KE+Axf?K+oK zR7ZY|Q$9k}@_~*r!YrgabCJ@O4Hhs9F>XM1vowIBYErK{rt0IjhY)=0MymRllVG6y zRi}sv{>6Pm@i8wB{AZNS9?dLWoMI{CPQ~kurRqpdX3rbB@0fe$7^LKt{JNX$yCa`P z!H&+&^1%^1&l`Vscg5nHoLXAE=sM}r7TTbXa=UMZ*+D!!H++(UJoJxj)wlh-_l5c{ zdbtPkbS56Ne}sGja?HAfUe42<@q^#)TYFZ`>+h~4IV4)-b@X^pZO-6a?4O*gzIk8Y z)%zd54;y%;FsjToly1@RA86QdZPWlHYP;E04XfH+9CNEhTrk4m4nKS`7mIwwvSrf0 z#{$6i)r@HuCpS2#*x8Y;HyaLJjtw}I+`BO2gzlIdJoaP5>A;}=Qb=1ybS=*FZu#!D zsaEd5zz&acHnIG#K9fP3NZ#N;`cWp$QjUM#w#2YcxL<>&GbW-~o>x7H?aW56Myaa` z_`lr6dc>V6bSA#^v#YtZW0&VG7v)pML4&7SXc1PT4DBEqDOlGT^=7wS%@2(;1wELAR7?fDq)W|Uc7t6V8FkfLM! zaSbpPJqZ7QE^VfAO(&aUye41~;ILNo4?Yp{@iSnJDNOPPW~R$RkW|}ch>K|HPmV^j zj(-^ZBMo`=Ixo#_Nq*`6Nvjm6rBP@R0FHI=Y#*PLrGjY&z3mwAYNM^F$jEkj*4r!i zx4Yn;-!b45SQzxGWyU|=D_KJo#dp=qEW^Roe2}ud^~5Uum`v>5DjV)HQEaIRkSBD^ z^ApeBtl4`0Fk+Ov#*1DkB!K;wGrm?&lsk;HQPxmO7<6|3bdkSy;tKRJWUdI{;&BH- zx{~Iy{Zx6i$%B3@ndQjl*e;+XFRa*%a`m3Z^*0`ao#J5Sw*WX{yM-BWaos4@W1vM( z&$;xBzT^_fC_)2@-8@AE&fw(6|8ugiWcF%<-JmAO4`3EWOUoTytdn_bQBAq={0weR4Q=;!FsNA3dGtw|7OqIY^ z^~nbh8xf~*>7G|v{n-GKSR%$>ankAPRZ@-F_P8do{M%+KYke_)r72GIp`+b4<+non zG?V1)BMH32TRaBg&A*mrdV!W^CGfi7+|QUMRn#dwSK`J9 zh-rV$-a%=N~!$5G%^s90RJj zFr?9yyFAZ|Xsr$%Q3-bb#3OqB(G>kY8@Z(I2M(xW=}ocM9HXfO8aHIC-pNrV?-^1K zPMq9pDu-;E_JHAr_%La6z4az=IU+BW`{+=5Fj&~VV)L?pl&wTQws z3(V`Q(p^Cnrk8fd2ae&D!!a^|UXf_G3sE~(6o3DGWWcAAuC|WR=l@+}1USgqaBS(f z)-bhtall-BNoF0*UdV3*`c?355YmSwn2xry$XS)Kf(Yvwk>8OCTcCas&5riyT}ZGt z#RbOy7D}no3Xb}i9jSplW`6T z&XDNVmxWB-46Ya%A|z6qrviOfAeSJdtL@b}(@c(Ujra%_IaL~Co76>!L~R|a9HP#^ zLofwhr)df=-Ql^U+k+=%(WIpuvf4ZZ*E6buO`z1s!voS3(zq2BDTrg$X)Zn&P6luo zsGBAh9=N1^L|?p(fSp8<^FPVi6W5_wua_qB{Dnl8G)?ruaR) zn0xwT?NvPlBK7OkN@{7NwZAJt_d81VKTwN;v|kS+Q{fy?>iB5yS@vmU><4^2V)jvi zd=ae=;V=Nw8dn23OD9bH>{Nbg>nZ0!61pSWK_R~1UZ?ov<{<~@;5wYBe>MZTT8$=5VUSp;5%*F5r zziDzG!3FSzbkOdqi{PjL>{7uYNzb@yxvrhB-ReT7?q&;U91*LInheS@@5@s5uW~Hy zjXn^^*q&VscHkL6|2LZSMO6#xT>5=CngtvK2&q#A}5XjrK|2W#|-43nzPHLznZ(7E*6kaBk9sCJMOqe zh~n-k7S@waT+#4d|0(^xA^b~zgf2GtFhpwJ#4a&UT{o7FKp)h%97SUXRlfLdfWntnG* zCaAsgl|psIT!!|#C0!{VG{dYJ=KR+*tvkXtm>=Tlbp@MYjhwlMsPqvDNk;m#XY|>t zNsT5N#k-Wel_qzNeVXC0`Uj_<-@7lm&D<=xQf# zltd@1>ga_b@JUz!*ODSr{MmB`eg7whKfXvD@8$q|43*T)L`JYL` zRY~iAl&9^Xcq$2Qk^I>JI6RAvfX-GXM$^;jP1%V7TB+oMQ zKRd_>V%5FV+12MB$U05QL+Re*qC@d=vUHyEIMF2fh?&GOxvYhE!Kj5nX1Zg?qX5Sq z%2nnnF5KwlvM)v|q0OH(Y;apAW-=d9YI`)nYv-ReDc^fJ2dFElbNuc{U^@iSa2!O) ziq!CJ4BU)ZtKhhH*VOAzC8=cm_fn36Ak@Du3zyQ)()Vz3xuEINZZD~JDBII_d$feS z=9{yxpiJD6LpCEJ4xj0=d>R;2h0pl$i&_C${aP$8?$fx!V@%e<)K0+De34p?Q8J8G zA~j!@vYEZ**MjI8tG0A?;Y)r2%ll8fPH>-b8{AF_fjz|iFCGu|C#H6)QzWGrmOk-K zQD;PgOyOghQ;RFo#UUHQ2CTy+fdIm5y+>Moe7TXeY9BjvtDkTKwLkI9Std(R1reDv zZCcXTlO91QQ*_F;@H#lI3A2g(37&EjLY{!pn?S&OGMn|8k&C9 zB~V=#p&>>?4Tv9VSNe>;N8SRXn{$0JNeoWGq9OFknAuB?@}ZB`ozb{hL6J&Vxq0Ll zp~U0+0_C-z>XaCxk84HX&r!324_2ot&+h}`e4ZRwfIsHE(eoc?}eX7gj9})+=O0P%H{DsXIVo& z6%eH_l35huHZOs3TSPo{FY7PlM`x~bqc$VZZg5nOEQW-n5@?rAvd|rJK)X#X(w99r zL5-O#r>1a?!7tus;L}j{i>x> z_(nKUY~X15m}C}E2mJ$WxZ=^47ECTk{M3Y~`@|q$WqAA8w;#MxEMT3+GE;;8+0|~G zUoEr2mUzXQnMa!v=F(NV1vUnpnE919wl0iDmIIL&lpG5%c(zz&9q5jY z7?M@Rv#7l}MhZDm;jkMD8E)vYCKD))mowGcIL(w}}{W!D+oXKIK z_rPmJUVXd$8;i%+e));f!^IK!+@2E`!-_!spk7R7=PD1{`nk$GfJ<72_*kJO6c=6l zDasgNKKC@?m$Wd>fb#QTI04rS*lBK9F*nYj9iB(NATxPVPwd-}!BNi^n@?h0s@-d^5a$J|7FLXJJiA5Pu=v$5 z2aWM2O;S&}EcW!$BB;-lEUoDr9o)U7Yt`|~e;n;<3$FR1<>ANwn4@R$*SWxBN_C44skDQgCbQ;OxF7Cdo-4lLLXuJw{BjutRx){e$>ie=O+ zP_9I=j_)(HQlrEo7XLqhECz=nic@A*nh@;`QJ5lq3sj7HEuoy;hKrv(jY4w5>tw-5 zj`WZ==;PL#mUwcN!WY6-%v)oPXt6{=Zo=0l_K$W;N76li45PlSq$fCh(=x>VQ3@HI z{99x@nUd*0e;D$2&oY(?s}kDT@m#)12LDF1oKF$VTftep(p{M^>sf%&7WwMw}4_ zuGef5_ydl?)xYQF#-WGxxe@b$<;f94OEnq+$drILgA5!|EmE4Z%B=_>`&Nk5k}^jb1lWsLu=1ay(jwUEWs>-u)nt#{%mS5`hgFHX(YJg{9O7Ql zR@#uc3oip)a@I#|ts^+PDpGW)7=O)%AKF0cS*FX1!iGLQXQC{D%l9fYH$(90 z3}K@MFkLbX6K!?RSWC9To5!kzxYjbvpz#g+^WQ&TRpDH`tb{{9=8k=O(zaV#E;*m>WxSXd+}QuGQgJ8duZ)wAC~DglNGicVX`E=~bX25@mo zW6}hx1ncy((Tr;fpFVrd^**e+)&6MkL4#by>&rSHbSnLgvK5$g9u7wU!_@%wDZ+Z9 zy0^2Evmue3uudixGhiQ#(9dHh z4etz8rcCUAz!AetLimk9Idcrb16(A`PJ*%h>c@y~RG>hrYd!x^EwaPvstzfFCI`#X zapn25qRxg3D@tD>2Qcm;EoKm5Dln#mR(4|#S(FE26hl;Z>g95E(0B`xgSl0{%&t3V zAA^XxHG`?g`g-D%*&=d=Vd#A_{m&ick)U+@Np9!=3m!^?hTJ8SdS8LHpe_%;v!2(u zAE*}v{&v@o{G3Wx*tt4rLz=)|1b

NaMSi4=yn>U%|G`O^oVEt=#idz9jdU8sIZE`axg zmA??JTA;a^Nw2}Sjs`PN9?+NO7Ce>yMhOsbQXgt}&3`$jm+%zG^gVet?HlJ!U%T((xzVg{isMPnezze#14zmj19N9Hj3>SIoPXE4yD}IABHNN3q=qNRK;+6 zV;K~8&EB7#cyQyv136`L4};MRAtO6Jk>>W?J((!upM^=FgF+0dxrh6Z8AHMbBB-~a zDZLR|ElKmte+rdmCL0R`Z^*=dxdDUSu_cjC>9qNc5>da@bQqlmXV}JMdYs$ihgkqH zxEIYMzy8(Tu|NLt+Q)YVvdJ5x4tCY-%Jc4kQ-wDnQ_1y9ifSuUa{DyNqg zE;?T2q8Soo4536ONiopwt2e{l-L$OG-~#?mr_Mx^Rf3M&gLx)m5;)LwAwOvK*6L3V zfL0}1SeD%uDry(6UR{0j&9`sfJbLrvH}DdD_U8MazPtM2=XXcvZ{NRt@%-}gO)g$6 zZXBLJO5}%60Dw_l>oFJ{LNS#RNdPuo%O>N&6&qw$OMX|1^U(;Toeisq1qj_Cj|Brz zXeh3qot~UsT~_L)3wLJk-@iXKx^#Ey#`x;Y^!+7J?a`@DlxZMxR3j2-k(TK*kH*mU0t?JhTiTKz@AkX1SnUI^J^=fBu>Q8efk&y@)q32kUl^#oZ?D6|>SDEpUvxwO!kaO&qK1$XBp z(97bx!USpaXF&L55vzT;aTSj(>LuctRZK7bi%=8VO8Q%lk3YUW`Q?gAt`uk%rC#TM z{_b`)SZEA5BsB5o=~3Q@l&8{ac~T4X5o5VbCRKtFa3|KIL-`mg&-gV`3o`Q2zdxAz zr(cha2`P;fnYNI|ifLK07|`(T%Tp^3n@r3LRs9AmROwepYr6YnXW+(+R1{|Vsi=)v zuYv!zn5E0m4&8V%s7Ka;>zM96Y-PG}KM_wic85a_6v0H0d9<6Xt;6oDQPv0rzUjH( z5ybp2KYX})dGhG^$-B4j;0yrWs$aNOkDk1K4#BFg-@bjly?4}k+&ihHw%%mD`9{7C z@oZW}M*#tEg?tEP7=#Kkg!ut1(W07JmDOJ~K{ek)IO%{5@%jMBZ&lfxrU0fwmZzM2 znB{#nF@BvlxvakR`4VholetdTx~Q=ET`ITPP58V-oO7rUl_;7Clli^lCKIW%zCfvY z`1ELdXJ>C%&`qJF(`iCE%eDKsSZA~}>*X|#2T&bYDVP}Ma>!N;YO^Yrg++beuOdtB z!_HdL!XH_b20}D#TwIYypt6a=e+I=#d!$n^=uCop(CSVkl?rRbV?9Y21K~(FE~W%T zdWc!iz`S%q;|p$`A8kaH?#h1a!JR3+#gYoRohnbkDcyP^C*wcfy|sRE4yc zXl|vYh*||bNw@vZwZDCQQ)X-CCT>fltGAPsX?0{yW~pcX{C8oeV-=D)-iVR+yK5o| z7~c?sM5X~uR}8@cv{qFLbml@nT$KT%9jZncX_^-=E=!m1yO%Li~KtF|9))izof66GLuhDX=hsa~%-SntPTrChvIuD07?s%j5AtkoE! zD&^*SuMPlYHedr1RI@_hH4x_&H)8b8dckh-#*@ppufO^3!<*NyFV3!Bfm{6t z=mCEJ6HEgj{{Q;w!`0O*7*{=k1w(WDZ0ER}36-jl_%YbQp=~pQnvb!{7bJ++pD+94 zr6dkxe~x3yeiyJS=rBakjlPf>1T+zwK}R+R0j*OvwX`rhHaWYXwNr^S9tSU9J7!i& z_)abK`wTF&%{p}sc*Fu#l&pjztwyuT=GbH|*gkuEy1sLC!q9HL&Y=~I#R8~y$%f8M znD9cW*2b!<&x27#SfMhQKmFB5E0A(P3?^r38|*&Y-6ES|dybpG5m+r+zDb0@^QRWh+?bT{ zM$G!VU)&wnK}juAJa8>3e+kSYq7gI80$EN&aOq$YoLXqeCdb^#@?gCr{LOubZiO%5 zE$S^X(x?K2CDB=f-bx@&r8Q7TaJy}0#=Q)=IFY^B-41%VWV={FtPnZC>m@(O<{SPr zYi8_od^B4MPYY)5&)xoXW?pABb8&}4v}iH0&E0LxN(LnQfk$9>6}2Lf3BLUTad_F9 zM%fT6Hkxgd%d4WvuY^&N!F28V-~U6bkc-WFv{YuxX_f;+qXSa%VZ=yztc6%eCovm- zJ9cLV^V#Hgmgwb)+g7Gx2SQ1iS{5RPC<&w9G(@j~c7xZ~a^u_6|pCkWdcpx?0=Uo4(Sb1})1ZH&M0#h>xh?4n?WXjECk z?PKeaY(5B(433i#u3WiowDpF2!xE&T(beT!62&xx_7rw!#P3F;rS06bLhX%^T$@dB z$+*{tjY{r|gYH%$0nn=8+C!m@B*;}PHZ(?@^2b#umM zr&iSAfLt14+(Ij=_A^d=l~3NgX(2EGGpW>{>zK{xlFK@6GWxuTdRc-shLYP;+DvNh zKmYJ=H&^(O@#gU2(Qc(si(9Quw@77IHPP&Bfk(4e{e=;mSvwylBizpOr)8?zU)$bFB>T;S z-DWousqP(Y@3m}Nqt@SR6-~=aw}f$*saP%6fKj~Oc{=D1qVg@Ha)8@n7fCf(n2`B*u7!PU( z8kYqUY9;=s|6a&83RNy0FGS15R5@0xtZ&q5GF8na5@di-b1pZ-_%XW(MZHPfW;JMx zY7H7R$GiRYcG@>}V?hmM>_sdZ@(uxo|Zd*W7{Nb=@MC+P{*pt+q1(v6+=Avf4=u zVoH(G$b>>v*C=Cp`8a8_kX*~8uvwx8wFB^*{*;VXBM1;y^Q}Uq5g>!nHUolKI+>SK zzT@@UlC`q|Et-jYUoLBPd_Fig*f`+QHwdENELJkWmrs<_=>#4vL-l3EGpxj1xQ(CN zAN1EN;>lH*0Y%_?Lg(F5j9B8`zBw~KzW9Ir`zOEu(`R2!t7wfoO;)OUy+|My&B5IS zle%?$g`5hvpyH+rcc~zqq+>pi5eE@AEbBZ!X)1I}{J!blugo*!$`y%Gs{s!jlP;q& zp;oP%m_RA3%n=Q<92Rz1cnYuy%$pGT!tcKF7|dwyJdh+fm3mHUSJ91r1d8VMcsRxc z0rpP=9dB6X@);S_@EAH=L&Z$k`~19=%B7R*(M+#HBX|8V*G{OhmxFMs;^ z^34Yrx?a71d-eF))5C`cr9?BE>gDnXmBUTtB$xL3$UrtmfynvK7AKx>wR#%?oj#hX z=9y9{1OB3&O&Ep7{LOg!sE)-*gUo6G79Z)epjsb2v*Pw9$~21E=RJtpBo@j80mJH~ z)k_zfu^6FR2|+Oh+<}?S@ZjPEgxvw`@b#;!qqU=MZ)Z5D1S}{O_lA&>@dseybGw5n z1VSPP2cB-n#aeJo@%dWbGA0(o1)nT7b5WgKZOVmHwAbQ+)mka16h=9mQ7A2zoW`VG zQ6;z-6+@(-{KsmH76=6@sm;pNBkj?L4Ck_n!8QTBQuyiR!`8um#Ecl@Ru00a%V6aj20{kZ)IDm z_3DQY<3Qd-CiPPuxB8}N>Aq-HWgizcf{1?A1_N)a%diZ<47?JtDimdU<&MOQ%JnmX zM3o%5#dniYHiQh?wXDem0&8cyo+3#d%i@rdPbUFEnO@5~i@88lCkiJEK4zc~v$9kz z$+2v9z0vPBqvh~s_vOVNe4?X%CK9vi6>L7?1!baJ9 zki``Y*#o#%sY40EWl&8xy?D#mE2MB5bi zR_6Iqn+?OFR3NV1yQVXk6mo-HVgKq&z)+za6v67{a;MW9&^qem;Ni=Y!7fLJ zhsO^$_B-)|^=vKYHvt6F>j$R9=btU6kzw2**0F&Vom5@T$X}Q>G3rEu1efT!i zYsD}IpVG|AR*keQ+ zL7~j9iUzdI;ls7f?BdL_@UP=$O)G{u9jGtrG-o81xMnd@vm|2$j-*A4G94D4Q-rK~ zBxIA^Uz*dKEuwMRoQ=}!oNl)V(=#r)DJ1&}H7p9G(|`EyV=@_P(V_ta@|CKv$J%_j zVKm_=be1S#%%$?Gq2})kLExdprPMIpT=`=3rcLg!9331#X+>O-b@jE6|K-Nw^#}G8 zI&W03$}~Vl4R&fB|EdVFnHwB#1~;W~+*39?^jcTE4sm*25^JU z=AiA_xYdmU(WKQ67dBeyhXr8ZYD0`O%xZMCgNTWSV}I5i&vR){uI~4j_x3lTn;+=M z3q=g-V!iFPTFmDz+w4&v+b>J;dcE0f6~TE^+}}SrX&$|}eD?a?H!q)meRX;D;q5oy zKo0;AfZu-i{dYgSIJtQH{uB%^j~=~z2IZG<2!2NbnBE=G+hxKSftck^FC8N=ERxAo z3W-#sk#M^la1R9VDS>-Kso~nNl&G|e$rc+-x;1j8&T4`YlG>FSX3UTk!feLzFK-KM z5{qth+#vbn?di~Q{6g91K9nJETRZ)t&u#wPBQ-G%=pb& zsZnD!*BF8br29?3b|p}ZdNB1e{A~XAYk_(d1tUi!;el8dLRmFvDXZPwUCV^D(y7n> z@)^D>@Y+L>WX8|eqAOCV$~C){$9vJjM#UmAnN=bOmiBo8*o!MAm`yEJsl`G|GT^HQ z>|}DzK;VU}!%rZ7;jJl$)P8$L@C&FHfN&ynB+%VwjczU;Q_0MtEIVU>B^PS(`mFi2 z5aD*>8p+D1zr7<-_~Q|V%Wyf|QIkpBlb=FcXhzv|FUSN-JieEL-c5#$2b4rWm0(gH z22FYImKSC@N(jg8vt zvyDSflY`7$3~^(SR0(-qm?mxll$cQ6_Gk*_YC2r&mns1wQ(%0_Y-YV%3r6Cm!df96 zOy$^A#N$kJdJUYHFuMoyyA9C7uprs=sz@nup(erY&q4k;eS1z{p_u)RA(Tg+JU-Zl zb9FG=5Q0k(g2g@2&0nt3Ivy^abB0nWpiL& zf(vit+J!Q}Q4J>HqWa$aBnzDzM|nMhyZqtIg9+b2?*cTYfl38!UN}@w3-9Yf;s>8y z_uA!((Q8W3a5J`#?=M4lGm(s&U8cEP2DR45#H;RH*(A0@XBnb}HB@H`LB|Cd6#^~y zvw5dgjnc_FX?8Z+`HUg?`0apLlrIDb!Ngz3{w^gOjRhEEJ=`rP3CR1B*`mH$bhD8a zcLsQcg;+Qi^ahe~z-&_?3!LXo!vrcGU!&j~ET(d^)5g>sZFWFt18DK7W}p(4+Z|R9^lR1mIa?;;i=+xVt2@d9 zhT9(($h=Y-n9HGhj!_4yhy8%J2}e#`3-lZ?{sls5KNSsh+IbFuaphF8wzjzurpxsN z?qS?_g-)Ui)mwp}&?vO3?VLZ`Xhk46$XIiSXOF7Q?G$KwT=dcTU~~K8mzK)=%d4+1 z-@khM_S^4&1Qy`8KS31W=XZPCm+!7#pSSyOpYJ~EwMnADHS$~l1!#2$%ENBlX;9mv zIgc3@WwA(#3q^C$7#B-Hey@=16*%5~Yak9~g(Setir#FkkqxBbR0;fN-MCb3Or!$3 zk!6|2s#?;)LVIM{qMkJu{qgnvhtJNQJv=3^%~sEq%&+z9c)IK*A~L>tRjs;TB%%oa{^Go5#^^%b32QpmRNVlv1>qO{>C=gYWr>dx zD^*ll>T|f7HYVrO-H?R};9RVvTWb~c#^2@85;wxezgatJ8QsP0D(*=(c9YgG=O%*% z)5^^o6b5D_%%4gO8<2hjRhln)Fz+AcZvC~dh z-CBj!qOLrq1kgpX=Yf2C($71Vh1$`3BmeS=fEKML%AG##T%FJ=c-JO*3g@h=&eRY) z*mcM`bhjHNCFoWV@O>(|X#BH@v3p;Ne}D7lU#IS_-2d$J+1WV-U;rlhj#OuBt672s zU@?WL>@-E^YVlOvYV`*=+UX4VB_p0@g)6u1D^x7E#ro73CO3x~Ry_k3Ioc73Z?vPO z7*WYmcqQ&ic~g50SFL8C4e1tB1?)UiNK@tQjjgpzx>_%}jTQ|RZq$+%J8cb=>aCo= z7|7QG2-^&VmXKmQ1GtJCuj z@2|eTI)C#DFu)gaB-c*55SUhwl!BW+=cqYwaRKo8K(jf|>=gnZkWx?a& zRZu+!*dk`NTDUq&RSPjIX}5V1gF$1GISD|;>O;^*K||1;lUhiXfhTch!;#S7==kj7 ztktWfvcrvVH0C5TwN}6Ccjec5o14X0nv$9cy$OWWXd-O4>Vt&e0ODQgs!X@=H}DPk z+ii?VgC$HUGta zTws9%EO3B5dv+R_#hg8J&@caJW@JWs@3Xuw zvgo}RMN*WZ=IcJvHwkEoR{nsY!Qo{oTR-UTsvImIFouA+1)Ps;upZ zwL4|3ox)JuJ$YIg8m1;sYC$?53Q8jhzV;a}I4au%fl*A=_sUtuZja^>I>QpZb*TOz zj+jRu<_cxnoofv0A-x;RL|qnzY1R^T^>+rl_cl5=%D7)8pPl?-dC4!5P1Gr$9GhI3 z_d!-T<#oYIpe9IMz^1dB(6uedHAh4~I%mNZ-&mqV!Fln-r1lF4kbU&Oey4Cc0va?P zbXXPmUawomn>D7jj;C;18kK-f@AQ&kVB7g3SW*_{gVM0R+5||EBV^UV?N4k(pirOU zeJk>Ch)Sj0(E5bXm>BoRVp%K%Ey7)rSuzq}S`QmTA`c7x-p27}wnV3=Tvok+Qe|51 z1_2sud1_mSO9Ehj<8-F7 zb+jR{u|%np_cHE46b>X=%!|WcL^cN`Bgz1cG;hYEu*c@-$L4T?@WCJ+rim`l-kB{W zs&LRB9NxWgt&nP@5}CC$!jWQg^GIrnT4$UuzT6wFGt(xTGU`w+Y^U9eJSH301Ku1~ zrx+11#Pfj=c(wd>ezOcuGK@rpFy>tJb;@aG!o`Mxt3g|xj-o#9O5|5tBC9|o=eQ%h z^Ze-klU*_;u_lAVP_~?(yy#ym1kNpzp#TvJB;2MjlhAr|v3$Yn(1ArW7uFe_I=xZq z?>*kh_L>%^rcEe4Wcx9vFL#EOouQ;x<7up%$Ob?C{hy|ThL8V4YnEM!bUO7~={kKG zSWngUqRwWsj`nkdZN$N@<~Wk9WjO)0xRnkYgQG&VTB8HbX@z&REf&%`cW7C;=+EMI zw_vn3H>f3}LMgj)Ql^+mIB@;UWw#IG!g!-KU}@Xfw9g0B?0m+k`09%j)~j~3?60MQ zX^+C+*b$ixsNNcvXFvP&ldo5n9WhIwLRw*JL}hCrrwY0;p)jl_H^DAZNTC$Vgk-9jmjXtArCP#pJPH%)%H}W_2e2RO)1m!GJ8%jV zl3)~Qj)JLrZNSCztwY}Diwi50wYXG_#Io&lud|oxmY`yGqui>Cz)*@O zv+KLf!R;5nQq{hF`}+Nx*KnEo;fGgm;hp;9j~{+~2mkuu)~yG?R(tyL(Szq{e-uY@ zy#eTR5`YM!07hI|rOApw)M^lY8vgo!pG!ke?qGLVibfF{HUTUMSRx#N&n2F4V`MI= z7mDFfp^SuOr)SlfJZ0CaRhr3}WJC^tx^U26+T}9Cd-owog!og}t_{$1cl%c^d?zLh z*L&-CZ+3GK78VP>P=pG*oNE8#__?uVwb`C4=EPhKrJcrkf(ROx0%;O3gsF7Ot+Y>{ z(`8fLj>jC&iJ1UGV@}qnwoZali)SkRmTXz(ORYbwZVz0v3!_YCU07~M@LJh1KWmC5 zmW4(Ue4AeAhnx+L+Q4U+jPAHDo4o!Uqng!Xo43UTzB{P7p*@{hZ*K1S%6n~zMgyNZ z>aD#2(I5DN3(AjvJGL|*G@E02r{tVjIJ;yUjry>E{`2{X^1X_vy0BnMR7!L{gOfl} zBtiFqBm-2bKrJoVd>I9`7K4K;3SLtMHoIE9@|Qr2E9{D1yG%7UIX7N-+-_P?xrwDE+%Y{ai{x6(&U!)T7e~q8|M?U68Re=79$82w zf^g$0Wd$f4rShQBZLUfA)bLp3V8fl;Kp>rQBiAd&0{#89gKuF!!ZYi1ORx|t9$Q1{QSd{KP21@J)0V>a4jbezbLev0MOt!Al|P$(BJ16I?GCPNx~#Hw0R z1Nm?6uj2-dbk??DB$@rmHzZ%tGO-FcRVQB4wkgLJ_+#r*wqeMjxaBeGaD6OS_4v&8~rNmff7T zF}wpz5n;nZNGK3m12{{_RNN0JYJ)QjyLmc5dLwiI#*Mfuq5N8A^tVcxeYd_))Ljbb zX5`w7j<~y1C18qEf;w!ny_4Ch?={$A4d`uqR(-R-hGHQimx43EXD4Q6>^2~{+Y!X0 zkHS(&=2Q8s7tSx>J4NT`i%O{PR5P_w3T1E@tYGPA*8)*iZBnT;#@#lD!8UnvWo5;m z^34{p@K;}+{A+0wxneuNqE{{h!U9AgN-%RFM6A;8H~XAc<~n-<44P*?hYONzNv0_# z{^Roe#S068d?{gIkn^TulQN$A?MJXGocH-fR0k|CsKRB+p!ZzwNLdulb!e@Z>u-|9 z-t}ImiI7Zj3rka5H+Q#y`a~y+tzMdFb%*&Nn}oRUuYe}P7Xhsrl|pm%YIn0im0G!a zd-o7dUye)+130sI2Xpgu)Dac)JipN_mTDz;+>5pHVM5B%VHYVx8jV6IsMGtk9<*KG zrqR~nPHp$vlbZ*}j~_gJ1KXBuGGI z#|?+Xu&c?I>cxUUYR_KPL2(?jgklI9kK5yv-=aHV4gj~s z+UUmJCogZ^e02Zj@q>G}OSIZf#00c3xMqTAbWx10=yF^%u8CxDSo1ajq9=Cu>M*Qu z%`4sV8M%IPISS(IdO8%WVQeQvud=mT1~)92DJhRwu3VZn!H7s7Zv^z-c%s~|CydUS z%j47PITKQa2g)Bv!hr_Zx@XS+_0!p9*>tFq3~LrIj{o7G{sgfiWx}kOi@5Z%2?yTx zLHJ_3!8I~EBSPlumRtkQI~JX_pA5jGD4z|0io+#8=k!^E^9%p-Uq53wuiWL!AHQ1F z%sCh4teI@Pl*|@VQ4YSCxsY=D>Q}b8Pygl9U`S^RQqyJ+$^h79hZp0EV^@MVXy@Fr zTDffTk>Oz2r)SYdmc@}$BsR<}oSQzsaQdvxTqRp#yzKb0Q5OF5NzIs312*ul zuR2-A@A&+G{+8F zwzkWo{hby_`a*GY8nPAT>>3$m^XY0nAF&~D(qq!qx`1RGWwyJ1`(S-z|Mo_}i-vV} zN1+I-M*>pArI1Hj-@bKlXTP;PC!5mZKw@t0uU1RVQnlrwm|g{b`w4(_B5ZLuyne8` z-8;H>c<0%xSKqyQ3!nQRe}ekzyYD~z`kcZ)AKqQtfAZq?trt&TJ$wG@#nJPJ!Yp6r z#a5?TOfxJdWOEY0Ln{R)MEGJLRw?pK0*h3f9*yUatKXpudcu1dZ>;TedPM{BRS!A~0Px5}B)$Ru<3x`Jt z(8|PJJ={3%vIfWgS)EcURAFN3*;1KCMPd8#Y{ZY-P&DU$Lmt2Uas9-twXO@?p=TV_;IT`SZi)xyK(&N`Q7KQ zfUN!w3IK3s{Q;iT4a;0(x<6Z}4LC@ zoeR@K#O=fY>JHr3aRdFaJt70(X8Tc&TW^5>TQhE$pYmn``bk%Tv#77=u>=_yTb?;N z{;!`eoEu*<`n?db`|95>&LRUy1Um^Ja4aX_43l;Gk=7bytQ%;WwqE_?A5Q-5vn$3J zPQsxrC-Ip)%A|@uv-+z3e}44$fA{x)a;7M`WpP}`)g_z;ZB|9d3oH}{1^+jKK${Q-+0%p~Fo2)!lePup zP8gEHjLdPx8Ctn?mez*a)eV04$a~?m{_Hf^!#28FwcCGQrVFn^hy9EBd=a?I35Ty5 z0$4$3H3L>DcWFDFC=*zvRcc<}ItFK4?O;@GZC)#eIS`umYEBXc_nEK@36xejQAqfS zOa}PjHAqdSa+F)%bX*GL=fUS}vVHP$TUN5Um^F9e`c!g~DKD4Pb`PQ%s zb{S8$3FM$UO?h0Q7z-9#5IXA7-EwEWoiFqUd-v|YczpZjlh^QCeFyK<*DzB3`Q3Lv zy?y@brysw6`@@^}KfHVX@Y@&nwil85z3g`-lJ>VgjwAXHtDYcqt$?ik}0^~M% z!%H*Cx)8IV>0DldGkv$ev$HQk5hHaC;QxP~wgYq&{l6LxHNx}k4))ZZ=9VUjs>$sG3QL(~6o zKGG^KtSIITD+6ybVTM*Nx7%!`Fbm3zB7WuM{8wjZ7pAXHoKXA9p!2AdxC9&|?N=sG zEd1ub{BQr~XVWv6?2P=(q_)6?V>RCHVbb-&uw4l0Jxga#{^5W8fveaHvk5U6uu!1=Q-sSj()> z`mY`|8Y_4DaplKj%7|Ahv*n44Uuow4D3d5vTrm}nE(V#5TN|X?d1II;3|hHFy9BVi zPElIl+U@V}?CtGBA>p9eKd#_g`xuy%%P?8*4QO6SV^MG1?5meZwvo?p2Rk{T-7C~n z3`L3H>~7sY46LZqK}TBRFbmu1mBk(IiixRF@KvUoqeAOw8$5fkF!Vq|L}>5r)Qt$h z7HH^_q%k4pO?Sk@!yMPD?OwnB^vQ$AFQ0$+_WKvlzI**0^jF`!yz}hM^XG3My87*{ z7eBmzeDD3s>tgWPv%633-ChM5M!x=QD7Bwukm|LATaW;fYV9f!g(Y<|UCibCHMn3F z%jrDSI&)zv1!`WFDHf{fC}@Q25i|}vrX&&a%_;ng3V#R$0d_oY)_as!m3{_ECbPvH ze9-eE2-T~lR)>g7ySulZKD-P6Y^0G37d=d1#ZIGD;9_8fRON2FnC40t;_{eWVZS>G zTj-crsU0OR$HI2)j2G-f`YD4NN(=plGh~tcQ%f2)4WyNj!Gn=e^AzIo#uT$$_s(&H zXWTO;mWr5XCj9UMUX&>pEX|-qmdE{J&(!SH zmD#hUW=hCA5R(2{dvqDUKDC^gNq>%UsEdz-fFwMNC1%xE(MU|#EU%qS!Vw1*wOLL>&?!fSg)2F z2S@$-peWwi-RuctfK_*ExYD1CYQia`im2EbfLJqL)tHb(e zv%J}p8Bn8NcQ-fIkG8iqM#oQ{-?|ORf4KjD|HHdCKYst+?W1ciA8tLm^$5soH}5@qeCzm! zA70!U91hmNj&vPVEg1?ah~*5~F4af7hc`AG*N(T55a?xB>td?f>JLZj>#1T5@Gk&h zHfk+sGJ(XbVwFYGiD)7O+D(#!f2aOSM?MaDQ=w@IN zpnn=nSXnySes<^f{o_=`W3qWHa7TB@@J7*3ONssvnmXwsX>ow}E$F~9f&`dcBDoVY zI+vk*QObtho&b#n2>A3;44sFoZaD{kwHWQPU0qSwU8<9(2tJ1-EN-i7Mj3LhR21Xi{8`KN(o`xM zNsu_|@Qw!YVtDr4`5Ch(qPRGA_VlNJJ&ja>457WUqCfxD*BZhficbFJ^Ybgj*jWWQ z4MTAq%P1^-A;kc%x?rE0_-c9i-xeU~6Ui~WUk8r%AV_1(D-$6aw-dq7=jF+a=4eD< zCY9TARXGcGZ7yaQzo-st#?&6N*~?iZ8XI-;!m3cNHJ1MJw=c&gCT1qUYNndi2jj^j zh(8z#xYO-&yVYZ}Ix-pz)DHJI1_$+g7RjxR($zt=HQa5~*K*0~`c6q)zb8fQ?k+2V z>AmGCgLbbU4Wjw>>TnncHMgp~)UUF@>#A*)K>%IbKHNFJ-AXr{b7~6~j)860?KVI; zS*4x#MGYZ91Bm&^Ut&5aUS?FgRY+G@K7;N-^PZX)Rk=PgD_>bEQXgPS+L z{qD)57q0>Q^9Fi<5UhIr@@V_p+x45z9|FSa)yo^#Zr*zP;pO4#_PwW%wmVIDZ{tZ8 zw369wr&>O|d;INwsn~+?f~m=2lt5+` zM!o9PK$@Cy)A4AhM2aJrTvhWawpep{QUWEP;8uq@Z?^Gk(wNNhSxB)WwlIZ~#SFb& zO!q~oWuvB;Hg&MWAzo)dX9^jO=YRj@MdY|Xb0!)>{5rEI(1;k^MC8)g`OA|=LWQOY zu~=yiI$k8Dol(dP5vAtWBS3*s0Aw`L*3Vsz=e;Bane#1Qg00ArVYSOdGMLfyP#d1J~gH?V&>%um1|~VF<=3iV7?bu7**zgP#%D_izaEcJ1}n5 zau|5>VswW|Z|+Ocy}WK_k!_`{j)+xnjj1l_?0&BTg(Oa3>f&5XW2_hw?peTRCzoX9 zRyWTy%25jP9B3~ah8~u8PP8Snsb98*CDk|x+)M~D^r1B=X zDX-laNaeDalQKblv{t$E?XyP`lQ9K|S+mou^l&kE$m3Ig@d>EkQ%q`@7Y4OhP~!xO zGFWRN0K2&ZV|xZ=HlR;g9f_{6+mEYd66;i2h-~!%oJOC&dj8}UgjMf7c=YDypI$!! z_0R5&?d#8f`2L6YkFMW+`}3XM+rR}J<~RlhW>AoY9TE-AtsK;y-rj2Ap%|IxC|=An zu`pVMQ=t&XE4g}(1>32YVYztF9rxJ11Vj3TW(g`+u(K-+56UF?J>@<(-1=&{l-&{z z^Ux!NOU;tj@1)DEjh+4B!{^WF1&;{E=22S21%J%AFfnTkP!%{l#BxG3Q_ee#Bnv8I~0~?S*TXIVpEZ}B>(D@ ztN;Ed^~K-0v&B-5g4#1+y%NTgYUlY=GBjvs$hEf6TTeuTRVnFSF^04=Uri%6l8VLx zikZo&d2RG)z0fYCdrT^f=N(GI6%ykflh0)en-Zki8AS~ilnVMnIfrTKyv#atVQyy1 z=JbVhYCs<+5jYnCQYw!5(V9EC#*+xNJ{@jsbyxeN z)n1q>W&1t29$UeND0=+GZF6KIkH3e4zQy9$@CY;hIXKB;_tn71O-_M=Bnw@X+h z(cJaPPoG^-sI*|{S~8qJb=A&LVQ^bV;*?+lD?6IWQT||tY~>=H*zCd(JmqqG(Dl0A zR+U0%+GMmT=asn|51_g7^!bCkFTqar^gYm3-aLQz^4`YgJJ6Dg+$OkdDr!7`-^nC9BG^+GsF!q4;Z{OIc zap_L?`sPSzl#7@r>9Q@%OsYuZX{%jL?sTMFO2ccRK1Yb`@@&)JwTyT8)2t}z*sM^}gGZPc?@Y&ytF|>~#sY1ZC*64Gl z^KRuO(>Iz}qqnhf{T3M|G-C#{ovk?4rW0SugZudx9#YM$ESk=FW|Ob4BK&*6@qY zz@1$J$704LLqV^!$>fRAGW(7j^ZnK z@+{yWyUo&mJ4F>Y)`z2J%0=<@a)ruu*C3@_-@ShA_IiPis7Mk7Hyl)IDNLWLF_4#t(tZ?{JbB!y2`9{c7e@^rJ$U)( z&iyCvpjY+Xdtj{m@aBhK-W}ih>8H1E?>>G1pFcl8>UAExdUV|5OW9-`i^-u5Nks8* zSR5WbyuT_H*Vk}ZS0YRq$_QIUiDf&LPPJqYBogUNAuD1^kJXk4<2WGIT{*>JLg#*(?jm zxZ7c{sLnX0Rj7K1&L|kPkx(Y)4D&LwyRm-E#X}CYW`0gbHKlTahEZ!SV6-^de6yr= z-^`acGYIUb5tc6C$_btCn@cmMnX7)UCce6s8J6c6l;+*?u}i^9%<3_^&1lI8Bg3dE z<(#}Ut$`3DyaZWSFhq&YY}o=#foy9%QLC16>^fru$`A?D0N>)LV@L?lT5g-ATwWUu z8cnI)&ktZRX^%ur&IOGT!qIN8DIQ!2ViZ30`I&`TS4o_mB#>Gz?hRPg?!TP){BLsw zrFBldUIGmsnTRjDzB#e%k@k;i@0HLY<5Gw4RykSdfZdVI zHXI38vzEjn`Ana0wpOJa)80ng?R=6<)pPMov7Sm5rQI8?Ood4yF{gf5cC)!ak}Crw zMP!EX?XL>eI$Pa7Sj%v+bZb-~!NC`2vmUltv1^TV1{3&*&Exg^vo5z13H-G}#YKl$Oucdwqlc>Tkh@8Nd! z^N$Z6y#4XJSNEU)0-~UuUj5-q_ zrqE;<5Oq*t1dO-C>m#}?;4BoFIF1FOs9{z6NF;|lolz+3dYvY)E5_~CX zdVEgib;H&jFAoNz!<#$zHw%U0(YtG4DC%r%fa{??xYox5o@CgO!coMR6nG|8&lEGM zn9pR1<_jCU;GJ!zyvh}i%}v)KryQju9^SP?z6N_j+#HrlS&S&qBhsOcEPV6j`Ktzp zZuXl=gUPAnZNXV{&Fv9m{(u{rU{3q2MP;1U3aHgyZmcXV_=ze(0fjm`8?CchidW}V9fS#E$4YHo3Ua@-WwSekJhEeD$=>sto30IFK>9Z#%RRo3mJyD~#DHcfGl3L-G%_t@uA?@t6*)Vp=c-}6?f`~}8f#$jN z`Coqj+2`j}S8QQ(Z2W6TuI7znf4kx|K})1+CNpjE%3_9!m{uL6XYrNGG5brWk z!nFWxZ@Ja%0}5y)>|rRqCn1jqBUz7!PP2gJ8wj1vXb3v8^*%$3dCBcIuNVR(?y#7x zzIezU*2!ipesHiJKZS(VefY?~ffK;%r|*CM<-_;ifB5C?+YgXidH4N;8?QFDo;?tgCvTP*Da$z9F z>McQMgoF}*5_LN~MupDgMKA)s_fZe%>wQ(bOn>4+01pKOGC-`YmJ1EOzJ6xV3E=klG5U`Arut!pV)9u(7a@xI`_?mumAnih2ToKikQqMwO3>Ncw!MO zoT=HlH37%q@Ejv;M4KeDzS5|~z^~~+-e}8b3lSDE6&j>E3i{dAPPSAz-b=Vphy+o5 zbG`0dpy3ao)Z#K2pA9OsI9M*bC7Na;R=YDPBA7iw$DK;qU&a=%toRVAS2dY^WSfsM z@N5|86(|_s4JNBiH7{REILDJX)&t6-T6^ge?b3xWzBmhCsdhVRlNprS+2u=D$KbLpCCv&5)HwQUVvl*5`p27WyR%5=t-8~!@*p^pGx_) z#+AjD%bNM|Z|0Gx$)71Du>R)#C&xE-3hiq-$AZP5LrX<}B)zed$@QZ^_h^A1yOgF~ z#Yz><<#8mHie`i^lpJcQ?1m&o{2H#&9%fP%E-UT~%NPTZfeeTDSKFoVqTJ_4lWf_c zoH4FgP4aR53kzzq8|M*UMCM7leP{l!&w?VC;GIScysHFTg*G+qVpy*eJQ*3F zbO2i&3#9VhLEv#cn39Nms>u3%2?BD~Np#qgz-XIyn+;K}7$7Q09%N(CDmcE@e`o z@{_0J`ZMwsnS}@$lu%$#F8dSlIEwuGobbSn!jCqxt$63SMCK0Gu(s5$cX#;J>wCw0 zLf#i$-@3n^+bbe$l`u2iz2^scU#1vika%A52!2G&w5k;j@RA3ETDH{9FjQzIvbgMX zRC?=so4oF?r&gxMm1AFCP)7FvootAieVD;kHq0qe@Qzz6tE-2-EXVonAtYV%b$F%2 z8UcoFFtN;L^q~ZlxZOIFC71|o_Qh;QD6Q?@d;AnGQ{V^q>6agV{sjn@zXk)ofB)U> z?VBL5e0cYUgeNQckXLH5DY`*NDLyW4Z*(8tU8|P>x7%np%8i}TXpIgMOw!}y>xi(H zW>OgDFt|csxhdvZ_!-8R{bqAKlPs3GLOPvF;xUuQx45E~s|l|LXyBJT5P~S~Z-dET zt0|PLwfeybol4%8N}w4kL7ouYgJBUb0(dwOVn9Nou~XSBEDac}&}N}}*xG6N9UyNl zNvnMph!>4JU8y|Es(mUvDJfFDc&BANyHl3X*nyg0FP{_}agVJ;X14-Y|$ ze1TY0f)+L@CA{HID^>6826B*r-75@MGbmLNVba{IW<|I)bR%|No&!#1*Imo)O44z@lr!2Gcb50$R37U!~ z+VsEw4~UCREuGcqmqU&Mm^yv=vyV=kJ!MnNz8a4%PEAEa3sAPsN^q)D zF04!{qp2dtusXRac;=74pYsOvA+|GW=@nGeX0S1FU)(u0e&Ukq^Ci18;r1Z*>fXlY zwe~Ssjq*Z1WDN{UZ4OFP8@=AWuDB0n&RdPqR;3O{0)DVl326+?4Sygl?)9@aw>Jvm z)+PrwaG>mM>~|!8xy&_klvu`Ut0`BWa|F^@JQgwNR?Hp}bg>u5#?3WCq-)l*GwzTD z3#O}0huR`x^)8hO*A6;DJQf^gEl3&-1*?q6F%G{VI!v~x2*21S3r<>yMyZ zgFaxI0n|`0)`t6S+~&=6bEMmufH8j5mQ2Ute}N+e5=-%rDVdw}LV;KnuO@tC=|F<5 zb~NdUBt0Rk2M)dr$FY^oMr&*5Xrn&Z8VdbpsfLrrsV0R75XYiNb|o2{v!zGjy$4%oft^s>A6F;8HHv&k9JfCglp0)CyqbI_3*&CS{&9ZUY`gn#HrdRHTT8 zP`}Yiw%ely9A4l><(XSqo|=~{SLWsy9kF6P=^8&b@#*KwTDuMwdikx5{?Oq{8-n)9 z3s+`7`RkW+o|Re3t%W+iajsP~UJS19c&455D}i99+mK9&eQv=$dFI4tzd08mEvX%# z9M~LWf&%b6%svRipXOpJkNm`G8ECSg3m22H+>M74fm`XpD9DoK;ZSX_Y~OA-a@Vi7 zd)d`&rz0V`EK@%yU=Rx4?piJI*I#GzKrAcqs54ex8;IRzzCQrKND7)DVw%X+I2Rlw zbQRx{{KAZy4+mK7#LW2%GRW7LD7nH})kIRTRVT7|b$e@5VE9Zb?xuyP z-Jh@L3r4vz?O*T)!W=?ql_r~oxwgBpSM9FuzJC4m?e`Dg`~r{aho7F^f&wc%tIyh{ zJ1?I+dhqPY-Dlr^cUWQ}5uD)iRGiBTTnbo~m0{Cqq_cxcZ>tFmOP40dm)aYoo8`O^ z14RoGj^Qku!~tNyBZ*Mbt6w&S-T6jULQ$_T7L;mrDh9e6Y0w+&)i;h?Ya5l#hyBLt z_I@K)>zBi(`O7LVYh3Z#E?u3QwAn)|(<*mMh!)oKFb*(>vXq?q~6r_mNd?l+&wxl}LmfZ}6fF;gGlL>rLWs5O<+zqsBDh@BA@ui?qab8v3 z*cgBVgmWnLe#FDn%VH79R=anP5f$AR4tT`zSEa?=~2Q*?9?I1=g zY_}254Deb?sai_wU-@cLW<&}JHxj4=R*PC~7Ql`X6&qzLD}-0eshH>NB}5~iv8jy4 zD?yK!H)z!keQ4rSLo^<^Jn7th@=ElW5O0f^HFy@!{o^^sf1rM`7g$7 zI_KPyg%WBYrSwia)VO_e<%_Fwjf=prXeI-#K;>VrB;-J{V4bvM%HcUP@6;_UdQ(C# z4@+i+BGZCAXEU=|-vN5YdM`_ZA*D%|Vr9u!+KQspM+5g_y7TZ>huao#lOZZqtxBzWjc04C>qSu?t_iGJ8`9~P!(>7*pSpBL5sx};F8fM~ z)6A+&{z95_3oXcCdeW4ItoPQ%Cg|W0;l%p(sIzwC#qRp6XV(v&KE0pGLuw_F<8Ts1 z5viQQF*X}T2CJ}Af*c4R1Jp5+D!@pt)g&#h6h%giu3sr@z&S{96pFyq-voB_44`_@Y8rfp!Of%T;J@8p7I`U*2_&NKe5|$UYUGWX>(EfCDWPD z&!~Nc0(7+uE-#r+;btY2V7oA^?i?I~XKQtMynp-VW;IV{SBD+Yd4?6vbm@AXNhuby zy<9m?vL40ROGYm=kTUs5z?3dWlUCF6IfZ69TB~*-;})Hro?%3w0tHamXuI(CZ6G}) z6&J(!94wcz{oU*39TcR{&6H(2+JVwTOK@|`U&_4(*_0(Bun(NbAy2`9ZF_wW#)5pU z&XJ`Om99ld4qnH-Wa;|hgNHZvo5TI#Hr2TQY;$$BCW(HZ&*%Z1H3@P3UZpwQIvC>6 zFy@LegQL)~dBZWp>8sz&xizOR&v8Cu&Nx2fOa}FKw@b5PF}qA$D2$XV@kk_1a+!2J zSIFekg=(q9#^bdrVA4V{*%G$sC8Ke>(#EabK3Y56YvoHlm;k(g4*BX2Fr)hLYjpL) zPw=eXzH|L`w|n>QlUvUp-l&F!A_!80K=X}3?2N)8LX)kKB9Fx2sS83Q&}Vl0U75A* zA`waPNs@MHR6zj{FSJ*!GdZjdBuMGpI99AM38Pva;Q16WC}-(pb#SzCXRX=HQyHOu zbN8UwYPNT|q+308`Q#-dUvT?kE(cs9oF?_vlao^#FcK$22#7RNJnquOd%5AATQ~L& z@4a}ivHk4cwd=>30uS&WC< za#-CX!?AYGEgL&0^9LEb#THtt33i7Egw_GOgQtj)KkmpdLIO&)A?PSLx)2sKQF zr2L#F>h(n_5n?}VExM>Qs5LV6#21jdWHe@W<>FoDjp3d6Pau_3pvMTt65p=udnal1W)FAe|4{cLnf%~2w}WI6BF~R1wTWuAu1U0 z226S%O#Gql+XO~sz!8XBt8uj5@9qw7?i?OGJ0Ol=Is5?LbMgEz3lodMh-5IVP(@cX z;y&qfU~IhVT~Mur{I-xlH;QP`u{5Qgv&SRkW)?qKE7#YEO2kbz!_wZ?wY&F^j|LDF zYv!3zmT*%Uijuobj;q?loVS6bD#KBu+wC$&uMNeF9#oOVVLaWLWCHM zQXSs!5|hc8Ibc)=0W-!dc|lH-2*MgCqU7v+Ua(VX5KcyRYxV2^R;g>d&w&NdU#mc5 z10o;8JujXti5fHE%7d!R#sJkz8f-RqHzTZ22Ca1wSv1PEi6|A}a0u^iRyzm%^7al~ z(=-NB1Axe}1qxXdS(TYW`}!R%&Mi1Rm5Bfdp%$4PcQ8f(4in>2P>;t`!3j z^dT^5b=bU#Py+WjO$Lo^c@oMBZij7dS+Cb=$WpN?HOg27FTi)CTG;4t#YSg)zczUI z`rF439v|@a3K8UcJDY`KuC_Jkg3>I7OLY+i2{TnqORPT`mekG)P3B1_{JKPAC@I~1 z{O0zn`~B-rpFTL+xwcl9^3sUIi$t`5C3!4j3Z`N+GZwdyD`kT5Shb23aIZuW zWkcR5(ax8tt-C9yPhSa{KcD;bAOG~xfBg49f8kM`gGn~!ooQu#L5RME@|CK{hT}GkpGI_csm-QxgpYMC{{4cWtN>k z^T&@ZMhB=(bAm8>_438zr?;QIfA$6rj|e-?4gaV)^RC(>*2%u02|rgyIlloX&dEY z3$)9{dz2BF2v3-Gs4Be~k7cXi4=e_NS6Sdl9{0utI!pSwdgHj+U(Jmqrz*w|D&6h~ zeml4CY>L5bNv~DRV=BGiQb;NFoFk??Co5)MF0qt1ApBZd39tnoCL2 zfBk>1M!(jK{p;5gE6cOKY8mTp+S9!<--SLTt?B9i}Z&GFxd??0UTC z!6TJ8=`ix~C_1{nxgL!5npxB}%M=rCb10VwZVV?#j&nxL?JU%Cg?zOw6Y2FU0`862R-y)Zm?cXVJV&se{y=k4CMUE=)v(Y-*2?~B%FRS^)})O)c|&s zTP48(QE!1}Bb})Wj73hDP&{8?-4=8`>5pNTKR&r&_9j`_&sW8ydcuL~W>s1vf%pN5 zpCmJ4wI;Ny=~6f9=lXRd?s22JGD;K7_}J8yvr1?4@jh5(DvhVWtp4H6+qZ9C|M1Iy z0%`sA!;Rtg(f*yy{=w7zy%&$KAKd!(#iLq+D#7tG7SY2LCc>g<>~K^OP}*V!XM#oX z^770D?`|&Hzq^wM7}YC8ksld583QU zkjM}>Z>$xVn@{gw-x@WKZasdu>PVMEVVsOc%e{UnlaBkHE(9fr1m{oCOek7d#d0Z% zQY)2{Nx3OFH8#g)!}ssr+LAU8cGfp`>XpM*bUj4|T!?+yDo9k(5`jF3my_va(~b;J z(m6Xb%w<{tTMBT+Y_BExdL=B~-{_TzPyrXpEm-_@cSj>MxP_;E_Blf^keXWdWE0_} zO>=4Nl8RQZc(txch>SYC+DHg@1Nw?BlM(2JF3p_1Vl;Yb7!Nm!ovwf|nP#`_k7)e0 z0uoO{9h<~T?FdV=%^2p4n!}yFYB67j2G14MobJ?@r%%t@lozl5ZUOVGeCoa4IBf6T zIqo-#WhS5N58bjP?NX`P3X57yv0Rv^(2OS$&3H|GG+x5!Jf}l})JX;c<#NFs1FmO3aB|3C6An=={D-j?WS2UEM+f_*6R}wJw zFqjh>#AwvX;KG-#Aay&WnbT^F^LpXan@a*PKUb3kY3p#O%ZUY8xF!p3hcU>7T+mq~ z=9U&zlY!0eMwwc%-h2e)s#mX|r1Jj9U*H4)yVWPpAKtsWTdfZ6flUasYfoTe)piR) zKCI11RKnoHrAiup&McV|BN2ZjPAAMtttG+LTAAhLsRhfTK8VMxhI7kK{lw&wEuvG( zEHf}~ck0dYaL66Z?rs6wmkKe09oWcJOR9D1{i@X4zW(~*&W&sPgPv%yQVkX(q*8?< ziDrf%SRqBO1PGR~CQ%=hC36We;|rT+7s0xw5ciO3FW{!r^+Sj5|# zy-Kzb2>LukIvciWYh(G0D{LcIyt{A_c*}# zG;3Z-F%itJAJ!-g-s>!wl0!+37Vs1!k5jCG(1SW1T%K5r;^owOcPq=4RxYoYjGuq> z#i_q3H466`MLJ=VUG;P+v(Ao{2EEmeR40grRENz_itCk=uB9-~d5r~ha^B=`kp8V4 zj`0Dpl=JDs{$xyvVj|^om=}_4IO4Y1O@2R>;{%~s2-I-!;rd>G zXC0hVQg1`D>k3#Rom;O%tDnVUC>u_fhZ}o{hu=Et?+gQ;61-N09JE1WELsNMRx)33 z#Pw${IoxA^)8;ZPkh}9Sfwh=P{PN#ERhvSp&yWh-I=o?r7^DygA-M{D6~s){gsP`|^` zE*ZtVCYwfMTC^k(e@GWV)HaXYYKvgDxl8B2Rye&3#e%1<2}Y8nSnuX|3$TGg1f9)i zOSxjHd*|BPR)dR?tu`9&3>!R*IZ0q%M_~K{S30jX0#b-TByN@2*l5ygBy8&0%k#@7 zTe;Jw%>4fTb~+>Nchc*-ZP?cZbp#0!8puQzY9>4fXw!H<>}h8$Xj|f%NMq!aS)E82 zVl!49^a@&~+!kCccD8QU#bKw{E&1eP0)&=~Ug3hE9?Az(`Dh#oLp`1#T-E;I z(P}2jNgmUf&JiRlqjKG8RLDO0>bHMe3MCawGYS*03*d5TiL@PNZCBH@*12(WjOWE{uf`1eZYSnT8!k6B@n;n;XqF zvAEGHn6Tfro5;J(l75!Qyid)!p4a!;h5K`l%-ZHfutZ|FNF=z zqv2`_6brH%+$&m}%}VnG+Nrxo`wCTNXoL#l>y1cFCn7W&`7&= zM$c=|Y=t4jG`3qQ8*e({Nm)P#cP(ac^ZK zXAYG#v9;dZ7|T{2yiZsxUR-0n;Cx#zcsfFmtx0f8VLSP1Uk@Mf_>EgPCnv)ZoWcFR z#%5QSRY7;C7NjZ&+&Ff#t(AM-Ty1^3E$7$nocGDYk~`8X>t_g|k#SkXG!+3nO}ipy z8fzmVxcSwK;n5Bg!2^p+z64L{ZG;e6ozNKyPCB}D!)pyLVE!v#=$NUSFnbVWYgkAP zGd?~VC;Mj??JDeNBitBTx@j>TpTBt>%CFMa`Oaxc-Pzg(9rt*!*N5^-IRhB4UT3XV zDKP4dcc&)ZXZLp3+RejzPhWu(@aNY9RS;PJ^!0bY++VMV((%{#dhKUlzqohzeqD8V zg27;|O%sB~vJh~OExAEV5wL=21?7D%nu?$V@P7PGgWYHGQm>DF83u(ru@~GY4*P-w zVRA`$tF$0Z+7xLV_sy>)qmVa+M;dIB!n#07%i%#^Iu-GTR!tGo!Nx^UW5!+Vu);&$ zu}BN#>MhFcA#Jn<1)^NaBGKD_hjVtwu81lH|)ur(|* z5Lxmhwqv&)5*J@_Y89xmMZ;nR+#90onUUIjwAE2%g-vsXy<_;0V@WX$hdef-<<)AH zs!N;W{gOXePSmJ?cj?nh@wsc3OSf0Jg9Goa`Cu~B0YG%r<_H6IQi*s$;f5#pNC|ki zeAb-qrovn^Wb(!{gcr}|V#atHJXZx3px(-G25Q9;2^^sek$L>C>m* z{qpa>{`8E5jRG(MjOL2Ve;B!=llP7d5V61 zZ!g>JWCM+}qZiNb0<5FGmIOS)FdNF1XdDjcAwXy4Y50$oSS%5Wrm9=joYGvAVu2ju ziNwXM27C{ z;+Qi8IP);9Y_l>j5IQ{u#Zvl3qu{Zz27q3fW#ZbbNlXEcE&)=Pxadx5wPX^m>Lv;z z@NkYT(y2_QQ4!R-9P{Nf43V&{2KiJH5BQR+orXWaTCRJzfCbu&Zi(=M=or?3O3jTZ zTe#i_12hn$5zPoGg~>uYmBdm`-tW>CZP!0{FWj76btbD#fP@54d!Zsg5o`#A_mU89 zq`U2`IM8af5_~4tI(P1G0I9Xu?03^3!y2!z^BBdzUNRFV<{|T8S8URD?eX*ddv^~H zlX4neF@EqbpLwIk-|G<5@{Lcg{cnH$yGt{O!$tt}5uKZzrP86r>no-(WFW$bIe<(! zs_klFac*kXhSy;sTWIYy8f6Ax0-`WJ+IjT+(cV^lw!e0`Q*5@Hjm)3{m(t3B z!ImJJboTiC&c)*|zXx0;d|3bT)#2u|pI@&6ULF85Gv6HFIemJkuywf8OZp-^%^1Q; z5gT3+0bYw_x!gv-GRh(mlFld`D`X&0&fv))h9vnclY=F!9oI@C9OHd{I3P>j6?aPF zXgZqWQ(RU|@*xkOFfMp7I_Pt+(l~)eNQPo1g^sx0QPdtOs~D$9AT1Lu%JF?bsSBAJ zmq?`K_VMxVI2Q)jwAW4&d}H@;+&$PE6!uc=i=&-UyxCxrbR{iwDV9Pl=8(kZH#=3S z-;uQ>ZuJ(mbeS#^axEtdDjXtXVUh}1S6x@%=FZYdlLheBVn(WKhjI~zNQ)Z`7a@;5 zW}%d{g$N|~NBx5>oRG|pI9&JH)wlvn$m{^1Nb4Kp9O6yp5Ge`6@=}XCuGp-75VZJJ zNt0@vmj)(THn0TP!qAE@0vTmC?&V9kE0bDs(WM1rOsHgWkNLd?ADJ1`;oM#?%LwR| zWw&2W#!JBnlg1H~J5tv2`8DuSL?aV3LRV(EYAj8XsR~4t3NR|hhZRQz@qg~5lQL*_ zA{Z6VYvl^>*58oJSp||k{4FzVmTFs-R=-pp)w3X*hG$;mY_Bn7qWuoPzSq@zK&d>b zw=|MI59%c4@-2U}aPP&p=Ub!3ZrL=UcfGgZbkFNtIp^|+AHos!_WZQYY+cs>?#-zH zZqj+QxSCjj*K1ZvC#GCr%b?4&f-TOkMoXD|w%ys;S?fxP-1y#|p0=}pe!kTlJ-D|A z_u#90H6CY@L_t$hWE>;0Fv&m$T8u-? zO3HzIm4yRuDMcbyD(=G}ydrX3JVLQy(~374Ps&mb#q4_1<=YNV49ao#)i~vHV6gI{ zAxxH}guX`ip<~^sa0&!v7=~x6J75ZwVrVrv=@X)x%~WoE zL&$X-2MigvyO~rS0JYE~B9a!%5MKPk0OP|X=O-z$sNp~)cI)P^&ze?lTyheD@S;WM z(>pBjGQV{MXGGncOLX2QYH4T%`k8{@&;@PTqF5akE1f!H2o8s?QUfyP(Jj=Sf%HQ* z9Zd=WhknWALJ2G<>pjtBqEJ|?)VC91=UTHeEVc?}B3r9 zZt^z3(aF0_Ns#?skzO>b=|OmQ&dK*IOuxOpxxZE0x+5hlCSmFJ0)ttX3&vX?UHuc7 zESxtj%hL{P6WI1edOy-Y#|>`a13ri->Ihtr=3&YKNRt1p4t?URA5u_Tf)oBF-S`Wl1MsXigDmI!3t|z z-7Xy}6&DGCZdYu4Ep}ZOfF_z!knovVt9}_gpyunJy>kt=g@}9kvVpLL1TvSiDlc$+ zquZA%&33E4-EXCo;i#9%ufZ>LW1GOlMrH-myQ`&Yyjb!eZagF6D+?hA&}$o;Y+|^( zcOWDJzD4WxPvJKRS=xy0x(S_0l+kPYm6;{0*}LL&yIqEGh0Ul%BH`16Ir7>^f4KIU z0eA`d1IBC*5v+H0a{WThLw;-L>G{#t#{R?e3&<+py>n-04M+kox0R$~3(|+_o|I0D z^oT2+9Nc;K!;k;tbNYJs|LT6RTZH5Ds~>*)@nWmQgY_aQr5WHj!fPE^v05;xak6L! z85KYZWICj(<-rJ;u!@*f(+Y+K0s&B+grMSF0KF(gY%Q>MLqZ|zg4r4Hxy)?D23r*X zJhR3?ILbzd6j!O`1Iu2cYjRN(Dv%D3MkqW>Ag|waiMUD-s?dM@C=o~u2Fuog}6RRu#D77M52_U zMjR^~T(*dr1w9xcZW^SFFOy?q68OAB4m3sr(2r&YT5~)#antQ8czHK6YJ#Cblg1=0NxX(|;@s)h|x0<9d5CG;Ipp{6K&G8o(2;8l2!H zT=s{(Q#Okki}5*$21>ClR8N5Z1Rgkfu;96~kQ;82!io?Q))3w7Z9nE?V?n_s@vAYustK{FYfE(`!8k!8 z(`Z+Ve8h>x{D1u2C;#6+{_C6XefZY3TOY0loi|O-U%qxO8*pOC--*&ZJ~dbGEF z@80R@2!aUvTc_jm{-G*(AU)r%mf8&-+KKmGJpCWYs$by23V*)aO~F=ed-vk|zr4D; z+dA6Y$U%|Q3-AU80LB=I&=R$x3-bpYo<^^_)*ttQ4%aIK!A!~JGcq4V;+b^JgVz8Y z9b>Z$9(G29$#9T~8{Ml8y$Q&6dM_1c%0R$Kfm4$cl+Lh{P6UjefH|O5MDaCwKazrc z8oh*bK(oSYeEDS16`4UUntJx|{BG7^Hu`*oUYDxIsp{|$QJyRxmC8^q8J9THTf!meg@Ng(mT7Ei0TByevSM8of~&cliy)H`-?DGe z^W4lq3rYjq7m)=%iO$!(9kpJnVSSUD z4|RPup~%`7=B~UqXVR=6A*qo)Lh4doR|SdZc(hZaV}S^KjrmqLPn)2~N~LpvXomQ5 zZ&bt}fbR-@g3T$96-a-Ke!RvfPk|U8qfLiKD~g z{^q(kRCBF#5n|O)t|<-IG0Z}C(<`9NFvlYS!-5wY$PydT`(rjCf7H-jwV`RiMQOHW=FgLX|3vcjE!4Q!Qc<(KEe3I)D2&|Lgzr;eY!3D}Vgx-9P->rQ5~; zXAekvE1HM|mE+U;jgLQd!ML!}y?X%u)rY4?8;6gdp5KMr)qd0CBS$5*qGot0SUCFf z*@Ks_Ui&KGTJ_b%(ODhphmBrt>&sU!cG~sRr=^G&;+d{ojiPdp2rAPw?y(qO*%f?tgdaU0Kv8 z2$N$8>Fz&1+Isrr?$$;&cTQYc>4E9+{>8IqlqQ4Tu)`MNkm_OgUduSMJ@cR6KO zdw14+i(L4vg_QH}|L6bZU;h3-|IMfG!&t=Ui7-B+lSXg*AU~4w=W69a>GRK}ey^!* zjQ6&h!@=(6$=Ut;Po7_#ZuKh#a60B7o)NIA)bPR6FX3bgm#QDXySr0_oyDMC%>!n; zdwj9qZjQu^$m4FVl=lX35wKEVWDX-h`e%XAxN$OWYVu&L32=_LqQH+zsbF*C1c7ln zlC0kmLm+Tc%BxC+L?{Wmw?RIDL?h6ZEeB#Lt-=wUG8(EJsCgo8y>n_JCfJuPxAY;Z zSk9+&l2{~pwJJBx@88>dxM94Z?8BuXujX!WpnMFmg9)0fi_))%(5Rig*$WnsEEmcb#RaS;+kKq)I}!zD#&0rS;icBJAW zx$I?XACm!~0*4rQ-Qolrm3D?6B*wP-xunv{5{I2|o`OXNKwwE|B=l0eZP{(q-4xix z@R<0w?rcrEI7keu9QxR6>X zl?u@A8dkC@*vHx#zl7X!n*R(AUaAz#a)j#lL{z?zTlVFPN}L~T<3?lHYcNNYS-^ji zXvCD#oO4T&1^P>=&apDFM_v0H|rR6Jc=qHTP>xMgQ$~^3J|0P|jw>oA9sx^BYqidFK9j30)3w3eN@H;Sd?} zRMHggiO9g(A@%l3yCeD zB%%-cd?pJmWYty~S}JG=wdvhSKRkmmCK^mwG09?-%=nDjDYv?%a;j9KieNTs z$6NuRA0%~wSk!a%5{d^yRVQscR1WVQ4swxXwLD1K`j0ok z)V;a4yJhF(!<2vuoMH3d!Y`s>_xtyzuen5sSut@nR=`aUxemLX6nmzCeDp?3b z(om=H*=-gN>ElVjp#kN@ZnEJ?m(L!vtxOn~q!<*y>|lbGEOdcR+mNbC)U%lpxJ0!U zR8QdN4P8IA9`-L-1&a@8*bDZ8>YJN)3CU8WBOoQkWDiGBzt$eP}d)xR2%Qsfi zoWF6pzOi-Oh6xbpm)pHY0?(;D{4fV{vC=B1)ZijaAeIBd?$GbCc%~5eOX-zMR5n1t z4_D-Untw+r}O|a>y>sKtx?_Qa4=ohU9-Hgk)Y@hkJcdw+vJ{V$WAXZkOi4E}N zDaKh>G8js@(o)7xF)Hp{@W%|$sB|vDEG-@;Qz;fRabXxEX&Lf|HgwupG3yJ-|937?%@ch)98E9Nu0OnOkoVNd!h)6l3$!LJp6j3zuf2 zcE5w7GTCg%6-JT*nuhznQh}0(mKqJ$^0dNDESWFa><-Yu2lHx+&nD6ZGC`)htx`p9 z*2HFO`*iU{U&@Tl2!-SAIczG5qig(6G{TBUjeJYQ78>URJX zEtr+NTD8u8;s}vSOf5>7sO9_~CJuug(r%tzVBHuJm8jVAO}~I+vyr4f;EzP>05ovw z(^13aD*@3NvDjk`DJv=x9BP-vZALf4(DHFBzu!skk@4GoKhvDgr6ZyNCjAgW{b(Z1Q9oa z=2f3_)w;B>vJ#HnJ-&H4yOB-vdr!9x@z9XXrWj7?%0!T(-TiGi5FV6<`!ZneP3ZKe zI`z&Fw-vpP1fuu4n$fVD7O^D7#;^a5>gOSOsDm0sgw!wU+c*BSdTVCFHvPrKC%2tb zpWebS`!XC=>Po4gw)!;yS5^9rJ`lZ#uz<$$%_aj3iA2KX(!2d)!Yr3LYH9|?Yk}oC zU(gjx3*CON4KKTlB2~9eN8tMCQeqEKX@&J-=fPpGJ={OpX{++?w?BV#KHk}=7Sdd^ z2>^q38w9sKZM!wNC;>t@30(b{TH;dWvQ}5(awrmyk|cpH>HP?wV<*DNu(_`?Ytft2K(={d2-yoagR@dYp7q9*H zw#R2TIEur~;YfhXw50KZeQ#OH9JiERl$1VkPAD=f@cj&xPk;5HuYtQt?!_dhclNQ}~qH zGKedgN(f>aEY6Ac(GHvjjc?lx?ywFsx;;QRg0KpkY7WW(jxDCCxw$ZHybX9E5Iot~ zFqA@+q=$5~Mm#(a1A^ZVs@3%$L2NEpu^?N^7*cDo8jSy& z%yru=uVi@4IAdXxd9TyuvA-5g$>XhdpFwy^?!XDTKltveZ@>Neyw)jJ3W`{1X{DT8)GA4}y~S4`L#O6DwVbHbH;WKyOhX`&;xcSh zE*Fa_Y}x1+#gM~manf8m~=7!x3i#WVZb4mOn7t) zA-T>X4t*wFI6S==((tUMWwy#jkp!CsUuO)`wZU*IGq_W$Q}8mC+8a9u_qK@T*#(n< zDp?lX?EbJL8xx^VZcM)W?k$@hemi<^+-si;kWrW(oZ)TPLR;>Zo=VnLsypC#R4z;EE*$l@TDd2BkHn=dy`7=zkWL?E#`l1ePk6Yd6ivzy8fk z8fKM29)LB7V+k@qqSoj&YXa zXq=o68|wuhrEJO}Ku7W-xT1L!_(>}>CaX)I3?)+t3h7MLvez0 zciT_hc1kH4SKDxbpv5X0(%;lg1;9efE1Jeft&|TyGc1fwxKbK)hv>pWm`t*bG|KZf zeaP*dGA^&y{cpYT#%H=k^M_Ym!I;~h0bCMcw+C5*Ql*pxQQsu3N<<7JKzHn;#Qm2C zJ^JcwIu31HDW;Djg=(HT-JH4^H82sLjNojZ)>x*w+bWDV8eW*dIMVFNy^2 zfYJT zP#RD+)O!1c9N>gD`nBzDtGT}S;LC${w^$nVp&X-8SS+V0!0H`lZ2`l?(#%bx84UpR z?{!Nf2(xLRI%YEAl_bzlE3NU-@fl>LAKl;IACAuMo^Cc$uo4(G2LfHV|LmKe{_^Vi ztH1nuT8HmzZmUxh6fQwtf1fU<^cZ1FRe)YeMm9?DSt?}V1esHdRc7Jlj8Vvssn-J$`>)jPX;BM>3H z9M9gKx=s>{bAIooj}hK?#nFUNOgfYr(GpwN!d_b->{^LjpW9tmViKc3o|7zq9!xAJ z5MGsGj)uA{tFC+ntRaMMf)+)&Qm1lFf86O-Ye^3kT68(=u0VK#j_{0Q(9PH_0gKgS zfz!F1NUhg)cM2pEj$=hUL8n(&q9(g@0^=-`VKLY1(pbnO)I5x9`u4OfK#ghzbx^9q za~hnk6`JNGETt$}pHCmxRI&GQbs~4l)-IjVYd-Q!%mkWB=B0C z%16U?K0a8-OGjIjSM#k>Ub!;Pl#bSq?(8H2y|qz%iC?-r>nk&m&;mMs-?$Jijx{+& z#h}1YDOn*1TUIiW-Z2mXhMNa_PriEi=;ed;?(TlKUFwgTy>4wV+U$=u*Ve1GyU)LS zTyHhThgB;Qktz%t2cndm6>phwn{9Re?T?mW?N+3MT*$pVg}}IpiAiCdU(uTN)@XZo z|LFeHCr@7P?j4@(54v)?EoF<{QlWEt|Nd9M{PfFTe*EE=pC0cY4Iq}**{#Y7WAYyi zhvMsN7{}st#ve3Iuv#g_YFepQWxNiMP!_cgTzz#Gqs{3HVm|AYPd>WkPoQ2T3ezXD z%Da<%IDv&kDH_7k|h3 zdeVIBp?YiKiv_O49~A#!n0~37uz7T8rliM_8hHZz>tg_DY110mN292jkUh zv)CG`3A-^8!3cu(n=J$k-=jhAl%&60SZhhj;VvyT^Qn$@bhu7&LaUJNRqB{O>?Zh_ z@y2I2-AiwN{^<=|8ER}C4N-YrT+rXll;cE6DwNlnB@u)1bFr28`rRgH7EHA{K23yT zo^HQUlCrU-IgqRT;qMIp`ak{k$N%_mxBlT@{Qd~&`BWt@HX$e^G`9x1<`}+QgK>dR z!-hueG}8hMC`#p%K=_t^a?zau>QT%GHrrr9o!5D#wSgIG=?+Us-7bdn(2>lBz+GwO z1_#xOFV$IlIV#Eqzir|32^6_`E5BJ3X^*tYH`2i8kt^vyToRqpVd-;Q1zVad?Tw|} z;P9yT_{Fm?U*6rn|7=T0=LeN^XKm2m9IXx4M%$h4(Kp{;0CO~ogWVMIWU3rqZ8imz zulEE{Fs~XN7Hc}-6iP*r%~hZgo+gn%hDFllYI|+#=t#u#Sd=V7lJ8X@)@;tQor!Yv>)z;W!Q>((n^>ejEA&Zg3xn>iK2ZT#%>dzLKs-y z5oR(=Sm}(cU=9Z@hV>RbK9*bE=)%IpoCz_`uqz9#rZZd>qgW8+voqeT;FBWt zZWcm#g{lINf$R{q`w*Ya8_i22jmS;H!(4l?gm^^MhsE8}`*Jm#>*!xRy^+ zMLwA9wE0r8wF~(px-HkFOjU$UHs2WUYL#}uhplGvSEikeVxk+laIp34BqwM(vkBRj z>l9KgOxVrLdL>1oc>jFA9G9plZEcTGvs(dsx(~(Q(I zY|iUqMXI6%AkkH>6}3JrN^9*L>Sf?Bn{$~G8L`!YN>Lk3t60D-WLdFLu5X-eot`}W z=BGzbz64z5*Q0E^UOBut>c|2NRZkxL0QKr$|NGD22m0>o@4g;)`|IUOfdp(6sNZY# z&Q>R#f_D@f#3-WGOi^k|uGVtU%S3@Tn}+3LzSd|&z$Udqh8HY2pqWDsEb0M8ESLl^ ztJMPP-WZKJaL9+1T*0s-G;!_nCpt$wVVH90XHd?1J>FH445nt2Y9pO>VU&`k#LYJ zRIm$mLu;ls9E`?jJZ(3-b*fv+lDP#N0M+xwA|;3`LjawbzI zcrfsAb(K#fn?Tg4^@c#FIC=c#cTn~F78)u~Px=pEe*4|4ACJJ3diwJF?_p^Lk(Hmo zxccKaUp+ft*Xm*-(;Bz-C|@SUtxD&`tE} zG>!Ujco|#SmJp56U6`K=Nl8hEV3>T#kOFxcP+9is_Q{!>@BN>DdwFKsVq6M&uP)44 zNH>r`+9D78qJ|2vM=2imjVd{*ldYcYHlvf~Aiw?it8ZT&vrE%|`2CEN%mM`D!TEXF zyt^Ll)zfX{dsx+4;q zVnN}MohFN6DUZviwy?A?$GRod`BvV-k}y<1)Dr6_hif})I~5SB?H}LSg~-Xy#c`+C-aJ@4-RU=5o&I{G zcITTH>$2O=sKvZiZMV1Y?45N1R=qdKaRGt}dlq9YjC?$kw43VYc>7qoZ>hQPq zPagm9>g6xMQ~&Pe!;5E6AASSi|DT>7+&7~w+hi!`1j8aO1WVLFVy)& zzuMs0n9m$!1dhyR+{R^{$%~l{uT4ZGg+}8+*EIBj?u;^mk|SV(Zu0$Pg3j1$_1HYnPnigR*$bvbH8j0+RGF!I~?r>Du* zz1Q{%xa#k(@7%wCc=7zCnJI1^JUKqt?2Qjb|1Ok$e`s>~gNKxxRhz^vfqNfB5d_Z-4v} z9;tA?7#OSj z?4bx5^m&mOC!`oL9gQGM(`dD?m9iv>#7r)C$l~!PFa|ZwuLg*vMUdATrd>{}*QR}Y zm&H3H>YXbSzcZPxtxUf6##NhZI?bN}& z8s9m;cQHiu#_MnYd3ApEO=tDN_TIgVi?oW~`W(z8)-;TGc_Bf>0gX5Zlo@lxmk=^7 z3=c(7BF%GA)T*<^!3Gp7c%bg2W|BiW8ML{r5ERGU{eCg8_&-?|aofCF2F_r;M5w*t zywe_moK;tIWq5VJOL@IX#Oez|M1fCMMqY$L@=PQIK3OlpQ%Nok+QeKdxPm}%I=o=e zO`V{JH7+e?U4ZXw*I0-up5X zjT6a`Q(9k*ATuy|l|?X_&|%ByG+%4AxRbr^`r2t)^w!q~&QQ^7&D^ps-(HC{E2V~$ z*?)TR_?s68&IOOBUDl$7#8u1h|Lf(@!s67wUi<8Wk7qB>`O<@faZ!@1>j!)L&%XZd z)w8GHKHKQ5Uwr%caDNCzzKy-ns6HGvi);73{^skQLZ({?Cz8NAY2K|wmE)s>?d=U2 zdcTmoi4v>EIg=9)#RCfyNG0y1<5C8~>l?k{#gk`8kG^^Zu-~6v!OQ>0d)*U={=IGi zJimA6>0_wQJb(REh3D#D?lc~}cmfG5MJp6bC8b!eSHu{W;KDXT*ap$3Bp31EIW5Qf zBW{PoYC~u!L+4?9l7J6t00E>G66YJmLhzI8QwcddWeNxN*zo9Kk0*UgQ-Auz7ruRS zX8Dtk7hJX=5H`77?43_nuv|X}r$n+n$i=exMl}uH%yxh8@d4zW$0zj%+Xvodv(JQj z7cd2`rD;I&vdJ4$w`c7F2lL9t86PhTEJ=bG^498NDOmt6rzgzPNS0;7g_bu7hf7N; z8-=e>i4Qe^Y!$Yx=JhUDGVSt36(}T#jcf+i)$v%3Fe!TncUc>jixX+27$wsU#b6C| z$@yTHFKNxqGQ1&TnJm2Bp*dSy;$D!F#F)er`qNTj2H;m_CY1W!~suX(|Y@YQ~i&_UAhlMjOdJ09@_3ACtr z6BNMf>f^LA%Eqi50Pg~_!&Irq$hpgJ7gK)q#eE=8Jul8)Ht?46DeLi>C$4~w8Bzzy z+PD>|Y;RP~0f({;drmALNu4Batk&Hw{pgQ>^?&`t^-1q&>rQ7h>X$)Tb?5%Y!}~7)HS*$z`$xk^FOLs)?jEdd zo$j@ALbXtB4bH!P+^!8Db%D#{x4F@@FJR`j_YV)Zddq)v%NnzrWyg}m9-jS!@#gI$ zFJK{7=0KN_t5y5YUVeFg|CiT2>enaIAAdL>oPYD|?#0t@fBI^(zkPo30%F$ig#G!) zAO8DAd3SHGSI#S8t&s=+iQGzo`!|__cfQLM0!djk81|9^>H&tn9`e(W_RR?K5Eclb z$tdLyI)Zq;uc_qqx89vcbD?=pnD8dodxu4YH0h%$QuKITH|OS|Sb~d!EI=s)9)pRB zV5b3EV~gkHWJAE+`8p2N=|^j+fI2D&wF+iP(tdT!;mw22(wjGRrfV_B=W~{&M2uDJ zN}IBp*hZzImYQ%QEY`Ig1iNB!28`s%k(zJT*7zX3kaOP%nni6jP%JgIR5|F^c^&qE z&thGiwfXxR;)__EWF(S~Hza1*jVG0wD8th)U$kBGX6l0)%Q`&}C?9~gIYOGl$zYO> zM*LX5kih7WvRNVMgnhwQgS!GQGNQ*um;xRG#JjIWa}pQw-M(aq=*T4Os)Zn3-L42^ zcqOKw>B^u$SMyWzTCOyYx&L*=w17^0d}-bc`$`$$KLv>ZD=X|pBvp!1tbb7-aJWOJ zYd2N{UdwW_-s{&!>y^&YM(*;*lRC%Lif+cg!_0dlpXkAoq6QjnWn4(DU-0n}tRUz> zI8gTc%ZGvjZ?5sEXiKShv9k~OW3dDZ4L*MDH}6bD7U!_ZxBvO`Tj6?>vcB_of1Cr$ z*4f4O_UN#`d3dtFH9mau^2L**vxiR}o;`SYxOZ@J_xSX9Z?7XZdK()DFTOflYgaec z^K$g|jYVIS2)GPDP*;};|@!JRdH6z!Kdwb=k%*@ zfB5MyzW_n)S3m%L_wZ!@@r&~Z=l6elalCf=-A~X51k=jT@Xx2+Dy>P`Jcr6z+w~Po zl)*!hXf&KgNj93`)6lI1tqQQkktjUtL;RF_W1z1l;gRzyzx_$m=%N_RoNP zrD6%_d8M-1u2LUmfdbwWLK5nr+}(Ow!w<{#mIaR?9BC&@?CWnCp+H9iS=4y};38{I zKy+ytNVKYfIlihWy{)>m1l$|zywu)H!5At2r1r(+ zP+FexPyOS+%sS`5NC|McWEHG3QV~`vkTs|Rr=*ceLI7ZUhys6+j4q`r;rM(^ZFy7*Gb=P z(5b0+=BBS3=cny4!xuNb9GoQmD=U7H^CU&C2(zi`?$=*E|L*7S;Y13U>L0)V_0|1X z-@p3xW&pZbPcO{DCs9t1f8NmZ-ZqhzMhLl%A(un_ZC2?EdcDRP|dnRR);U z{uZZfUfkEI+=}#@kZQ3I88X46ZoD98>O!Gi@EfguuP2t}i}9$WsT>iHL>R7EAz5%$ zr4p+^p8;EB2=qkUvb&tEwoCP`1}0_KiiZSH_)I2@cEf${?Ae`B)G{+Krbi^s0UoV6 zC?XEJmSx0z+>=Y8!Lr(DqT;Y7pz5H-1O6AZk1y_>)}mMc>zflF{Av21{^shEV;W)S zZ{42It&F-2nBs+l=@gp{$PE0_;l>Q5jR|) zoe5=-TgwygdH?tu4+m<2jwfByBSubzGLGrau) zT=D$$Z2!(TYqfSc&gYXTtcSfIbcrKL(5JOpSu{+$%?{_Pk4`hOC?;@B)a?ufVk{H0 zS#Xz&CAkJHLjqh$&Qd7CQMlb{Ptag8NmqNK7PAL^DBGxNELUcoRwq1Ez?Y|wp}<4d z3bs(GuNE^&G@gaP2+fqYx`&U>Paf9I=wMh}Uq5{G_?9Ka$`t&;RCJ7HQPp$3uj@8 z0e>>#!B$7BLRC?6paq|I8sTDi8D9aRIGyEXCW-r9G#?9wU6IxxR?T6N@b%SF+_&l% zJNcX=UmiAqH=K^(K!^+*tE&M~Y@O8W z8Uf9Z^d95S6jxkME^hhgT5|hAmTVaGJ1@V{bP!01i|bOlLArgGj8E6!?TXEIvjwMm zAy*#mRvQdLx(TFm+^=*r?elk+7BA0S^LlOe1s@fjWZ+~-r)|)NmO3LQp z({I0e`RL;A*^{rqcXGCW0Vv5w_l^(7r~5lcN5GFdI@;~79rk+TakF**hgUC7wl;d* zVTq=-ydn!6yu*S4FC$V6y=-2Y`uy#`edmKOY>rSS9*IsYMr(s&ca)dv!E zzRy!2g$#h1B9w=8gUNufcpVP20>L~8{CG-4?ePj29^emKPzhs^?}=v$M!~E~X>maE zOQ)b>aq+wfCG|3Mz@{+K#Y~t5r!kZaW#C6-bvASA&D zuqctDTFOk&*eD z?Ul2&q|V{5bpeAPz%w(?m0i*^JQ4=mau+sMeZUJ6dC~A}P*bCE3Y=M1oQYcXH7^4#-F9o1&QcgdS)V@rzf-zS( z)n09ZSMB8L`tl$5C$L5R3|-aVfB^XMd}kMKTAy$3VHf~gfU|?ktG&VIVK<%GZa|$p z9ty``Yvw0IiFUPC4&eGJy9>_8Y7;8saZPG?wc0&e05XZWdZ$rgpzKC2mo1RVxrB@K z1%b8di6@GI6t0K7RM6oT%?h})911dve1VCun7OZb5_3>1mmtbmI{;Kl%!z~{QJumB zVyc2SZW>tMIm^%gKB=8#j{Wuj{-1s~;$2Tt<`DSHbiXh`v;L0$8nal<=g)gyZR3_lMxEJ}edc7-2 z=UNfV;;Sk4);&3*^mcyJLkkcl; zEo79Ff%)l|LVtrQs;RcR2py@%Z1F&zD$#|0Ao^UM=^BJ4fgJc6WVa zb9K<&-RqUsj<3#lHuv^7TFw5(&Tw^gchKpy(uH!Vkge|@Z4VmxP%vGIf^YE>6!55|xwlVzHby1wi)a4(95xEu*l2FQ^kO zayU$tM#-Ogzo_;2^u8crl9PI#&ScUe5b{JJ-=J|OB36h?g13+i=^*MNv!FbdlF;)c zN~21+tTnL280Ii5g=%BaZW3ujBpFQu%+6?b+pVce1fmYMPTCbt<~y{zu{l`Fn8BM9 zOgc<1@DT{PAB6Pc)0q$KjCyfG1I{$S;!c;cNl-+B;=+-MrNHQ=_Zkd#bHI=CG-Spe0-dwe z9Y;X=VL{}47Ed9T@il~n3L3pC0gm#*X)0*)r+^-%(x5=w3nwaJbK1}iDY*hSeV)RXBNbi zmC2o3WOH=FcT1w@win|VZ-$2zYCG-D@y*fh#$c^?0E@!y?creSrw>OP-R{ZJ zpx@|iZ1h^WVlJD@HP3EtxAWy}zF4j#3Vyd;sRV!plt5%WnGz&uFdUqim>L(TnIGPK zV2O=i-Z5T(IFX14)4RRl?#<=(`QhpH`919W;T`&qf1F;zG2r&#=nGrz^XHrE-#&i4 zJlH<_{ONeFwbob}=8{03l0qcH>4QHdIKGBRmBkL-2%%J?=L%JTwYQLzHy$?$AnJ%B zCZ}B^Rukz?Hk>ZvN-9CAWpW8)UN*86@`&C|v)+HNM9gZQ$^hdl#p0sYfV!*(o*vq& z(AdgRC3qMDkO6U%UZWcIlJR)bWp)JW;mw1F6^cp_XO<-G4pI$k6J>wQmI5NZaZ7*bzniKLCja-;aCtjE&+{w zeq00(Ws+bmOAxEk>@?a4xd2&K@~|Kn*i6}I$~Mk$x$#sch>?=Vug4bnS}{i+af+6I z|6+*;KPO0{=f}qkfoe*En+31uetNN_o?+nfMVZEGcN8-~q7G`<2#}UTJtAF*k}N9X zh+sql6}RkbbiCN7%e>c&$v^z=cmMvo*HXVvZ7CECB7ibO>`%NB6}_7e4AYslOvp{k zcpxB=7<81@93=tmn69f-fc&huc+XysOisK}t} z@$KEG{{fFGXn#(dmv9o;J%zpMm+3$3SAYBUv^O~a^>SyUdo|d)*>3n80D5Kd%pgxQ zL30naIsregQVE!Hh;-4BjvHu-{PyIG5jJ?ANLOl6TRNN}5@mJ0Ukp==TM+rD5iqMK8PoqBj*xf}`_ zuKp(_TfwKZk%%!1zxyOZdbl3LwU$^epyWx}PZuquSWG*q5*>`0&E5cM0xYJ3Fk3Z5 zP;a(N?KZ2yFJ5>hNYOHOC;*Fok)(v_2viN+`&1AR=}s)u$Wjui88JX+nShDEh`s!d zWp@i%B6r9t))@gJSFF0FM%-vNO4RO1CLSXsVi`aVIjBs?6Dd3)0zp7`sjA`5hxevrWO`PCB1c&KlSo8D)|sI zz`J@*;s+Lpt=N^w-zi>AB@+Qx2?WCqMmS9uT17WVP2tXL$ey;dAV1?y{QT3%+du!E zw!Hb}ja3RAtmW}XBXiuS51D_n;0d=p!AvGJXCSI>U@!vdH5vsXtOuwc>)V_4uzY0n zDQ`kH^*{fG^?dB-@8{{KPweugWu|;tO1*v+$?u#D25YNlS4RhjSNAsuTkAXUV%tm zGEleC>mhh=^+ih2P%x4y#39X`OjkDd4~GY*o4cnl;|DVltaEOg*Pc%K)J*oM(@_j%Q>a8P5=q~{ zM8{?F+Ga<20)>;|3N4C9HMNun_pi6}1Y&Ec1bUl;$8{2}L_8`p zVoTV_fVP9Q7$~RSo&oJTAop=PXoXh>9R{M1MKUc3=%w&7v#}tBt^iwTkg+JVE-T%P zrSWBv+iFpf22aH{qtHqnN`)b>{o|-O6;{vrENcD&?1Vv?>{gA*jaogRyeoQ#YTO<0 zxb^ZttwPPb=g7dMJ#IADz0s6_#~OwHKQnCl>4y*Ro-s9A;mAulX;7-z9InptB_~s< z2hDk3Kb&(21sECfCnCWC=xL62wl=!@Z@zl`;a?v8_s6eIAHJXaWf8hZF~l2mI9Y#x zZcNs@+iQc)@Z$D(`)K#-_TgfcwKFT5cTd zWmU_L=+kfT9ptCns9IMh9Rb>Q?PYW2V{Mh=G0~5 zjFQjbEGf94*ihR|DuiJY7^Hyd5sDZ2nA^c$Hd~2+-R?^^+gT5gy#RdS(6hAhm>riZ zLrG{k#tO~#Y^)fRiu5XPq_na@Au-*k-suvR~47V{2 zS;FTA{Q>lDj1sNU9zlE=zuSRxm%XdmXvHZ|qOMTPZxox15t7fCHb|^O-Goy5K}IQ+ zsFXh1^t$5#h9#u~MWvijS!od?8u6;-M*gf=i7L1=XqquAGM6KSw+OJ(R%|rvzdf325=xiK#O006YBcJ__w!KD)2msd6Cb!bS34?tEu! z?{Itf3eu!It6MvJ>qlqj2df){PIIu@Z`MmItzva|vzm)S7C4_z=KC!Grq)UTqk(~d z-yVYVx5MfrKzeEaa_v*2nQXWEy@TQT<-yMR8ASadociT8dVhU?_Yu|s zuxI`C^VQAWr-#qK?w4CfcONg0>!n(G>moHcPB9f8!Uc?R!oYg;?UQdFEvTkNLMB_P zBN5Qw!H!)nU7lE+Vluaz8PR7+!$*_me=`vxX3@~o~n6DHCBr~ir zfw*h0RvH1DQBqv(Mj~;9p_U>x1$--OxC|Bc`mND}`|`**TAY0<_l0${EGcOA5Ed^0 zT4vlpP*$1vHCLboVxK`INmtwDW-$|>Q>56RO1i}w3yH|_n9~WCP8nh1s-%R%>$COSN5lVHUi)>8w^6S@Zz(i9hioC@^+_>=QyLVGY4r_6K?iV!x8&x_70eit@ zJQsAB{c>lLcFRB@%3E^x%0d=!l%f<{F5sI2D{hs9`(zODW zEvH>9aWK;;8u_BRS<|#Hncrx3>ZS#XpKC@imu?QYLVPpqgAv$o_{PSc{J<0&fPKUP{r1tx&fXc^#IN`FP7a4#!^?x=*8bHIU~Nl-o8RuQcKU0*M!&zm3**h&V0-Ie z*evy%!)BogZq!;jU(Ht&GNj}RFaG#=|EyUF9hw0VR_0>*Zq9|tgUTl6@7s$FDT6Hw!jFRDOFutOg zS4zSTpUIX&BH(sJLJPh6RfZi%Y!4v@vcdIXBVJ;F5_N38jx7y4cl$2_WW-}Q8 zFB2PCgvGnJqWHrzJhZH;Ce*OXGP`3Y^|ZjO6KNAcc+)ZGP@oxz*lJHapK#|I9MWbEquXS5gee1jkX2O5juJscPk2bbr{XsX-$A8H>j@d{CTJIm{`@n`faE9u zv~d^kMuK3EC?!(1oU=H`P?CI z%xcHY0R%U-G4>)r`Rs3g|6kuv7}{U4*6P#6XEggSl+Df`|1tB33B3wQ{3PB)LvF86o$ z&kj$|PPh8U5OzA*+i3Q?t<|;dZgoA?Slc+=YIQr6)kYPjR<(MqoNDy?(PX_=Yqbic za@vannGcR>(0Ou#Y0KvhVCHZn46Y!xHRA$ETDlJZ!tr|J{NecU>er9|`26te#rfss z!`=DKM;Nbuy#F$(g1>Fn z$nI$zrTcLKH@{{~WRz-e*yuz|9&as@jrwCCLCwrc<>3OV3x{>KiWkBUS}uo12(Ob` z66pQGl8<&uCi(g$*7uJVJ&Wubtu3^vo)8$xc-OgEHOH~rtGD3!%pl+t~z2QpH=TKW>xYunB(jKJ_IN32GB4!KB zLS;Olbr#HGm?)F9N}N1KFl_wm=Oc5=UoZ2dD0f<7Ma7G;yvnHI>L%a3pO~9j z)_E{vkTQT1DUmQ0Dn$=aMgp0%_`MW&WgHyEYXd||Q)Zom#?=;OPU_oi;-6O!tygb^eGZI@1nmJpqC%-XOb5b1 zK%-+pXq8&+Bpq-?6OG#D8H{JIKHctLLD%o$`sVuJ^w+zOUmU;>a1?+7ARGaH{d9A4 zdw74?-Ka)tS6Qfft!%c}V@`~v($Ow8>%D0C#gA{EkIXylRt=oH#Ac|>%Lt=Y2_y+; zB;wSt1;8(!SmMg%GHIf;no#iO_zR;ir5Z%E^kxx3%v=~A*cpplX#6o1TBZctAAAj0 zTMTR5IALZ^O)bjfWskxIzDl^o%K^(H02dDF>9mM6wP@UGCZayx&+{TJYBYF)0fl+V zVZZ~iya#S{MTH!)8FtW^a-?zSR@+rthb?9WUV6&!4`7jiPh%$x*3nnr%?V@zPrwpM zMq}92_%Cb&!q!4g+2+@wIstP^&47^yLZ*WLu#E_nvy=`^MsUJP?=|Wn(agL;fJOoY z5eY#tH$}rB$OQ{S)ESS^qye!*7$fSUjlq!1VRS(HU#WzkDoz+l#gQRMv~C+-kg&>m2lZtMPIx zB3&+|8U@oFk8h`=^+wPm5@|5|l14p^&OQBrE8czgzkL|t3G@nMHkWQ}>}{`~UY)NW ze!RUsJviMx-QV5ZJUl(vxHvu8xxK$Wx%{%~Jl|c1n954K)$SE)?G7MN>di)H(1~|i z@Cf(do3dIh!lRq3udIME&=d7IePNF+2umJcA{Tds!ftoETEK80PUj-oOd9gn8~N4q zvx`A~l)(X>Dh_+ib6G)>nG%m2SUTZosLu-dk^VS1N^EX{EZcQt4IF^$NuQ zO2F()Qbs_=#XW$B4cG&;I}?f}FRfJlc$Uv%zd!33FnT&Z-tpDv-tB{~!PUFEf0MklNhn zNoc8%4h^3G#q;j}0JAj>KbVnB7J({5;@GUC=NrWu}$>&8D ze|}++Zz!`1SkeV#AV# zt`_1c*b2BH{RYKm)Mj@@T(L=WATv6ROenk=9TS6>tlsRQ%s`KVV3RKm=HXJp1miPb zAybB=r zOC^sM(`tMje=ueYV>o{r&2;0vC~9eH@hkv

mM?5H=qXLPaWft(b6X@MtoY@WS!f z3wr}pO{mA2qZ7=RN;~7HKmYPKwvs9ISez)yXMJF(g`zh?DY0~M| zU>=n`Uk)b-cLQUyQHI1Cwmo_J-Kd_XSBv46GgeOID`ceDvD;{mPd070x-F6~*D-m~ zEz~Y0y$sdD2T+O0IIy=gOcvHj#>fX=G!`FZM4a(AAKs%MzWTQxCcb_2<23g{c64XW_8Nj5&dW?{Y_yg-|pa zi+QQA&0B~jQt6eIwc++ks9 zNv7>6UxDbrpaKC_B$rRBUVZodJa-aivpPuhS?uCbuF+(eom0wC!`LtHEPB0|v`38o znoq4j<5^IZX7k~C)-2ac;G56u0e_DL&#F=Wvo~BO=ffk3RSRq(tuvGX+zVjP?JzJi zu+eUS@oHvr*{J34Ln+$o^7ty2xe*}4kw%?58nqQ0iC9qT0!QV-f)G)YI<+KfdH3`c z&z(zT2)cwnDa1?EoY3eGXtWqPINzz~@MuC}fY4`{&}nl~Wh5S3b--vi+RZ|~Qo?hX z=bu^0T+9n+MI2y$30fP*VtSqn25%t~uvwXhaIB zdC~0qpWZ86K*BB1v_^^x&5n&>FK+R4*6Z?2n{Igg1q{Abn+5ggEamcOl~O#GaD~nD zDN3KRKZO~Y8{(#$nwNjU96!JK<@KY#jVs?zNjc0(!RvWMB#t^7=j~z}miu@2cTl&# zyxQJ7JKf&{4*J3I$?56&@$u31%~`M3UOztEUrYI+*a-Lket#XVQq9&{x7UM2%K^*+ z3YBazS+15_?LoT%^of;Dxm>9ff!q-Y_yWLtayn_R1DwR9*+c|rzo%VlZ|`iZraEie z*Pm`LfBWs>?DikGS068KKb`OF-9oJj-l*`F-@ktN{Eyq6!=u|zd7O^6J1eaSK;w6c z!0z$k3O-+~9(gU&Y5CJ;sUEj!0gQ#h?oI8nk?C?H6`~A!gIcMSnNYpl3IRXh0L52| z;*sBd&*4h7Hlx>Wa%ji6nAf7@YBWGL^Z;QSk-BQZVnCUw=548{ZgE0NxLi3XE=BXE@FyPLFpp36DSBmSavIQwB75L{?n)a~4!>>ud zN0f-@$-9xC7?U&8?|92kBt^D{G=;X$PP)5SH|K}@cjp%mx0eq$*Vkv~Cnu-9_4A9% zuJmpa!VwrGZhNrV>9sWQ%i0C}=Qm^Kg&Q2`p^>EL!#O#PwX$)ZS zMoPMrQZkSOR0*Jrppt6RrPGMFOi4{XCrEO|KTfC;c@X*}J6Xa)DwicD=>$iFJf5BU zjwMiH1muwdMz}%7172q{8p?D~M>OT2JStByLM0$<7mRzTUa#a+rEsUo?uC897VQFw z8Z6Z_g^Wq$q?aZvVcOxTR*}qlF}K-IQ*;ABCpvwk+)mO)$_WpY%#y@)jAa8ABXuOH zrv$p9+2j7caZDAI1>& zEG(HJ7VO3tTB1AHD=HWoyP1zynr{Bo%&cPBVl-nCnK2$77FG^cOGDEPSy*xTt)x5P zr0GD`D_J&EI=4Y*?ZzfK!d!(ZPe*riT!~EXXa<56r9;I2`N!7_s`2q(IG!o(oI(>| z(9mYH7LNBWuWqhRt}bEpesO(!dVDt6?lv|z`}Lhuut&n(|MYO!+q*hF9>g6c2U+M> zUp+U>;34ygT1MU7G zVToITv*XJQS34W6ZtF`~fB)k2^5*lecfY~3|DXT7-dgG116U0j*DzgufCDrvtsZ{+ z$H%kb`u_S_!Upm_#O`tN8Ioxs9RFBLW~BhounHBAJspH(5-+?l5nW>QF1(MYSNJTr@eXxLM`Mg1|86fE7}-Y?TI4)FNge!0!){ zqXI1uu`p_iqbj5gnNGct3lIj=f)X5OFd&FA^rK%htlpT>WHf``J`3zdCtb~$0sfYU zFbjf2WBgf(kt>uWFrSlj0!_eA#6U1h?zzu&z><@j2I4GUW1GJ>D%vF z_Q%f`^n95?V@t=$0C19>PJD(NAT$CZTdR@w7;qRYDy~Qlhw+Km6JJ4n$NXfBDbf7$ zZxc^O)N%{<=<7eeW2QVHRoSz_CNMYRra)Eu#{qjy0X| zaYa_Hna^69ou3NPJWFW8d%Ar(tnTH49*)uky?U|ksi%=>TIQB{8kuw+@uqzwKy7KC z*kO^d=F|8ay|q#A>Z_Hc6xq# z3JYXc_p*PlKfZm(@$9PaN7%TNhL9F&D{MBU~7N^?&>P@dP%kpKtHr$O=O%=w3G($wU*fH*or;#4(#x&sLix zDvRH;JSEq&=B5@IYzU^>jb;Ul&79Q{R3PQ_RY8tUQf7--M58B)!^y2yD;C1R5=lrI zY`K~++a1K%$Ok>38gR96c0otjgCOFH`&4qO0{yYDJ(NxAEzUXsSQkNwsk7+qVe_)g z6|7~mg=lOA03Yo}KbWZ%a{iFd;K52+I%mt52pf9}bKq8+1u}Lqo!X4dSqoxDvBye3SxFgwHJP5svl5oqEI<6KqDub34J(E8Ew?(pnr zf44ee1je?$>DRIyqH%^a6pEW9mU`HOm%81~poM8C{`%fXaWa}eztPveF#L+vP%St$ zqL_XCe)8SZ_ZClWeKnXLl-GC9FE6eyAMS5Y_HK{%Afj@6d$GB5{p&q2Pae)zYNf67 z^Xt8+xmJXYiqSgulOCuzfi+k&bt=_vu^f)Vr72M;6dTn{Howv9Zm)I#yjH8!a=CIO z;0C38BpS~qAksq9cnQ-#+1_yLq?eDl+G#hE z4!=sVbWS)aamu7TsyBp}8PQx@`LP(6jXtS93?rbN6j=Wj? z@ct=~3{Y>u<=$0gaf3%qCC`m~nG0>1OB5s3^Cm6U~2 zt1XN0$^}liU~ zb)76O8Q91+%9%vkxrm2V3=iw=(^;5(+-#U{ez>E zi<_(a+l#ZS+pFWd>&=VXt?ffNBc5(TjO3(RFYoN{(ON2Hn1B9=XXZ|QlK~TT_VnR? zqtvcs)9GThR;*R}>+NQ}(Qj9}EjX`&4;27KwMvKt7Na*z01F%{LPnlQN&0fRSaNlH z{p50I2*-%E!`+?XJ{SN_H}{6gVz<>k{z9pMl`5pUzBB;NARh4Xc(__lc;Wlk6YvpY zP`G-PNVw(BBr{7&C$h+%H6R+5)17h)=79MiHuzl#Te2L)cxo@y4?(wO0 zK+xbYml<*m=1%DBw1tm26#6jkBh46CR&6*Gr!&R*SawKMx%gaAM6keT*fR@kKq2eKIH~G zluf{vC=$ScLSmJ5N&>nD%k&2Z3fy=EG9-G)0a}PsDQom7pN)R|cv2W9=MpWss8c@U)k}5P%IdfA9FxY7)d7d{5Dg-Y&iD)vS zTJNXh!}c(1Upb%z z28&qmZVoJZs%#_WZuM%F$Z)rn-@JfHDsXqs&W~Zdd46?ud~&wEzkl}Wdj0U?;kV6n zYxQbBXf)Vd73<8*|ax?oZsv{zQTL%>e1u69?thD0_w zp+&(~!dp_Ov3Xs=MmCx7vzFPjb231mnl)A^W+)8k{0xN9C|d-=UVy&z`W&!Z_UYsCCnB>-r^Uj_WPd+BHMitQ*hox+8@!QfmBv+4o;P5! zB+G7#mLNP%i4G;a!8iib84$?P1xFGM<&zOVIKvVx2x2xnyT=2IRu|?nn{;BeUtb;W zwdjCld0~2)rJ5RhLt3?gO3Y#5z5BqLn$nSafQy#vB!jd>B2?H(x4N*1slc=)MoT`7 z1E8CbgK!OqAQ&2Rgb>v;o`VBxI2~VR_2^*}Y6r>+?y<|*GK0jTpJxh;DTTAX(ekNi z_S9G3%~RVPl~}z*V1Jv}&CV=a-DwDtnD9v({tKuOB=06(J$Y`>|1>&2`+V5}d2GGf z2TWBYVAS|4VGCtvi)FK1l@FPmWGpXEav27f%kMyk2kRFwTf~EV*s{?nnG%Meh=cp> zK$O>VUM=_ALGc6wMMj=847Ev)6H8V6Kri2_&=sbxalYN(ri)mj9(Q%unw`_*o$g9w z>*Vz6;`ILR;o|c0Xyf#F_w@4Q>gMEd`{e%e{PgJda=l$U$wVSiu~Z&ay!+|x#N!{n z($jM7*mqG+80>xie1AGz zUn%9H!GyyaciJ7UbhMdpED3R)RsZ2T&eA*^d;z2xI^8&IBQXcWj8*1Hu9_?QY#>sw z0f?TmI^nWU7im+D}_u5VNWtc950nepW|fwj;)S?$y|ZQQVt#Q?Io&75g=;A-l3 z=@z5{fl`Qhogh0#{n4D=#?#ZKcyGHBuV)9P?lA0PDVOD83*2$USU7|l()zGZ|MN?1 z?t?)OY#Wmcj6zDCHzLruNtA1FOM#4F$M}n?WF!cofA;wM7qY~;?-_HB5e<%;R;Jt=OL{CuyrhLwXS$0fm_|4bwCO zSFTsYj9i^ifmt+#+RD~o%aPq!+i0=~t7t^%%4XtfWs)Zs&8Wqb8c+_9R)toma_ay^ zoG<6rPBtMLo!UNWfSz`v0}6x6&NhslqP6a@2@}xa;o0H#@$tj`13WXA!@K(eAZAR*NVf7_i$(P=vO$2{(8E1@sG>Z z)8Bp_6myMz7;^1goSYuR4|H${c(t4IIxwp~KWwJ+gYA4V5!)(4hszttU)n{eRxV_Z zy?tS@6BSUg7{ma^Ho9D(P$z_}L=*++l39m4oKOY=rvx9(?LOu-+?rhvEW4s#~o#8-qgC+7<;GvdNesFB+oe`N;EA>)3 znP}b^iKIzH>XWgvl*ta4oItGH^GdByZT160F`*WR5xLsrX~K)b+PgY9uVbVrSxfkv z{z|R8SzGmIW7~WFXnQc++}kYXIyW_6d_A8gZC=7#E@VTX3h?p8s;q&tDDhH|=1k>$ zw)RG~l#8#2{038|5P(E&spxQ^Hrnj6%4Yd9MoQ0CILtnG*h8A&_(kjalz}HCt8- z4GYdxE?cO#vi+^i-sb-C$db8JWpWc4{G(7%vzwV1vZ(*Z)``gX#=Gpb# z$?g>lu^PSmhlk(JdWpjIMa>r)oE>k)1FlT>2$O{(CfVf6AHQKDI)5f*Sz^c#y#qx^ zE2PbNIHJ}9>jqGDz^?Lmd{8=;vV?LoWeS=tm{_Ei&S@ioxJ``;r(mtBvIUY>qucGq z^fHwNJSo9K-6fN$=V#^?#wU21Dm>$mi}sU%22UjmB&h+$h*hpOU~nEsRd$m=XD0}U z!N?s$4*?~Cd29lGbOmH77Su?=m8*8#4bm&yojTNgJG+B!GoMJ{hT!Tcz-re9gQf`Y zbmDkvCylrfW3H7eW#Y8c5du+M!NHwb1m3rkz;Lfw(R8^W)V1!=81Z!DJe;gYL8K7w z?oyOD;MIE5sGP%%0ESy&s*?9ql7Vf^f)444wywS@c8A6~rUYx#zmSt6Os;E0Vr8v5MO zJn(a5s5Ox7cTjW|v_6Tr5^*jn;&d)H$QSCnSLY`-ohz(0W8K}|;chs#(<|#h=;Od> z3_R39uqzc#_Y&bmH(FdPdaI>+eee2YufNf5MsY_b+iWzOX*!-Qmm2-f`r!>!MepF0 zdUiTTEy?3xy&a4gERjp~o=JBvqI!ihd44X|xi<84u&5}_P4`eb; zNK=(dRS3%vcxkWIDOLxSPCA~BMdImfI6~{?h{^3G`C5vg>U3z2CP z6zItL2?ZM>&Q?q(VNHv;Qkl*ULj#|jq-hnR!(xH*iXR4F0;QBG;`2n_VhD_JI1UI) z%t}ecY9NqV)D{q4nOtV6Mu}R08%rZfw^^s@m*p11Vl~sDk`GYvExACf;LKUqc86;# zsbYJuf3m;d?-Xn6drcj&y|+`_C|En&zGy6z1s<=Op*GvC{ms>=#{*fPFgWr|xZhwl zc|rA^OJoyS`28o++CRS%2vuIuPh9N>bFUw&#G(fM* z;SDD28k^On#DIw!HON)(|N3-dY~s6@p!xXgE6Mx_>+44<=IDo6tao&g_O_}O^n+2s zo#$E#aU!$$?kxj6yb=ity$25h>0_@pxSjP{MVw4}hAMukb;`k%?N_@3-My@0US!YW zWVU_Ss~uJ&&KQn|_3q2_n}gls zF|Z~&-FkUtZT)b)I@qt#_2Js~W@GK}HwcN`-kh(kA6*=u9G{(>T-<*=**o0Xy**tW zu6O#IUM(1hqftzvlw+YlDP$rcDQaAJjh1r(xI1?`jeNC{?+;@X5$SdM!{KHnnDEdc zzbBi|MUr;Cjc^5>exn9p^;Eo(DRcn!-(Ld^|L!Fy)xo85wRa0K)r0HL5dMb(z`@$_ z?bYG=@zxQP06yIw?jE0{Qtf61EIqN84L_yPNUG*6#W+(b#V6Y(;7z z7xaKq_IfVqsV4?Wx!ee70AyZ&-~8oA zg$=L4c?D2&)=0z+iI;h$W>Tn9K=H!vfx#CfuOaVm4F&93P)>TVDY!K~dpR=pR)o%s zil2=B{D=Q@_U#Wc>Sk4^pUF~meAJq#wwzIhWx7Wh3SK?B=k}7OgxyEfD)29Vg zmelg~5U(+CMM8|jC!GycHu=@p3{|EJ&*DJ{T4J!&rqKR+?qblt*{WwqQQ`XL{3M?U zm#t39O~(tcO7TS^`FtU;AW1Z?_qWQVCSPtIot?lp|De_EbT?pZ->cNB&1$n#$oA^Z zwG$XzLV@`f5~>&1=eO5a2e-f8U3b=Y56&*PPd0Wl!#oMwi`09WMlP0V z!LX_UQ@2=fh2?aH1?qp^Tn?U2h;nL^OL=k^Xu!~wX3^_kASp>J65+3{@{Z~ zc5Sn>cF_mpMbU}isf5iPuv<(%(5R zn~ZmNhg<6#M~8!r)4ik3T)o|aw@G)i5eY;i;nrG!bcGvvUm8HXF(+eOE^gq<5tIN< z3aJ!nv?QUi!2&>M)rqzKs9tDTkhz6Zb2A*hLQ=OF)uSK&^7SA7#2cL>0v2^RmOZ>X z-PzqOrdkGWQn@S@@RYSpJ=Yqr>9k_jqKjM-C0#*ExgaNiQ*Fay!MSfy)ySXz{8GRU zHP15jI2E*snRQ4oWHKu!rGw*Q*@l}V-43XF;G4JV4b~f2Z+|1=EywbOAP(}y@|s`F z^S6f0-r3dJ=5`5SeVJT;XJutG+Bx0p*9KtXSv$JCy?%IrhvE9*;NbH7@Z##~^y(f; z0p0HE;pOq*;AXSiOpByna_fGd+w1hn7gbiNu@EuYm5Xyvew>C?b3L)S604=4-4_qk zo27W64kGaiAR>LfSUee}eKr&6!cA_6tI?>{bCFW(Y=5hDbba0~!@jF`c)EY_@nUan z^W^^O@)H2EPWE8aZkFBAiiEgA?3^vcV_Ms|KUfJCnYTgu!eeHV?lwLpb;W%{p`lJpyF4fpocIE)L~-6rsWXfpaB3LW$1l!&y*!CfjRN zdk{p8mb4UriCagzm;1SFt<~A9*7~t@b*+q-_V+ehQh#ZXZ8ZC5m&fb7{ahwl2&M|f z4d~t7fE2P>*g4%ly}r7-g<1RU&e_=kjIDO}kFSn)cJ|NC*H(vXhr^Y_)AL3nAXJz! z4>Z6r!U(dlT0>X$+mswRcYbQ*r&s?UMeo(**14r={-NoZiN2Va=!m)K?um-(s;E9j zs&k|xFN&h*O)@i?-XM|i-g{sJ8^DJ5-h1yokO`NG^oFEN)!i(HZWvOCB1K^D?_2AA zpGT9+#&SA)5O}#ZLonZ|wDOr;B9pKwwN|4ekcv3q;{rS>h+wk#XfRbzcL#&x(RjGH zoDR;0MYv=Y&p&|x;fZ>E4YU9G=;-YI&GGr&2S8_>FW~Y8AJvcd<6}6+{(ATO`-`*t zo5}V4xf=_Y0tk;O7wr;XZv%}pB893SgD%v{r97U5y2q3&+y++=@{=W(QELD#veays z!#^PtcqZhKN?9e#rFy4EZzQk0enTh8P!o6<+Ari!+K$0J}{O=tk($3iUTSi)ndYFRY07-N_^{!FR}IH^;Ch+_f@2d2M05-NCIp(+Y)2qIM_6 zNdD(Vrj%Wo9)qOKkZQ8zJ!g){v*Oaf42ed*5x-}i7R3P zSDI42F;OYh)0G>|$EO*aOYrc)A@JQji$AErQL3K$LDvmGOSf6w}1Q&*QnwUqA9H#MkcpzfY=U2 z#4!FqG(si^ewjk11k=!%e6`(eaRy^vObHQw@%G;CHUsd)&X9>qf3?J=(nV&*4j%XJ z4bU0cY|uPWxu{LTrSKe7mJDK{f~{?w5Wyf)hoVN00~L{Q??m$FOEet@ct2w-#J0Mi z+u-+tv`XTzVd0S7)<_m=y+sq){Ix~DUMNi}nOd+mY4Ui8&FTo1T(F<(CE@B&$%Lx? zX)Bs3)tlA;_aDA~u{J+8D|83{@-6k?r#D6kQy`Xu-WsFq98wPs$ULvq9@p~(a@NY; zHgQX!{DDc9SF%DePK2IJfQG>*>2+=u1=R^Se7*{m36vhY0TGB$kf*AwW{rd|01KX0 zkAJ*Fqw zLv`i@k}Xj-WjhYFKx6TVjB)kaKbE&2{PllsWYvf)mLce(YcF3dzuqG7RN<;Ef6|T{ z;+0CSuxJ^~8K*otoej*n`B}d?YL8ADnY{X7ZI?%0rMufl?a6pNo=-cuLKr$Pu4ukg zo}G=`jc97r?Vl{p&p%yk-rt`0C-b}WF?9YH7xy3T&S#Jf7*)&FPBStd6b)`uz$g?M zEJ}?8@>=?!Ka@vIdrzR@f%bJGsn`K~S0he0uwmClCYqgl( zVby8^m3FD#pUpa*jJuQ!wN8h*?hQ1mKmPXn)#9W%gAeS-54RtFz58&n_(ZVy?Zf%e z^&MmaAPDg5AFyzRmcY$qa&~n&UyMO0U@@A|C|H?$Q~`&~=F3c|LaksjflwoqxJ($R z*0*>h(&5e)Q6lHa1E4FjiOE!_8nO8_YW6CQMJ2J`EfeKCYkNd85o&}Q63Le18nF*)HZV6w(BrHvo|%m4bP&+y+0z?sVwJ8@o^v=9UBB|>u)p(m1@^xu*HI6tx>5I zTNV8M9Rl^)xzd48?D%NfDMuqPTnr|w&0Ze{^@(8ncrv*@U7P`l z|Mw5~i|*0I`+2Kg?_J#9T-{!c`)Ajur;}d4k%yg@4^nC{J%n!|UxFGCr3^TnD0%bc zGD9zOn7JGd=@njRumEZwdKm0)sgvXBBx44noyZ{N>-;u*&z1=>MB7(3mC=cd67vHo$XuOafiRWC23!%^H2MeCHjYWdlkiN{))r5GDBzNI`C@6z3xHUFvvJ|+%x8mtb#0q^fI0N} zK{ODy9;|Y0N*vo3^g!`eC?Eomjk9kPBw*l*YQpfS*2j{ia_u+;JJVjhI;ixs6ZHkmgwnpe_jGB3&Wj|PK&dp;PnTo!*2dHgnS_gP5$tB<$2_*J~mBNs7{ zbfFoowX<0!Td6_pi4?|y2+qz53-Y;NKi^iZEkAqva!INTg#-40!xG>L18gOLQ8xMjgxe;3et;mqJ4LLa{nLydC_TA zhL<-VC&SCj(e-7o+v&7gmoRKSzrDJ;x%xC|h36|wvrc*t4S)f`XxstsTQOHFWMX1E zk7uCp;J)N^XhcFFrx2O&$I7H^t%)^=48KDpOIZMU(kZEUh0SEN`@&I+L88}*gd*Uv zh%}6Mn|lWo8eQ%Y@Wld&%ZIs50;xkO;z?yDD@Ul_*%$24QJFgAG4NIif}o8lRtDWc zrPVGK1pI2$FXvcwDmE1#OtF{<*ykpbaa7gn9>Kxud^Tt&8vZ?B@Zq7%=TXRpC4)1s z`r#k@UUv)44o1mp3ET>WOekdX#0@4+fWE`TPy$@sqh+tsg{{)Pu6!|Bfry|1@USwA zUBl9<8QT(%;OSS7Xi5&ALgawg&6>&ALN>tIu=OTHO4X>9PD|JxGfUK5o)+>COhrhj zv5SNTwE>!^UbldKNTG0c|K&3R^MyPt_ltR=b^PAy+KVSIA8l{F{>Kxk{)az(@x|Z& zy7KC4foye8g4mshEbi7mg}FkcnA{GBo~k40NbIEGfQGQPUTtqmkD5dE_Zu7dy+@zD zd-~18=;cx87`~a|Okz4u&~){a#-~=3!*S<2KCTBM(Lx`eAySsC_|(e|`QowsB z#tbGESz>b}3IUZ+LQv>)nUL9G1Glc6L=@_A+c?fM2H-8#7EB^k%Sjq3M{5#r{D6=N z1O%@k&|*J?lWJ|zX%tKjH=IY0o1^adq#pGNfY*;1GcmI-p;yt#5_D%>R_1f_vsu4? zH0$I8L-2REYEi8|NnPI*!v!eV8`xwvpDilExqRxj8xL7V6CxJ#H|+dFff2KN?7VFv z4Vs@Nn^#QOd-TfVf+%JrlxN}DT8&1b0x29v$z;i8u-k^txn70J6#(^6uo-5pFNw*P zzg;C9eDk**%7!7K2~h}}Zzx;>o%s62{;r04`0T+d%+deluiyNS|MuVhO#Xa{EA$B& zNYHMOudTr%+u}4q%tA(5*=jfQnA3!^-x6Kt9sj{o)ryq8{^ifFzWWQ|xa5No?PxUU zH2f};eO3aA?E z(7U+)@arFNO}T)s|M}v4+?Yb9>hxkhna@t=msi&?6*wJVUtdjo-2o(0Qn9MX;)x{f zTEBzD*jRFIN|Irx#~Q{|yD#=d65ip?(=We$^x1b`zkT-ntFM3l;p<;W&v({HdC;NR zoOXnxHmj`?L8Mc#5Ur?W|aK0dmMiCZ^F@O{=gG7zW+Kqbm}VagXQR_!JemAc~XPWAj`G?|Ty zJy0&Y0kEp|v+0!cPSopm=V3Q#3+)q*W@rdH0*u0i~(&31%*YoDx6YaGiY2UxgPV_B=|Qk-|?20 z*8ci;Dk>s8`RQBEyL}1sfcf$PNNM%2|M&l1efiCoZyx;XfB)-0UTm!BM3(9L1~p zfR9GU!p`AzaoNcBE>4GqQZ@ZxUVK0cj{@9##F%a1qkSiJ-S@M2!AmEr|(vLu5po7jd=@=}cWT?aV_Wg-rTK;0xl)}5w^A$ST6 z5Oh2NovzS{t@cd9gV`cZDR?tvBCb??z?7h%5eBTf-}foJMrSjb68`2ZVWEWbiTJn6 zPc~#wnC7G2T+(RdJ=omdC#%9q&W|nre;3ZIDX07B5TPe%4pXw;-Hb zDCb+9H0F=l={#6KAj@2#6RKW5IZ24IK!NBl6rxdg+CW`-{M9S`#^?X1l3lSmku+*8&r1iDOP*--O+(7n3WU64JUIQ9>zEUr?&+kvBmuJ)22^>P- zj}z(U(EvV&x1D6UXo~myT>!59dJ7NsyN~a$j#}`nAHZUGvAF%?!~EhsJo2ZF#iH9w z8WFo)Dv|Rv3N4GoV;xe}D2K>W^5rZ7g8>m!Hd88-v3N=$`I8n5N>XN}K!K_iYQEZ$ zHZZnm3N)B7i^T*1PU`LI+j(9;zb99tKI&v6h1tJCOx2l6%?KG2f*m55Zk0i8(Q^Z5TEKCcT-}0Gu8jb$(?utv zD0y2&d5j$VNXgX4Ndsle>@e8Ee1$+e4S&N5qt!-hRQ8zySErRmOT&~p^aAk8kfk!0 zRp!+zkYH(;k0+vm+`#kh!GmvqSYyBtF{Ip(8AJGf|!~_WU6!rtN-}^%ctzErMGy-Tar-7Wk3IsB1qBj%=I7tpSAU` ze*Wx-?>_(Ue}Z&1ks&lWqRDJfbfDyN6-Im5Dw1PjeWH>oC0K#1V4Z0tuf9Ft%D9${ z^6`%=vY%<0#L-}MRBuiCnT#w9my}x5jOBWRsNQZ!mmy5zi8Rkf-DE4G4dhzQ+3D%U z<@wpkumr^EUa!_49xW~|Pww9T3W}&=v(cJeEqZeR03N-+Ji59+8C~36!`mNT|F`#Z zz@98lr;}bLTP!w;ld7*VKFhiF7Lx@&f)V{dPGAN&0H<{2JoiSF@9w-(XO+fc#~mwz%wNlD=eh zbo1-gqC1E2>aVAx`RUdDB%Y}kbLW5j@o_f(?Ze~}b`~GbJEy0$QQ2j*TC8R%Q7ALf zsT3NX%O@>w(YaC;pUac5LHop%9PkBX0F8hzXPd=SX;3;<2!8V|o)LN*cs62>d(?aY zCUY5@a4cE2^ZBqJc=^qSG~j>wTI!8P&3mAo6q_AtmI)y;Eg=!tp|#3wX0a4N$7&S~ z+;wJw(yVsIbB@G=Xm!uUM z8ZZFJ>P2+6L89vefsVio4{m(!L^ z*pw(lyqM(R@2_{au>1~fBzvc z%DE~FPqHkeiIf5g?&0#myA9j{pRvJ3=v3|MH}4p1DD-^yZ-0JDSbwugTzT>M={7;g zXS(9ZraBx_5Tzk6ROK8p$e^i&KImltQD*mW?H48=v>SjX3;LP+bc#ml@xkD~1^|@t z>97&E=Gr-@2MSm@K8wXRc?+3%saqdRj+(_XWXn3e?)dof68e1eL91D;!2A8vAOB=_ z@$voT>1o=Rfn&sQHXWaix{FUBfZ6c?5+fI2IEBsosM4QYFD}peja;T$YUE=82|l}u znjE%N(ax7h5r9KJe$0@X-63~aBb9HiZ4yNiuGoyhMapSV@DDafo69fuj7G0VZt!^v zJ$SSiI^E;y{Q3-xs`sE)hyT*;)uQT(BvRD|c(F?-lg{G)uHOSN!Tqez8{b?FVLo0? z_U?cGc-;LIY?*f&qfw{S2Jm}WYqtfhT0KG)Qs^SMVyt}jd>79Wu*DWNhoaMplxD^j zOv35w0^z$Y29L5U;II)>AOI}_Jjq}W=~1P?A(=PTR)5S}h*~2mrIh*b1@tORq&EW9 z*5em%mmchiL4a;IfO;3xqhzjH`YGEgp>MJbAQ@r^lNJe>qJsWT(dph&+loL|8bxB2 za)q>o2{ug`ZO|;?5rvk0s3T!G1~NMAwgS=)vH#eIhBA0(H^z(nPv8%8bPFL2dYA~>`IZr*xpB>k;dTDw5zob` zVCDPm`WzUNHbD!S-#<)%QM|Z1YlVU39jXs%y<*sI z@|cW%J&kLH$}wU8>C^24v4EujuqlZtSle3qZd)orWO}t!OvNE88AvQx@KlJG3^+2^ zYPPVfP7T)-<}d@0vXcVDN2L)kX$%gVx$^@-LwmlWU&@4+(%wixI99%pLka>iC zvkxIy#C*&m5+Gt!Z-_YEp`sUepbE8<$McjSGfmj|CNn(XcvhFvACjiL#_Vz26*lU` zJdFnPL9@H)9`!V~c&e<&?*y{dv2({rmH2$hePDq{D003DamfjKMCXi#)3H1jE%>a> zrWSL+Z(3ukw4LT^r&0?pKX|amcLt;6m6hceKOKsNgjY04DHg!YMr|-)Mlgge(}Cev zDbd=3MqNM%ae$3=@JqlxTC^)rb2SV$q%`+eN%(i0%Ns&Ox3eL7^!bBTn_n%~?7ZB4 z@x?NpCZ}@!MzP->kcq&;9+8;RF3jRm&_z#dpF%FCRz@OIgB`^kH*L}aMGHU+fH{y_ zbZ1#-#%(s}b*`Yl67xA64tTDms?AZOTW_{{!)d>hi|3-{?g?D#&rU8bE~WsOs1C+Q zz@wa9y}t$ieys|@l3eBVXnNcO3&rC0W;Q#!Ufllv;qva+`4||yAK#Bt^|SM{NvYka zc8|KFPQBdiW$Gzk*p^H1SKb_mOyR=YA4vFJ9?dM%!Twi_d65GKU+WG=eE|V{O$N>WA}5t3N8o!;Kq2s+_>s?CPdpxx6{M zoj_kJ-R|};Z)c-kYWjXYIRcdSxCKY>W~Wsfj7veQRcphn3b5aSA#!I|2owu0TMU^u zB8f*@ef{tqAfo7GIgC?O%aW!)SC2%`vSR3PiGjE+dH&hUa^&08J9%dQTdr9 zI>_;)B9@lRp=|BJViuu`A&RO{d-Oo6(g_ZQ3OY?~Lvs)yFbjSgV3xQT7Gf;OJ9OgFH zuB7hiX_$@-?4oxokAHc)Po~S5w9j9^v!8GsS^-hVkjFkrQ+Rmx!*Y%MCF=vHkk?9%oYYziiL8SEng|c z;@wK6)$6nevthH*fqV6|RG5sRbaH-i+5`Vztk|DVrLSM3od~3 zb923bf&On$>$?4TR`KPAC)fRCYmfz4=Hl$QF&s`$=G_^9*UqZ>e6V&sA1!9rpwfc3 zM|(VuH%FkAhtueOaaP~5%72t1D@b2DE?~L2k+MQacn+U#GxwGaKV9W^`4N! zQ<$9iHzZ9U2ohD9YG>{BHiJjo-NZlr;%|f?6XL6|+Mtt|TLRFIMmbO#suZWjpZ0 zS{}c)WA-ToYVpP@;pKC_mt);Ak1L5%9HoFwO817nW)lnT1&zb!h&XoM$pvf-C?@MH zISE-KGz%%e-VAO(OEeIOW_+b^rkbpV>p?SPLo`p3&3g=p`Msjn^KJoZ;E|-j3qxH5 zg-C7G=)G2dKxYfO5(b+a3gO^R+9$B^+c*MVEMk+klv0iW)E){pfk>sTKU`H?h2&i& zRmR$SLnE?ykT`Z}(6G%|v?w8k><;@AFer-}6n@NUk#22Jbn%2rr10x3HXVbiPzC%3 z8`c?A+hw=z;Lrv8&rHmT=wxEd2*llVvNIf%8ii6D%1yNy%$G)GC`XQ)%`V*dCr8y( zJQ5G5VU-Gh^&4>KpLS{h>&d{96{1zwcQEt6htKEP-OY4zesy(Az` zHawln#d>elEl$oW`D!!*_H`wbAlO_s8q`p}5xL|Fo!R2^NTpT*!0-%+O{X?W6^PTZ z^XB;`N3K!Bc*B=0^xLCqr$3m^&W?`mVfWM?44|KSGrEBu!euj6D*A#Qs30C+UUUl; z;JaPS+L`3|{oSMvfsf;I?ew%$tkvL@lO0_icP@ruo6Q18MbsUne3I0%ad58cU+#3MfQ`i%J>mEa(v!C3=6*uI9t1RhRMdJQ|TB zp6z%Q9D%Ua&YF1Jwu)N=T3yzj%caGN0XxkOSO8VxGJ!;5UbEir_D6%sY#;$}{t|=$ z)3s)!QE5*n(8$Zy>R_N~6^hkdJeBfUu|N$XOvlr~pwNSmZ@oJx<+804sQq2SvGnHl zYJPNdc03+7;XyncFXk5j1{%U`s@{g#=L9}KjqcQ8Yo3nBNL;7Yp$C3B+xtty)3$H-DxmY=ab>Dzg?XyTDJ7j?dc4b{*7+G(wMh^%r-gcRV$Or z@kLwXGeT%o1=LOkn=Lbm^aw2Ul?o<`S_4kj>b{W46*J}FdtzZGfLy4AY`zHdqkL1q z%%)O|PA$UR--ErRQUt}XY``E>AS|_61{nal)MnABbtWZ~#+QltOpeRLAS(oL!VM@T z_&s2eBLcANI#B}=r}Tu&ac?8ziw(|);ZDEO%(&(1gB{`$J8EaIQbb|7*9gq=*DGQV zRJ??A_Lr}}eMH;+>Vd$KGjs9@Us|Hc7afAl#ucXb_@tI%IwDj2^S}Mex;beTK008i z%j^RLzEB!VKpV@HqS9zUw0EfV1+2|%LO^@+=XdbySQB!g8U=bXIt_8E+$ILxz{EVc zGi@_}vZg_S(dRKD&|lH(SOU3L4c`NcT`aLf^BREbD%#HOyWPkCiWV#y|}-bLH@a1DpW4U zjnQz>8(##?ozps$*L`BlUvjVzN5sr!Y|6+SF&7C-*$j!>7YMmB34_{U(JFVS)>PCg zrXGluIxLipgtEzOwmv+n*N#sB+zOzq^L`(Yt#eSf+|K)pyQ5;G+OButH1hH62&y>0 zUG(c-d%kvDYjn%nCn&c!;8N=iMXh-5|;g+SM+1+YZ} zqoaZ=mGOm2(5uQBToIjhu($mT2MQoW1te`XxOXjVy4=q9C?y7^-s4w&!UHLF60I2% z@eN#wN+naV#q4b&o5fXX)DewRr8Bcs)i{&`=sE%F24+7&?n4EZNV8W9L;}Dl%x8}q zrE0n64QkNM9iiIgc0p;&Z(vJ=T08FVEJWoh`LhX>yNf>rs?^##fG%v&;wXohBDS#S z9YLG`f^B}(@66-GpMLz?BXbtpA-wr|PewYB*4&v)$O|&^lHFv*Ad?`@17gkFE!cIq zCDtbWDa(hLVIPKrzKB?ChG9coX9RqN*$E$?ut}eeTlA;_fDUF3RVXvacv7)dLXlVU z{t!@OMfhzxV7s@dM&`k8$e)luCXzU6rQ4{rD3mq?khnT~+G=&^V)1kZ6}eH=6|;ze zpd)Y#|H#wM1&&MNpv`)`@^TBx1EhSKsL5&5Cdk9sypHb7B1gMrm}crh*n-Bw!>p2MG{8drgS7LrQU4}W-Ya^ z5_Dlo22V-d-#x$+NQY|zI*!GcDh-Z+1wlD-L<2ZaDowof{Vz`+zvYS;46;xt5YmXs zVAv$(h~>saGGt4IblkNAJov#-1E0LRCj}F`RDd#sn8oh#pk|kH=MV`c><*U@RfIJh zBw*z@bW*m#EmI}!UPs)6`5nD#t57c2vawjC;K-HvB1hDZvZ+{r1O6iyV8>nT$6S+I z7R<&a+nYpjT+iW4H4KhBUJ2JT?X=#Q{+2#NXof&4mPiEgKQF!bR@hBYUVX8~kP&Hg z5&S_X64RVD9IBV=rMODrhEYg5NtQdD2=3{(fBR8lh^q}o%o++{Jf7TSkjrBxk4A2n z2h1F$$`2M_S;Xxx*aB`j#?YI+0TZ1D92d~HYen01F$>2MgSm$5!$lTR?lMy(5%N(L z=#*4y)TQQ8Bwhg4=51y)V+}N?akWTBBcoQNk#MLoVLVlD_Z1BEw4eUc!V|%HHZd(a z#73_>WcFoK#ab?wDgz54l8c5C>0CPEa5{||DdMP?Tg5^Z=ur)jOItNkp(_no4=77` z6RFa?Qfb#KF#hlN`m@V3*!lzDY}$g^R{v;zc|GoRFQL+O4QarWcJpjD1-NRnF&g)( zunL8%xX)-YTf|a_{pW4`661h>utf%>o0LTjm`ysSRL+A_np4WAi#4mvh(e&pOmU|@ zS8TR&jry>2RLsJm7ouQ|CJ=vqe?QDsCzrq*T)+YL{rgthAL-9dNA>o_*)hy9+Q*6T z==}EXdOW{>zc|0h`^!GaHTu)zuFmdF_|063K)m$wEi^FKaEDvZiBb%ZylT18 zj;N(Lx?T_aR?<)J2sj*lSNah4`~m#*4eLQN(z2+oy-xc z_~1tcgP}7V^|(xG+8&LwreKO(4kxxtK-_ZFB+)B8dTYvxYADhGm4jCW_BE+~wc4%t zd>Ro|91j}o+JFaDMvK8p&X-KlXvrvNjYvO~X+h8;*(YP?N})ShZ8Y@hRLC65JE;DY z!^D40lDYGM+JHKmn6jmc3$RxkRK$m)zQvewU9L6ow#vRj5cO zV+aO=8c%{pRH-N|ZL(pb{Rpz9O1zQRqbwGp^BP^*SR$UTMH2a}-<_-ZJ~`TR#nQ%r#!+o`^T`1uM7xbfwbbqbPbOaJpUirblhgAlAbBR2 zpymbM>fjoNo*$sobTv7i&j&pqt2f6-opQR;=?uGxs27FxxzH$}$s{UM%;H5XGKtT< z$^(PBh$h3VI)O?cS6SiZX|pL@R`?@`^rx{On?J z)$dKFps%_-g^J2Y82{EQLrB>iwqkno1qU~^4 zyY*~+<6!00yLbCb&(@YUV7AC+vyCbVPr$-$Y$;d({eQeDN1Rc`<&S8`DK z*z|I(Ri!~tK26n+LRo2lgBA?uI>R8QU@8=T2eu8j5VzP2r=D8Md*n5O$Q)A}Em}iZ z8_F`}KD%1!!15<2IUr6M%;6eEe_V`mR(ID-QL5eI>>o$q(kxM|B0Ao|dP=pABm-6y zbI5D~FuOaGEr%!tL0H=NTrnx4W}ps(m_^-qvMrYA6lAciIxSkANI^C@5hJ1k3bs4K z6Y5Q|x(XFAfq8&Y6o*jVwL5h(5lxA>^qgHbXJvcs`Cq>Oc@us8mv`#~nO3QY1R)9p zf>0sNfeLMTHj#!SFH<&&P^ICE1F@oQXK7m;2oy^-vrQ%-?a~E2Om=t}DG&M~EtkpA z0fyZL+>KZf23&;_oC4#?Ogx?))O__qwv>C!XrXt}5fK{SA+GX?kLV<*UiUm42PzCGF zXegL#HA>A149t$<1K;d{e*kjb7e~Vr2+^F~++U8bZXud_b@Cp_ZVZR6AL8kAYy^K0flAcP! z$ye>fN3WN7NGucQ;56x?)RJoSYr0UU5%2^GekW5?4x5bvuDVt;6l?T{PZ0jUKYjiB z)l;U+Y7VFh57OP2xW`WkxMh+|p@a;9MrwnF8Ny%#2Sp?|N<>PRn6SN8Y=C3ZXsiUG zX8B1iBaoQW8kOK+pANVulcq3jdTn|lSD{0Udejw3#tZpy*yk_??G{+Kh5~ve762@N zJ0Fjz4`020@bk~l9zA;c@(=?aO}x;Iv|-!VFP5MW5KrfF{i9JcQ7S>fXV5EkCTGI| zc+F35&LEC;@#}}*ZthMS)dqwG$K@XEFafm8BnE(4+!|L?&l~;YR_DO#UadI)ljK;8!T7#onAe{3smB`-9S6d7- z7xT(^2A$WMETcwq){#+{Y%(j0hTo%+WiqkaX*CooLB9~bn)^6315|3Lv;!d2<+W>g zsDp(;EjQ$LCk-W|RLX;0v{&MG7(>y#$)MpAH1 zA#ixDmDJkZg&?eR@JKG1hE%>jl8_r44Ehl|ZB&k{JqPAR3BR0oT`t zrE90tC{`1Ne68M@0rR(-kB4pXMlIbKL)m(Ia=KV7fFOAeld9{BUag}*Dz+N6qc#MmW^I`E!Ypkv9u(4k zyCYKQ9YX_rcmfL6n~(4Bt{1R1i`T~EX|>d~!5CL2RWdkwlaji!LFGaXTxZas1}$RH zZWDlBrKj)nY5Q*uX*4`u7jw!<92!Hx!l`s>E`_%JY*lVU1bXU*76O7+d(_I2iO6gw zL&yd3&c^F)3Q5hy(RUtF!sD3Bs*!N{a=2M*KpkgQs$^sWU&w{(9h}sW*l{4yER>EC zdVeIJi9~n*s?3z#p3cAo?crQ?SdM7JW|Pesn)RA3RF(sKnK>Fr@_&$_&JTNAFAvbiA41J(LxU#`A>vds+=*k-FKlSo&*YSA?4%V$xmOn{rzeJ^Kz^X|LNJvjqLDUhBA$(z+`@mO>swLz81eMEK0+!y0))7oXF%~xXg>I!a21r!~UaEzB>uhm*c{!a;dL9Q=Iu7vTMC!*2HUs6PZ`K(|xQwm^qIi`(r2m6IhtVBwioyHmmY;k(x_ zmUdyMXc588(H2VDsN}~FmzJm~hbnh+)lSrGiAF(W5s$}U_SJ*$!WEd*euKHgZ;)7l z${|$1;Jegq!Ve(RP)vk9$!fOKY_$8H#3@u20J#DP7ElG8-QQjRdex6X%C6b2=G?u4 zO=AI5DiLoqiau?a$UH=_3rQ=~?zJ+wO8Oz2MIhjDERGPRJi+;lBq|H|-uQPc*6xdq zr3YU=eaZBoTo!5XV3{r1ryQywL&brAhmN2QE`!4t3uPLkRwrYWt{N7Q#_6;s%s@R9 zX(X~;teMfP)eII@u9afVasc(#;ocxI?;@#SIHg+QuOC{5l~TYRN<+?~*Q%cM>7kW6~C^e#Pf!n6bktV%vZpnvkWAOF7bw;#10 zhQyu=!Bo}{G~ktWcRkE7X*70V7n@AQRyxMrFqAz65)UR3-Z1QCV1}2lsDjlvqK95B z3NdYK&A}pq22o|Ois5l5rvWp-3I}pEjP{j84ypzdA`PRkc3$Il`5^;|Xtrs>e!U@t z>Xme>U2C%;r7CP@g&|f#Ug=P4tzeDY`f8(HleuO?7?*kil&)>*8__`OCssZ0PH+p&E+Dg79{G= zKxJ90zzMel?Yf)O#l`LMpi)WHy8Rgpg*v$u=xi6&zI~}@Pwl6H_UZ51L16&*!qy(AZKe4V9%&T0Ua;tMI!|ZhK2Qf*~-JWOvI_v zR+C|$DB2#K!J1d>=oiwJ#xQP=sWdqD_C9WFYh!PBi^vs$7}4v?^*YV4uUt+glK?iI zc81NtVgfP$LARI6=d$T|I#tf6675>1o=!qNZMrz?7mGRg@P-pJVC>()qiQj(r4z|Y zF#}~%NR;MJ=Ck1u@J)tUlgXcmhx3hE13qZ=Mxi;G9Cdota7d@t2%mnjy7g{JFD8?> z5BbRev?a3zjK|%?n=uTdY(2wUq$@b9_Ur#|RqGA}gODI97Rm+4ne=8?FvdNfoqqh| z!*74w%-e8@0NPlxQL0bp!ALq3@I;g0K({pNB|9I%Tk$)PDn5Cw-`~B5p7r(F#m(*X z>|{DfXFNJv$ZG^06I+g_FqmQrVV|UcX`oC7_mvQlW!8djT)CO1YW1!8WYNTW7rRT4=kVUn|%030-VjBbO|>5GV% zHaD1&MN+3x1uAn>)JY7x1A2i}iEoq;if{&gX!r%?@S-`NjsQDHU(l z3<8lm=<_-Op-SKygHe}WgY1a%73-&jHtL|QQW@I6{-58j5%!)vBB|V-xGexev-#&$^Xv2XccqDMkB3&LI!N@8eN;*7x@^|0=vc{%ylw{Hd8<8Vw*^Pa|q|=<6a+jXW4|$ z1JjCFJlC%^U|R_pZ~&}*{OylFe*bs}afJ`R&OjqDyI7oqqo|S%`W-5RKNr)lzQuu} zfrJ1i3%LF=z8t9Guq~9o`|0J%%T3$?OXUp=t_CRAUp6bZf8Kukjz%G`JQrl-&ki7I zOJ$Jo3}k&9zbl|grBIm*(AYvV=@9Bx8nc2cSprj)8PL|*RMZk_*Ws_De(X?alW^dC zDNnVUgB0c|S5N|qVQxr3lc+LdFpxPKc$jMkhx8G6XGN})d{6lh!u zxX!~H)1p^8EODqm8YEt^-W{-`Ccjgv532MsF5**~ozZ;Et94*Hui4>+jSM6ZS$u#P zs@;CX=h68g4d6uuTuIu9DitUlFPC!VYn#tsZ{TfAp~GafDkXA}98ijwQHMfWP^mU5 z0Wz!*5f8}g&z`?n!P8_GuZpB!!u7|Npu-V}_dy?F1!$t03!-bQ#em3VUb)ojwD+qK z7d$-Mg^)LHN29|kZ2v2t_`Z2x*;*ZT`n_rqvUlA=I6Z&=$AA6@l&MnjVj@y1pH9ow z={Yc}F5pF*3V=nq)vv(-Xm$w*snhXvRFA`RITec~lJOiEqhUh}+Ol#MTwzW{)J(y> zef#pM%3}sPtwzGsk~bJQ3X4QrJvcZNk+@ofYM0PfzQH~H^0PN+I1o+R{W+HzcnOhA zt5L0IJ%P$NSFFRAsS4iovqh^rIEF321lIe_kO?#AK-lgpAJ6XruMR!y55NBb#ny`t zA5Y5p&a~B~T$)Zhwuu&yrJ^6p_x? zJB~qp-fDqf02wmh`y4Y-ne!cPF0Jg~-~6;Lk!vuX&JC&(6DAVx?GQ*zx=>Cba2*B; zewP^0TjJ4Ftq}@1e6UbEA746G6sR>)cFSxwhtA_+bKHE0yqKdQhdZYs39JN;ZG!HQ zZCb`AOSB5T0%xVrZ{}iyhE1!Ebs#WR#X===1l6WkRcUf7EO3wo!2nN-vSBF#=oO`UQ?$QN zA(3}{vG*bxLSQH)ZbHhoeUuz!s zx@LdO4Z)az46|D;keW3jL>>mHuz0Q#sPxj=ZoA+x=c}z^r3ekG;|WZmdf9LeF#QlW z?E@Gp1=G|2pQHDBk}Ey)^!@`~Z-hb-x{yK}p_L+}9qnp&IE=ZNnHZ;?A%`3`n{CkO zZny$aD4={+WmQ&HdhdOn^m)>I@4fflmv^Wtc#wOi7Zbc-1bG2AnCG1Dd*9#hd7zAP zc3Mhjvia`x^7F^TM(Gra)OYjA?0A-mmSK8z27QprL1!=n(<+RzhS?+}4GPt8q?D~@ zQyFhOoi^!he$)xxF#->a#qxwn9o2~Ny9&YvfXFF`U~^Ggk#lI@-rH3x9zT8X{a4@M zRVugH6EK@}2EEN3iA3YkV!)C*KOYT-9#YlO%JD1QScN& zBms!kZ*QjnwfcN@1aW~jU<9CFesb37!r;szF_vN$xI+jON;aQPmIBX#X|PasiSXvo z!W*7d^v=`kpPcb;Zx;q zD;MH$WL;E(B!d>2tLUoMQ_5Il24@}!+Vs0Voy8q0_aJZa7CO4;$LEKmynf-KGh2-X zQ_-Vx8bToTb_O{5QV~I;u;`slr`p6f2h@y>h^T_7Cx+>Vfx>ijLMnP;7b$x z@@zcr_F?p2Nu^5dTBTS@x?N%TBp0)Zc(WVUB4%UOqp(1-+z?kh#R%XZOe;Eo!HzcJ zMGaC8M`RZ*eDm9{R~FQ)-LEm!HNI7)0U&kM>I}g*`wM=!3N)u{Sm~aYoYB(cxcfyy zFzZ$u#e6;Iuav`qY@s+A&u$?G2)dO|pMkjc?$i6L+58%&yI?CA9$udedy`_ugMtND zrxprOvx2@)7ph>w4OBPH{uUW*DI6l3%3~8qR5nbm!$}sAP9(78bT$ceJSv`y$M@## z$)sPq^oS!Q@AHLfkr5T`Q$;dpuyW*}{iPAN#S97y2UQ_>c>|iWRH~J$tx~d3El*$` z+#e){^KmOIlqqCB9dU^U3iEJ4fy(eZh^sryGx=UP>-)2vMm;e&1bs4GwuOk?k!_Cw za||ZN%j>JV%k!?!il;^=^R~B9$PWv!^@jBLycv)&n8l_iebO&yqn%DdjUp@e2^sf3 zR^~M1Lu!>i;L(PnG9d|ATY|m4l!J{*g4$p+?ud+aYQC-(kox_)Xj-kXqFQr^&b8#D zG^!Gn8&R{)uDAF^LZncNM4YfLau^LlH%NXQR<2p23d^)cf!%MF=G?WMiDn8%GkRVAVgoj)(Dnn!YC2dR9gb(C zVKbJRfdBXA;$#Rc-)J`87++nVA08i`oIu584mO2Svwt)!R>CEywRBqpPfj zmD`P4qujsv!W_6NXUC@(mjEg_0y<`|2D{*F7C>a>`SH!0cgM#-2L#*N-9>Bs=ELpn zQ4b6SAlT}5`T#8%4=Qjgw9-Yz zh<+PKVlvs{P@YNU3e}3$U#|ys(ts0rb$?@DAe5Q|23t(`a$PJ6@s&Y4qLizlt3qCT zzNg%gTJ>;ssFX|XR;k*qR(oAYnxCEb3k6R+;p|y;es>JP$utb;MP)o94kP5zqG~|A z@%*vF7)&?HMX0f;g!^#+!rwj5#Ku8mJiI^Y_a_g2w3W7c>12UqFBGw}YvCt^8cp$~1lLw)eVq};B zoTBv#P@^{FcW`}$OiZ<}u{w*q1C==t&kvJv7ts+h1=LGSk(o`jhlHA-3lijO>BHl( zRUPmqs)v0U#!`2X(qypaf}x==p3yuE#WF$C84*WZIwh`f*FB-Pb_udtYKEgT)~U!6u&6>a(-)JSgHxtspg5*y8BF zzWnha+yX&JPsOoAE>ArhO{U7tMt1_3rcMK>Etjv4=Div`7OzjiLUcL@{O>$hD0YFK zGaWbk*B?Lit5=Y@et%Xj53b*TeD@x5gKsXcE=J{qr_yUpPZ~~N*kT~yh*TN?=~1)I zz>)ZDTJhF~(59zj7r%M(aB&H$D<~0K?j$UZKm$fK+RfAVaai1gA2yW|5_NN(M%{cy z;Hzzg=(Zw(;rWU9C--oCCfy2*9}90Ev&&_#?c)b8@9Pm7n8{TS3}{Z0&KQzJ3Pckg(KB5QPqlE~Y|*PW=<5 zMa$a5>`;v|rrxe)2O>VNOC_;K$0b>$C=Yqv&PXJZjz-c+cRZQPx6{4DR<{BPMWC*?1jEue~RTc5aGTE{Hz(Jpm!o{t?Xm?U=|VB`B`PqwdJi-DKYfOl_3P8o34~eCrf^~J91UibC_FJ@ zo;IV>Nmqqd4qGVJY;4F06#U~CI}9Mui&dz>Z{fcBN1S?nSBR`&FoXqG4)EyNdK)Y( zec-~tP3jClTC<~*av!e2hev%##azETo}bNN;&wJ3O)HfqjQfu(!@JKgrRcY2pauK{ zt?SDRn5ShzE>{uiIfI5bj7k_h3`S@WOO!^v4)ORH+bj75C{k;6mf-8?3ZRY<9^b$B!%r&=og<3k zcJ};6F|-6UflvyzeSjwF0}*Z1s}D|I&wV0~*Pd)u8l9py=1_uGP$^OS{fel^ zN!wg{IZbT@6bjcMqHUw<=bngCpVZntNJjPq;jXCS=sv^GSLc-|Z;!-~33*nx!%%l9 z7I8d%rU(fW0F`*>y<-|X~84bTmRLlz(885^_N8L$#3 zr|{^W4Z0Asf}S66)UM#)UqclIyeqeNlVJH2tme0XQiJ`LE7$A6X*68O_>#H8*(Ta056y{Ajv_KJ)9NI4!c+ndqNh97%f`0 z#dJVmZ0*T-8~BY!Phb@ZOfahj2#XX9b!TUN?SQ9u<$Ey|;CoQT!gCyk#3Af$ZoXuL zF~A@9IRhwtWrtfs1s-e^3?4SLY)4;x&q z<|tFm=JHyT--PDlHibm8oI zz6D?y{A-**7ykA4KW!qOeR^DDsh4Vv>CGrtX%C|ogwOYcR9p#{bHEk?$@8D3uwaF^xXx6#Eb!+pnc_SWv$O z?YzV0&A2r-z6J5P*fy;)Wz=MI0W_2khxJsU+7224zCC9bF<~6AjTd>juN(Wo*dmH7Oto$ZA+OWx@Of^alnfD*!RGB}zJ zP6pjGxK;F~;2tUCj>*V>ly^jwj>Gw-;|dT?}ua@zpQP{%!sb>k6P4 zTmac{IHk4WfA7t zv!{6_V5-OnNzrTeQ3*qn!&!fZd z$W+H2r``uvZdiF%3x)o8(3!z?v#r+`P0ms@0LkGZ+(E?BSka&``!X!Ig`sstZ1%`t z;7>;8cjs5VOdj}WLB9tk2?;QLLK6s1++R%0011726U^j6V4O3%? zcx=%SVlate^{o$j1Hkcy1A~mdFLl`2ux2gf0rnq=C&FHpE@XGArA<9+WNE~5@=*xU9Ak&0Bdi44Zp16;pupGHaMJs z^RZZ)y}o((>D}F7wmP1_f#2%u+sjF$Homxpe#&*HbUX#VbTOYPG*i_61)tv-a=)+m+I{`BZ62ao7f+Cai8BI9Hvz}3HfL|0YoNXDBgd9xFM)2pn7;Qo}AtQ2<~`3 zXdTbsPwc(>I4C#9ckn|7?AqI#v%{MY*Km;ScQW14aCUv(iWVGKBNrudSBu4^5Uvg1UI42<%HRCI%^3{bnM^nq3sk?WUp*BwlxQ$-blBoSyW0Z;pz&b5Deg`Cb1ndSd;P&=%VsvR$fgwXh1={3`yDd3F$y+Sxj7cAc06v6%jk3kObRfp z`pPk}%WF4Na1@FRMD>Q0-)Yqu2zXV(2vhhlM5#;la=+VgI!5_YuL_y{lj-5{tUBwJ z28WFbSR+q5MeyZh`g4G)jgDuBbHJ=jreH{jW^-jor`){1IZB3;!1}#{t65T*vy zABg|v0D-LKpoLW~85h>_qfD$;>GgovmrbTJt!i^H0`T>`Q%H}`&MzTg{(NEc`FGC{ zFTz6g8ai3V7P)-zJbCnH5?2F6nOzp&CX-l@mw2fgWpZQzPjOl(bOA#RprMQNBS862 z;jVUaatpU#I5dB8Q@^`?d-n!T0<+#=bamLCo*y6Ip5K1D=-vPk=o56l0iyNh?Djnj zfxqNy8pU3Je46*?+Gd78Ok*g86xz-njl4sUm~39J-3dEz0$r(5sI)-wV=-{Mo4a(< zCLSbgEL{u`e=2Bct zsaaHW!Eh)BayTe&dXlAVvCuey5Wwrp3wX1>?giP>Wu{!j^EF4kaztb(PY3-kA+)PW zVQ^X$2dY`Wk|mZ4!u3QTuZ?%I(ULV(ElRloxctqx`x3oN9T-($vK8?de>;juz5!E<>G91qtgbsV<-{ zSQa**2|ol|y$Y?xBrhQryH&|_r}NRcl#xUdHOK@%enDphbG5KP(hmsuUROAoFEq0G z#2^Zc6T8t{tUxUvLULmmJAp021d+4spr2_^3M~jhot@wt(dC9w$;Y?@x{-SOtn#~*7FGnY-hr0 z(EL@~xq745Oq9lly-wM_@ck}p@6{?!=@zn4CK1PaNwvXyyMg3lS`CdYlM1PF2bgy4 ztR1WfV0rjGb~Y18^Oer;rHv@JDC^++Lr*1+P;n zJ3k$rzPkm&8n9MRnv>Si=Xd9ju7Y3e&70Q%KAZCWKhH`xt^8Ha95iU~TL9)2&?sLuhfbSODRDhj04+~?btu$;d9{lbeE2Qniz>htT!G}ILJ$`INYNdXG@2EJG)%>}Im zw@3}IQ{CRK+-kH+A~K~{Xso%N=6z?y>NPs0`jnYOcL?l|P*ZFDuxQpAJZ|`0cYB#AjZj@xE+aYTA|x`=8dMl~oj0qLnSxmn`HJv?`vp_IB{KXV8<>em1q zxcj1Xxq&#rd<4nb{OL!C&3yiNclYl0=EJAER-;$|D%IKRyZ7%u-pye>mOlRUZ;RE> zAK$;ZnvKtAqiUtyhqv^5h9tK;j04Vib6yxGn6#i#-~j&)BC4q=bDMZWkz&I5wUsVG6vkSAa^r(E`=Y zND!V^wb38W!4Wy=@rAs}aHgKjrmKw!2kP;mq%%@3rE(D8=did&-~*7o*>*LR*5qp* zNT8YLCl}Xm&x*-lF7I==Z8|jAY*Zq?baQle2`u|J@NK!N`g*xqqL1j}jpGHtouH->zwt&oFAWrjXF9=!@Si zX$0$BEu5ay39(G2NSh*YMcAV>`c)2L52&2UU93^rVJ+CATwm@ zqPj}W0uM8y@`%UQfA}B&%aUv?rl8-%U8(%HD|La%v?vO zjs7|ORKLVJ&botfe*kvMx8T%y*Q=jj9G^}PPbMAsy0@FX?xa7i`O>*k&GY1m7~pVQ zKVtEblj~77>NU6=I)mD2_SP#=uqcIdr}IPq?$XnTdz(1iE)T!7y8SnQ^$m8Hz@m`U z@S?)v53EwD1rnVy=E5FL##rXb%mLDY-lY>D>R@fy>z~C6SaOD2(!m= zjoP#Y-%U0Lhoi9MD9|e5J<3*u+>n(MAUXvLPaw zfVA2zd!wOjZ}dfY^!6Pz$6nu_U6+%oZq!$=7@~2W($$*w>L>kz-J1$E#?@%K=yfw~ z7^0N8YjGDVPBGc5qj|D9<1R}nRI@h@loT+=S~B|^7&Maxeh}(QdviLm84=@6HFqMD zjJmuo5r^RPAbPz9Sf|wrD$ESjTh53h=y6mt1^|)fq3m61`Mfa~KNEMVr~vBnIs*}R zu$m}~MMalEEm0))mdFkcPEY0=bQ&cJg;qXa=gj~_%id0ftL5S0`JmHlk2~po4ok)Q z=K25gzx?Ar|J`5znRw^_{-6HW|FA!)!n&_Hoi`?jXQN53dkjaQtIOHAGrBmwoL(Ov zHXGyPD|mhn+o0aPyScp_20g)8xigs0XJBoICZYZS^YA5uzkBfW1|No?t?4|N1fg%X z7V%pAZWj!JOJ$giNw?{nkGL-%FFbQHX*kjk|M8Iu!7Y)tD4gw$$C!;pnhiBc8Hna! z6TAJKqPN9@EL5)MvrS^P!4@jEN3Y*Ok{^zzvr6L<5Wi<{!JG2=?#<^vg763C{inz6 z{SWJy?^l*#ue>;HJfRUx~EC4)x>#vAlKN0e7#+- zGb+VQBFB);rc5j_sS5#s%Y_#kM3prE79|tE=!UF9!jVc5Df_Wuq4n?6_YO0Yly;77x8pTrT#`V3NpFABn1Qfr6ISH9=Y2WbJXLa~nn zdmYaxHbJlrrv47Z5-W7#HisScdExrsADkR^YbU$^?w7y#t6%=|7ytE}AAVT7_ZPqX zKmYgt^yk0+W`i1R^1DY@!}%E)bl<>{^r)R39Gy%6Ry~3d>+Q|iv;n4h06|_u zIntJiBzxnN(`mWhXeN~yrdC(oTL#u7O{Es?JOXogsp7MBE{1`y)|-fq9R5xsXX9|z zU+pNq{rZK`L#0`zdbYtC7qX%Gv8^z3_9%3|SH>5p-Rz}rX{;3$s#3{>cCW@LS8I7} zeWZDG`u^WMDephrHj9Jn*W=XTpFV%MJ_i{POsv2L07k;Yle3#^$TFV7+xE0sJ)D2| z?;x!>9Yd0_JiGzb^>o+{yCaF-d=%H|3_%57$Ji5TjL`bmGWl$c#mXUp_nt@<@W?c} z6p@MfLPX8PZxKmkf)wR)Sv%|dyZ0AXX#_lVa|_QPkOfKs;L^oh9G<>&K*cf~rE$?~ z7Fi6a!|aYmllkUp|9IN3r@Ur>JsP~BK(Lq{bq;SwS;XESr(k2_i-kBpTSVqbJPOD= zu`Xz3@>#$AiFl&Csnobcq5!wTK~eYqTT^ zp1<@^S+vkd`v*YNq?q{PX3lQ0!v@Klb~$~Ss2xoN5eZW!P^we`qb!nFfjmeEupm{+ zEjJ6)+f*!Tm03^Pg%&Z(ozHmmQrIe}3w>%sS%KmOHMzxvgquYdD*e|9ew zPC<2SdfbJdJm~4pvEsd}!j{AewQZZgCwB!{0#`Zk|N={V*-j)vcMDy3klH^xI6v)LG%&PFGfpZ@fx&wqpo zFRUmp@9MVcpZ@rvHU9EbeGl+~v&)mSlS4Sr4yRM7tbTfbaRIP^50__`$5&_V_NW9n zF1S-R>y3IhQ!7|)Hn&kH)**Bvk1JKs@f<2Fr0~1=eLNfNXksS*fG-g+B#0VhW3ZVQ zGNIzf-rZZ@eEQ(&^4g=-R|G34DJTpcN5G zoqhoiB=uaj%a?4zlDOJ!R;RZ$m8Fn3$V}dBf_5GKpDkjk zjbYfph8>Z-&1F&9BF<=~n9oCiKGx|%-2LWcSg?R*k;HbAo@{BtiBMD{)6fv5s5qXU z3<|+w%oFlJVKr&^maAmg^g>$-L48S$#F;i`o0S3w1Nj7_Ooo>$R~`$rZWC4Ja)69i zix^c+KjJp|Pa{@H$%hItgOq?1xxxmUyIKk8gE1#>Tf*IcLSY9Hfyk5M=^=p#qyj+J zX%kk7H}4V~JqAx8YBuX^v|U8Wv?USjwixEM2<780YJKxj@* zXDJ{oEdJGx8*~A6?_iU_+ZD*^E9+~o79RijFTejzV@G_2X8rPZKAFQQ{tGef?VI!0 zpejEHSxE=FqNAhB(@`}Fh!9KdbmE4CdZq@*>TY#Xv+7j4Oz!HghUGQ+Il#Jm&cPGK zIQ$a!#}`E2)BjIWE>vOnA8j>796V{|!AttRdk6fjWtvO{QWBHT0}Wb^h;8(mT^a^M zW3cT#+9okJNMt-;V)sgHN)>8!+MJ!s%UKIN1Ml9xyE~uf@@KcN^Pbm#{CG2{-+lVy zCs0-bEBofn+3580XxIUn2FNO|VN?ZxZEy#kUG^H?YOYl(7Yez~<=LoQu2@ZwcLpdQ z=&JZa8FQa6<#OpX;vS35RA}T1gb!pYGE2^u7_>$?m8Lhjz zL0V!#m_!CM%2pxfoC6vjeLOhpS$sYVr32i)w(tIx%4C+h`~w70oO#u+X~5uqpNbon8k6@fxT zE>)V;3Yl^(YytDF3mPF@0!x+CNenK)cDX&?YlQ8mUOpZg!f(X^k_Z z=fHi4p%4XvFzHGQEdl7}f>y++lTh468x3o*At5~$t7;-*N6E<}LDJf8&L#{}yD@Cw z%XqqUK&lA=dQnOO+>k=(iKe^|60JuH^)?uds^xZn2**^uPWb0PY%dXXy3%lFM&n5chz4>q!!*=rE{0s0pfSLeVextjLNL0j6{ ztmgxvV5kHauaid1uh`?04+zVz$l^rIZQ)5I6aksQe!M`&++QTobc8?br(>BEgdj`h zt!>N#Y45k+QKT$6?geUa@*nPVX*`Qk!XuJ|d`sEwfbyCOhbQwTjLlVn%nPGUw}QZv zTU_a*b9jzGN8Bit0)B|h9vu&J(=RrFH@C2mg0$a<*O$70?5H zylFN&?f&iUpq7aj=bdOgkUQ!@PA(KerB;i}riEz=VTVAb5)bGsJ_}fxa*dRymdLb9 zH4x5$$pCa;t{$!u_5@1$aYf2w(ggyb!(j*%Di2<}WZVuQ)`0T6{c0WN2#S=82W?N2 zJrN0KvhWAN02_F4*Pw+-hLXv`;OOSv7fCVnqRuZ^+maWX5;Ik$mnN+mmOcclW{VgU z2`Rz%Tl+-JE5h26^STBu8ZYV(LEOph2>8HB57O{_DjwF!0o|(8Llst&w5ejvlEvHV zjI-ojF@-4Zj9~Y2-A$!navmZsNs9eOP5)>?;_vvU-zG>D5u4N+ zH;R@0h(6Ow7fS`7%%yXP12lpul(YkH8;C6?J&&T$ff-w92QF9C9a5Wv(YVX*6uCWY zf!*rxfQ+3a320>|4WFfqq!R(3M+$CMgf2)$+I}Q#tQHdPut~OyGjM2j5M(1Pf5rxI z-$c{}zK%(|W&P_{FMhR+CCKaR#I!v;y?}Mm)kVMTcLoFDfTJ)w8}}E6dwlf;wZQ zbD7`&{--CHWeyX!EF$tm^q0G$LfU0><^}`$_dk7yef9hY0b>iZfLF@+j3+DHM{6Yf z4nr)#Z`-0qv)4{U0z9q3i7XLVY?na^c~UZB*P8>GLScM;F@k`5(CLKu;@PYo@4fx> z`t}19Qa)Xeuiu`xI;Y2dV7=Y`@%^}abbb1TY5DQGT^@F4?=Hcqn;uNtDW5iVSA(c- zGKPxyN}I<-CDCENOI7emv;%=e3W-n-0DJW+g&YCk5^)DlWa1?Tlf`Y~a(9T>Z&tQR zG(Px@cei0qfv4|p?nw+lb(S${Yp&Uv58PP{q1PrK)Bs&8&5&Uz?cP)Nv+*bb!GvQTEmhC!@40;5MV7 zDA?wFi9{rmE43QwOeCBK6Fscz?IzUfDkI`>t>U()Gj=mqU_>~^++=)y1wPzD?rvJxLc7t?57&p0BY5t(J%wMjmJJ?_ytOZI4Dk>l%Nf*BIu?CG!-4S75~ESBlF=&jm-mckH=S``@0XX+4c=ybpP+lK@h0KKFZ zhee<;_zil0(r8p}+U#@#SB_nIwID^H7w1Pkg`?Z!@#*Q=@zE5ZyU_BuxSW7Fs19!5 zvv+qlM=@X8<%k9XJ{>`(5kgUZfhlI~=v=ws)7eo-bke$PSN0qF@-&l< z;d$f^RBzS$z5Satz_c*|6+$hVq>t8gFFsdajh`^gFq14&YOTB0IvQ5%#eF zhN27jEV%6{Y&tz{e|Ht`SWK?Q;Xp-V8Re^A{fw0f^r%$GWD1q|bfOO zU}u*hiUf6t&XH=AV&QCaGVWDc-Ok|r=oA9K{dTDV8A-^QLR;bnc1?Gi3kQ6Ew&XOb z`8!U#jK$c;r5mGhHzQCIR#u)ZtsgL}Q04RnybdcWcG%Ex(iaV+^WAQ<(9Gl$u%8G1 zoXg?0=Me=(4srEF#VawJ0}>+W;3m`Y41fn_hc`vx(~7gX9ie+hGq{(<)8%}%Q-npS zGsL5dI7IoQN1Gfu5cy41s!y^{5^D_FYQ$!;#~m`i3z67lFwbZ44;)Ir09dmEA=ppt zk$^Lil&fqcvO={f%(xU%b1ClhXJF%RkHx#?K_p&wT1%dMcbo{OgBh5G7o!0*Kq10O zOC0kDl1iCUeXzo^2A~jeSj(qFlkpM;z~CCGIvfLAIU?cv+)*b&(b2>WJGevHdyBvN zc8&P(tH(r#HxBdHI>ha(5QRQ_bN=S)a$N2KCm8TKu)w@L2|BcLvy3cydH;pQEHN<` zm$oz-;P{AM{`7Qx<<bcAbp6OXrJ#>7zh3)<81m&K{qQPL84U zH#md|^~uQzNM~Q4935B3mlr2jr&qTZvVUD%Cxi+SHW#;v_-Om21;De|gI-1JwTra% zc#QxE^(m}l?TFbHvUsg>mmSXbzGx|1X!m>lRx#;uJ7Je(v2>1*HuL9|gk$d4;kbG+oW2hsq_%=*UzFzvg_dC9@EB4J z6}7EdA)Aac6JRbtee8D#IZS6r11>O&Q2|XQW8mq(eE-|ufBn~g_lHO8bPfEixcm_) zD0@S#>zk|j@o?H{_Zo!}T(jQa-gYc3fg5@9{HuFE{sumIU;m85V)YKEm@i=yv3u+L z4}br!qDTL26)&|a>6?(?5J>bpzxwf&UTGeeRS@2^3h)HnuGPxrFtD@-4>3#;{7_e) zF5<*ufx;$bi`Spv{dG8aAsd8bf6z&p*@AeaoVA9MjbXRfh1BPK)M`y9$JbZgqg%M) ze}wV>Ngi+jaD2@*z)1+9fDa$fkKe&^_59@cus5zJTXQ(BgtO&fB3te>f+mmGU91AI zTqrij!giZX%u#R%0uF_WSX43<75E9eGytWj`7#1D5im>e_hL3!?HnALvA4@46Yxy7 zL_i1ks#t<5#qMMz?-R3RVv$If$}6OLx!DE#^Lnd4f)q9A>*rTz)7jZkzdD9A*fI2e z%yPBJ@7?-`pNa4?+#|@C%P+{3?R$^t5uPjSf+kah%qP4cZ}Hl1=f!#}7dCjqE{DtN zaQcA2lPpCenHsp*o6wF3nk+Vd^YYMZ0r-KlT#pIdrJBGJ=Zn!yC|rPq%&@Y)!J*JZk~XO} zAcelE(4rHtSrjq^0dxk0>jL#jMoHJWmGEDNC0jBLBz_fYodlHucfjFQ#sQw`EC3cQ z7A~|#o!aT$Y}g#O&ilH_2NL4$$@Qe)TtBKYaG{!t(OcmO*QWg`Zj@V6SZ+FtIx{%rcI+yGLJn#o*&P zJUaVe?Zq=8lW+C0U=_?((rp0WdU{lemV1YT-tg}1^z!E21Q673zNpjR%>bP`8V*5KbapYB zfBw^#cE2435$lGFi21DZ(JK4LTu*E#^^0aMO?oG$@CUn4%!r zlPV;1Y0`|_*Vw(WFo=C2hz7R#i=!Dt^^d2phbe;`bTGJdK3d;;@ZWy(55K&}5__pH zUIOTuDc*jv@JQ=DP&kzlcBrAE!E~1@wBOuKTD4I-T?#mpac9uxNu^T7Tr~xX#bUnF zZ$%@3i1lQkI^^?NJ+6GZScx_^06FHf>aES-zP{6Wgo!DiECi_U6x zLp*F&qY|UH;1e+*^8DndXZM-G0~sG8?kEZX9#Hb|wV`w-o^bI+W<}5`1JMA88-ehF zC`9l!16eGMf{Lj$`0BCl<78%|hVLGg4FW`~^9HdhN6TT#g{*-8i3BS7^5Mn#dACz? zdw@_%-IsX$hD2Q86EF`n$;7CjBa#i$=19p32h3_A4CM-?s?vi7auL{~mGr5IowTQ* z?k~J}`e^-!pB_JW@?v*+k3+79Q?*>B76l;6yj_H}(r9)DJAzWaVBrh6bQ%BI-q&CK z=fC{NUp?Cd&YRWh3BVkYZIkr+cVWqh>Qms#o9s=Kj|D21zC} za@W@uo~~-uVj^pOSISgCt&C0JCp2UUV_7a@?!SCO!{WAijNO;}xYc+$7l2P(q~zcz zoaW}Jo-I`><<<;T!@x`#mAj{3wCNw<5&Af()<9fweF9`)NDEv6(DK6{&*m4SJ{%PS z!Qm4GrBNekm28SKo)Vi>di6B~oC7jL#15r2+ zjwVM_DC^JXXQx-Qd}q=bmaU@AwU@vB#h?A<-~WU|#Js9!{VATYLj3Wccg$*&BXej} zF+AwX{l^5Z{^E4nuYiqm-U+({p+KdTOH}}584E>y8Mw05A;3B5_`R*;I}1Y}HalWD zr`aEBN8%)6E`yd1q2^w0rQF_FvRh6^tm3T)qDZ1;_6&nLySC{L6vdQnulT{eS4-;; zzxwmve7(RhfuM`$&?_S;oj_oZ=elVd-{Yn+4JOq-D${tNWrfOUEP(*XDm*riv3{@( zUlZcD+cK*TW)a40R;SczLro3IUJerUe6_FBj6}2!Zw>BvS4VBDo+AJoE!SYIR+|Qr z+e&}#st0Yq{`ddeH!<7rCPmXbpjIeDHA%Q1dE5aV2EG30Z#IR$_&@%yzxg!= zC)c2EzZ)3LY_edNO~mZ8Bz^(bs^54;UV6YoxH<(#ry}C`TP(p#t`I>SGM<1>-Jlsn z9GV=GoeD(Ca!SowomRaejtg)aJYA1xuHxDFH7u>r$|OUj&Zt>7=-t-F1a3&7OrbPs zjjuo4edrg)H*Y_JvT}O$`4i0lUqfyMZh`ME4&gukaP#KV?X1^mcOmQRO+kz{=yS&E zAkhpsBB7Me9VyhT0>R!Ijm8!4;TYiULCv(i11v?Y7AnoCO2mR|Kig!pGuU3I67D@L zSY63vAj8#}y=IkwB-fb1LuU2pWx|zh;V#Ejh&xIai4;mV8dC!3%F$G<0jT1mD+o@U zO-83z@6N`@Mb)D<%+|)@KmX_d@??EksRLq;QZC!yTKN0lauylYqwctCq5fgpymasJ z1}1wx7*D$0&gg8KD>W+J3D`yArKBHl2*G4?HfjwIPrxcRnqQwk+cXn@TBFsSd#KhI zjF^!?yx(h-+MV*aQBA?FZU~V8t7%6CuE?^%AM|#MZag=d0yNsszq$YDxA&iJ-v9c$ z`#3C6r4)#wGJ<^@&rr?VbF;8NDdBAr*r;6(NLrIl4)=Y8!!k;7cmp3~Ui1SQX_cfh znBs0jmTHbGgFIk3ih@~{ltQt$CpJgaod5;XF=)k5A?HBk2t~YTAkxZcTPC)3m6#EJ z|L_09Km8$W0gkrSsj@n(vNc1s(^?mzQR1;<=w}y zf7+_Ij|R zIo*-lOC}b3|H*H_yZM}f;jUx0xPk+rS@J;t?3>oRq#2J{aLqZhj&(CSge%-&C~H^Zwd)3@Nab> zKLz{$!3@GGZ_ckyK=unhi{bglcNb@;cb~2&kd|*GGR3$p6!1bORvPukKy>T$1ndq# zhG`XmsMYR}zKl`D8m$hIfV$UYQk!%hBV`S{Emf(FTs%b)0N}5jrqOEk8WoBvgbuw# zPKN;ikA=8n3AdU1>e-GWl0Q7HM}(+ZBS-8OhanV8wA;<$==AzEjHXYIfiZD+cHVMs zE_3%6m!JRqYL!FS7E3G!iQ{y#_UP&TAIW%jzS)c+*uBSE<>P0IR1b_@CjEYAQ11h< z{_@Sc^V9eJY&w$&$5Wv)l-Xx@r(Ix$jpi2@>;vp~ukODw2gWO=Y1e`yEcMz-?1QDRHYh*NdOwI5iw_D(`rO1@)GNntf7`5$G9KL9;**vaw^ko8-A;Q-=056;y0v^VRv!Qj zVmLbixX-jVGyKIONi5eAh{76!bl2!Un35+Kj+|*;;1H zS?07;DA=SiA)CtISzKHuV>dUK83Z9!ViyXZKc`anH<+qaKL*VO=pMhQljez&( zt=8e`_1n8K%m7}$KDqgL2*j>=C*VqEvVcwqYOP^C*q;L-oipfx#+pc>QQ9@IrZDOF zOpvFtDTvx&2V96D?4_@6Z{kHDwbn9dW;@Ilg+}up6;;?AUOj5nI5Z0R)7918U@;7M zmXw>y%Qjk*s>@(^1?*O+Cu?9Y17G6F6m8D?dZbO47h zlRx7Tfcs`=YZvomLm$pY5(=w@yG&Dps0stitz4;CuJn7u*SBxpy?--?pm8Ub&iF!x z*r-`+fg}8=Qf)`-gSla2eGha0>5sqpkrC;2ff(X50>;Oetu|r0*Xq<`#-P-)u_#sq zN}63qmJEF>Q_SPkXp~X&k3at7W8%x7pWXj%k51+4!hAICPxVdkV-yotpYD>hQKvCz z%L9yoMP$3vL5I&_F&UFCnMz0?i{PF~*uiU!DL4a}D6jUP?XC+EPPC`;<_AFes^rRr zN(BHrK|aIUfiz%`h7`kPIEFpp8##1)Q_Bdiezy#`m8X2x4#!cNouo`E9ci1Sc3J60 zm(HIE=5?l+oGo+)DKCGw^y0aYviAJf6fr?tI5`KRM=l?Uw+A4pf~Ia~G#>Tq{#RfB z!#*8669+ci(_b&H|MbH$)d*bsEexzBWlBAb%ux$8LUTl`QejpZDwEzMGHq`$RU9Ip zM0`mO2m~4`YkiNkwnN?f;cJ3OY?CqRew8d&uie6R;28LlM4{`n=;M%kWX z+!Qnz35))dyHYO;6r@f}QZk&u^#A z+0A7((wYp)LAN(wiGcyJJS=7h$+R7QAffyyt3i}(P&F^n0a~Fkh~SN{;;B6dVz#Jd zAbmfe@S&B7NK_h|iKWu0Fgr4!_6P-fyA_f1nUvl2ErG?Lww9Alw@IFC#K6jw$psxQ zAeeac2tOHV4JVV6;cz&bPGHOie}^Znc#*$KgPH6;2FwFgy)89KsvSxapZR2EpR0D} zD|%PRnUu3M6v?)7XT5Tj%Y1p z-WrqeBXRfMGI@o#^ziW(G?2qV0LlmzuU0np^n3C|x#{*OBR;jpk3gj%6$0di0oB8% zR*t*>n2yq>SG>bcbU#Aj9=lN6!FOw z5$P6ChIw0T`HxQ+eCFnZr<>b2b+dKeGb$7^Q_u)u#2Bhe#(n-Ad{>1sB)Yfw5C4J} zzdYD_`3Jn!nL9fhLvB0~OFEOo3xMp8+RbdC)JT7`u>A7X-~Rnm3U_&%`f`8mhlPjR zG?QPqw}T>lESE{rYWBG?yODu0S_vWiT7E+Ul+9`Asts zNwU5gyE7u3}#1}R1D6%{cWj81T7yOVEf?e34ff0LE=#MWkQ;Ojpsun-xPGg z@c#hBDGCOQiKxtCx5La?-Q2~I5w_g!_FFAtKs?v_&0#s{N%&P(RH?F|o(#|?nw1t% zYkQzUIGTdB!1=?kaWs}*vGtTmU1P`{kxB&ObutN)L|J5371D@7j$s9jay%EM4z9YX za3o?)Ra%uvJ05BdQu#qASDf~fh58&IOjmH=nH^r1yzbCA=5={WI;>8mrzuT{6EL$O zUlv-lb$~lJq0T*kmc=TL9&bBXe3w*fk0CyX%abektPz;6kZ9X#ERiDS#?uVyE?2KJ zs64r_MX^g=StoO;RA)X`=1BwA0908Fs4Er%&x${wlQZnPMJ97!M!-_E1g4rTD0MxB zoX-rnhi>?w+BN~k19rDi_Ug+V7Uip7f3vL!g55bE4rr{rM+?%3h4R86qU;G&HW}`K z$6~~fqs4?2q^HxIS8Ph^xZ4X~tzcIk{ruyv|3(@Q4bE#3;KaoX zh4|!R+&&z4<8eTnVt;#|DBZ%p_-cpp1HraVTEs5D`W@IwokRk{#mVUkvnOT{iB(3U zMyZBKl&zRGF%sNOJk!eO$f#<4K!mE81PliI=;wP+zyGI)OH#xs5-Di7&Gl#a#m5T# zu3k%}314l7ctkvI`#>q7f@`^+3Kr^+MKgGSPC5SnIeM?>Hu5ZO^AFma-S}efHon=3 znVs3`>7MQ}UDIW{oT?<1C_|AHy#wLB_cjwi0*OSzWWpu9_Z}b!&|8u6WxBe*%RSnt zh>8kHQ4*;{<}c5A-{(2$Mez*Ssi2AQ;cOqmt8XFu4};YYZ=jO$;pqG?(6hd|g&oc9 zF(g{wK+~_mY0nA5K^d7B^wVV1fZCT1cjNtr!}> zFfAyo<#K@r2g`US7qlznVD8l#lsh6DYIlVFQjuzhFW~E~UbPBI)oXd6=Hb>sy;rXl z3m_yT{9#X`)Tq@f?asmJqz5VV&ZL&8zxbbXYKeva?E4*s)D!?{T)mkf%X_TdCwh^; zmXsSo!z~8dp)f0U*FwAiYFBU zDS5tkIq+#VSZ-6vvC6Zjs|6pG4S5^Q@t~LM9YS@-hlrV~MsFo(vk5TJEV`i{;A`;$SvdwhHV5}m}h{Ih@hMBrb&&jXmNgtfQF-x7)Ugt+d- zo@`;w?n5m^Aj-rsl+Ng6j#XLb?7}p^ykm4)Bk?FicCrN$bvTXq+Ow7Q&H0tbi~qR; zWReAS!X|mXSunE&TJ_dE%O`lgyv>t|xEgy1A$*xkyTTNQ1%JRnwT7eKuw6@ZVNnUt zj9;&B{|b95pl1CQ=2aiSK>X_F9pqN-rl-S3|Ky-D`fycfmg;>#Sfm0#=;|E}iW!=y z<-Cq(w6A+qyTr?*N#}G>8VnkZ zGK_*FVTe;hb*Gi^StbBNI*>2SEy+ zF2+LjWF%H>FvqXYq+nyCl&DC&4W;ndsl<$v5M04jx&xnrwK;Bj^N z0%SNrr(=*!^MF3n=hg!@i%Az;b88M%D_Lh7*iX0PGNUt0hth*LHMXAqd{!kMR4 z&So9l?SJ^E|M=w3a|;~SZbbA%@obgLv%_|YClv}g8$!&kh{V0oX1icZw~)=R_5PqI zb^m_|5>X}`%)m(;GE9ixY%vh9#QyFWSY&EEg7ACEu$`nQkKe>kf`s_Fw&QZ8>l zKt}N0={|Ie4|@l9ub_T7IXgdX=0BE1iWjH#U?MdhG08kb$Et;p(ScAgr%DCtN{bn> z$)zB8A#FCRL&rDRWD*_UTqKxgi0X_q~Ktp=xgHbQZb)L5nG^JOJqlP7x~ueHv&Yl@=Ruw z8N8~1eN+2qB->A8S%8Djt?EsfQL^~;+~+b|C|hBIzI?{&rE+vMH>g!=bSex}R&Oh) zRtThsQJ@e!ek_(KDa!2_U*27v9UMV9u-hr*>2wIeJQ2%0yqItN@x{{Gu3PvG8^d>= z?QCoa7I%1?B2TJLk$z`_fuY2-6d)p)V{g}yIZd;8GIP*NyPYoFY2_iLj&y0vtW};F zQ*ZD5u&^sri43r4r>xsUqr^?bqRDI~krU>?|=E_{q5Ps+t=q;Z=iZKD)vvVu8zB< zY&Gi(8U*id}AU!-Og_%wp^x9xi_M&AN8wPmei<{OsZqUXNiaWU}bhN`y>6 z?F=4B9e{)snM~-Lzx&-onO=}C(Jm<%G6ZNLU@8H0HcRZi*t6`a(;f#zK(McVCj#Np z;9Wo2x&Rt{z0&Uur*B5dOtW`|eeGK^VwE-hcS{m)9q=t~+6IP~9R$RS)ak z`bXMipCGAX8W3cS#^J0F525p`Lnvm~yRo=x1yelwK~)LMGvi`0=Z41!n@?J0JZN5L zGGIf-9l`0OpJEcAXQp6H;?t_0e*LfFFTe03Qko71OE{trk!JYg1krV_Ug|QyivRG7ZLy92Jp(BNfU$W3 zjyZ`2X4B8tH8kXZ%n=Q&`>)`hE_zTb}uC@}S%a!dOUfw|I9cJV=r`Lb`^-b^SM@Xx_hrS>D z`!xvNpltl%=U;#P>DB4mpWa;qA7+2hh(nk5uu@2-v-xBsor))Lz{{2E(U3QGdT=m( z%^>0QxQOXZXtdX9U_R6kj61yk2uTv8M< zAy=@w>rH!TicnSpdQX?1Fqlas@f z=?K#AudXhRF5g_h%jA!@uiPkK>GNiAC&dJcl#@`?UM5%?u@IOq?%$NLqf0)3(#(=-sQbFCs|8dF`!xbVaJ`yz!=Dp;LY zuKwnaY^6vUF!}tkpf_lBx+R{fBOFCl9$hA@w|nDprAlt&I#MpaGnp9POos2y>eYA| z!mmpDyXOs~Zp3K6Sh2EbSJEQv+yY?1fUGkSo?ID_K{*lH2dkhK*n) z7VRJ3T~(X_u;@+k)nHC(vj=IN8H>s-!H`YH7RcNbF#%6*5Q~5yU;TcddFD_sI2nqim-*iWBfBuL~gShGkc)PfQWYsT!{q=7!s(Sa=_m?B6 z(U$8u3eJo5&cQxIL%3qlu2uoc*y#6DK5wyoI;kEG;ZgzMUJwhz^&GSjK|1CR!~;gP zPGC^8_jn6SyHZFhu5AhRM&25nu^-7yP6F3DEOx6qDCDR_%P%&;YVZK47aF!mr3+I* zr$~X?bb1pRqmmhTQHGF7ynty*6RaDm&0M;kp*(t*oTUY@SimGSmoc!9xhTI@Ly~r0A_p(rT6z86Cg_SVLZH-Z_8las5%!-KoCX&>;!m1a8X%BNS^If34?xwrK6#p8AU=OV=m zIQd0rn45xH%xbY9xV=#ZVP>lxPmi03BYQZ)W6f2Td;zg#CkwVoM=|%`3 zV$!%#k2-DH3=?J;Fs+}wJii7+>gh2sugsWc{`r#?)~-q6NQPA`zQvIUh1|G7Wp`Rp zSpHVR0fZ?H$__b7I}<&>N|i3y_`AX_uF90qYn2Mpw87)+79Z=l4|W1(FYerU1}4qj z2lKj+X?gyeZ6szA+QC+&(5iJRlNXH?Jpqtr9-V?=1WGd($Fr*sKfZ-gIAGjw-c3jE z;i&rYw0hKj{oxF9wHKFfuU_4NoZ{}VS^`Buy#hdva40)FiU+IJ6X5^Ojz;-hrylh% zlhavacvOqfuy6$*QX%O!qk&v1>N49sYL-xK(@Mk~n4XF^1ag(wq7?|Z&vq5hd3HAp zQ5`x1PifSt5jZ$4FE7t;a(O21_kVsY@l=vjIGzQ7zCRAntyCN*B9yP(YvVoy%hvo_-0FKDduOFv*YgM z)!i}VHM+G*BS}&qMD^&Qs;y9omvT=kbvBoc%T@?jo7!|c6HkcV5W( zjucFjwSJvIEMT)C189Bx^^$f;AXS*<%bN919)JItmOw-zxlkXn8>PT$ie}6vlMD$w{*C&_fr$> z`2CYgKO92bqy-|!wL%I;_NEc+ZK-J@21nsvq`4`d*gRL zCF6|(HKG*D;pGTfC_`5u8U++v(Ahj0PlvGLrEHZ}2S!plW4B(7V2}Xz+1<$iL1DE} zEC*!bgBl)_?{11MkxT^Bdbf};>M46Hei5I?)o$?q@W($sGMfpv0WZ~(& zc^kBH@QwmWCXddB8xR$!m@Jq%oQ!6|p>fe{)5(?|tnWwzK7&TV)0#PYw=e0}t1@Jc zNmrvmyViwy{pnDl+3A--NqKP5pNvP9a=lY61D8GGbMb$;x60M+Ey9RgE61o}%pVWq zffRVqNy4)#lFjefm59S_7U`(=)Xx`3@h4(efPy5mRj*cCENVo!BM{10A9J``l}<`h zqNV%aK4oz}a)3=XCEJ>?^7)QXJxb)oIa~J(LKEA*E)SbF?ah{Cog~e^nYJ3(ytzp!_&Hfuukq#YFvyY%UABb+8@) z)dTW`>5G?F<7j4joF+)JQ_-lcxG%s|qJapE9>Pqq8ilQyCmO_I1}B!2L5o(tx3J79Lz>`2aUPxV{4IO+IP&{PULtGY)<-PM-q&?0RoyykH6q@V@hqr@zs|$GJ z*%*wn$1OOy4EoiB+p{yUg}ixveLfquF9p0=0B)eodkv{t&5{mY*ut@!b_Fq@!J2W7K6J?0^lCF4@wN zTmp`Kd1PJb@r#8}bW;!-X)GTuqh^)28ZwCWxl}k6_0Y7742FncGZPq|w>q%6?NsC4 zPO6Yf=i=#BHkrmKi+1CW|L;Hi%U55l=iLSx6dlQ|Ck~Li0L&$os%MYp_&fkV?rLR9 z5Mpaq7Iv*3yCI+uP|c*zf%%oTF^8+&XqTLpn#(VjtR z#2i7=<@N*X2}u09Xb%ut9SBsxaJWAOyYR*N%U|A|4SI(+?_vG_H0q<9Z(%e81cT5Xr8?(}fl`}k~!KGLw8uYyvhcLoEQM!9t~9G`;9{@n*4+`c?J zyFSo52xb;d?YDZsXYrGaJ5erHL9^_LM)T#)#l^w6QHq)Moacy0CfisuV2Mt%WHSN{ zUdl3gt@6ruygk!N!e}+^yjc2H|7vn7}#1od8jgImp1fkG&IRC-oL&*8FZcOy{#wzz5D6^_KnCU zz5kp$_h0s8oQ4X0hEO}qfDEL=Nt=y|ric=w1(#X@(UO<|lE5yb9VdfoRVWnncyNa& z6(BKl(x5Kq;SGfhC7Rx&_e2ROUejRVw8E|5QYu(qLc z$j!cZuTTbx;HVHmzuBsrw%6IlO@Wcel35L5k6Q2ac&sc~%$dv<3R4;5VMh@)Vmyu0 zr4|XLR*4#2Gb=dcTz| zbZVU@9m}TDWa;eS=IpeasCM`JNnfRhp^%KWnIT}2W7>nHHyU%=U6@{IF`$S!QViop zH{tQ><*U!OxMG9eW|FHhmE5jVD-3eJSfjJJP_gLg{EBW?iTa{U6s+)dNO0%UL3g6x z?wmzR;PE;;I)lQ`>&v5QP{`%2uk*xWy&9`WO6g3@e{ix7w+3gm0@2HAG1skhXAq>i ze0w?=mGZ4}p>Z-ER4V!M{BchdC7twSc}O*6O~ zL1WeZ(eSV{xW2yY#xhl63&WjG%mI^-klJNZt9@LRZjmE1-hZ^_>z7;8a+dYz+eDj5 zD{Qz4So?FI?7%pn5{(*p|MbbH4@?CJ3qToN7b_|gNyO|jTA>k^!cokrum{t~%DsC} z%ucnAYk8vWp59)}_8~ho%LZ($|9c}f_y0Uz+n$?S6m0YF3+f3fo@?gvez539i!>8= zfcPL<=vtkLFu10xR3sGY`QsSrCu0sGR`4Pol{4K90m8@=k{XmsJe3S!R5O)v)0Oeb z8BFv}U*C=)+gJo@O(C2q_2W^u8~21PLe<{N%Dr#IB3{8}N_NgqhNV&lGGu(SSr6X} zpA%Q^1P6{(&+-(23{?P{f~`t^B@ zfKM1n2MWsxpPU`RZ6LyF_O5@uJ?NGzjdX2L>h~J8W;YKtjI;A@=kOiW{6U=x7w3nY zyPsbjHK9&4zJnI)bTk{zF5$;tzMP!DYL$*&4wB(;vYG)kN2J;;F%5HCf&h zI5D%*EU|LMCIhw0IqS~__Fd$J+2SQK{dx$2Jrp+o-NP+s7Os{CzIlIj>j$+$`tgD9 z!f}^39Pl`!&O{_xA+^4WO=ofXUc6Xf?Fq;je6op1>-uU^AD&;#rmbj=yTQmD#>Z>B zt70+Vh#FUgfUA=M*;=hZHF!A-J875IE>%~GNh;kcz_5@a0fZgYJFR9b5$0{EGkG)& z(B=eY3+lp|G?Vp4N{Lh|Qpvvr#_mhdp}zk4-RtvlB@Ob*1QdDe$xzG>s|HjDke+qf z^QGr|;gA8V&k7LTfGV|;rv|4&1eiTS8?G_w)WIl|b6UJcjKLg;+iTog)7Vr>vDTnd zxnfD%_D8@D|2fOJI45xkIQ$oXUK8VSgVU(BiMK6DU&K%1pbqTy_knyDPn0|5e52QG z)oOi+()8PKhJ$-6KvzNb3L4d)0R?{oHpA)U^bH^@VK6*;1KZYL-hOOJluq8gY*GO# z8OOoo%?$VZok8{Z)mgU@^%23akCvP5c$x_mMsSTGVh5H=(jJ~bg=>NAV-N^rvZz6e zuwfV~R>KQPEDFEc;RrAD)H={qBQ~|gE|sk=uy%yr3fO7W<#MH7$yQ>G9?Z!=H}&Q` zb9V6RHkuCse&Lz0KEUmtN!rgL?w1M#mUQFdN2lk0n&B zsgUZ3Vk8|6N4A#t;MM{hKhSLlCuR~w>5yOTRiPz^+H8l+DR`;X9Glbgv4$E*C1dUB z#r5UY;nl%uHr_PoE(<+OxUup=AGZ6oUWbqqQi!zot)y|!8cGx^(DhYnWh%KZi08X> z9MuMFIal?WzwCgLicN~bi6cEkn&_v6U&yWf7TbgC>$y~B<9 z$Z9I2_s1A00i;TRo{U6ltzx3oEHTyTNedE7!^sq|1RwtL{_P#)03lrU^VQ|q=mzN3 zhc_QS%qB;j)Av8UK0O1F{^@?{@b#phcG*hpNH`C;#bK{dAD`b`P4Y3gM}~Y+EL|*D zGPzDM8FPcM+hjF4MFu( zXnAFMVM}c!7?^&gs^wZXSI!QmN6_b@`)B5F))!P;i%&mUe130Dhgo>Kx@LXVn9liq zSqKSs>NhXJUzKFap;*3I$oNA9$l;rbPVeR0(?(?m(f{J)sNWcti`|b^$g`WbKYswY zNJZz0$91e=u(5yAE%!!X53V=DAR+IS(&I@NP86vz5bZ&r*Y0*3vzJ$=eVvL5CGAo~ z_fcYwN$Jd>hX{NDC(w_DU+s)%BQop)@rlETx;>dopRb;j%Xd*9nvCFjJ42CPA64S& zuz*V^R-g{3du#blokGboCt4*qR3aoe9?a6>-TNybqEBmvSW>Gg9^@jZR*lR~8l-9S zp2?|+KK+)}G>QR658Om=P_5R|B#ML@N07nAwTK7C489PIQJh9O2eG9XXyq155qH+6 zfq_6YQ%y6>@crAv)1Thdi(?QX{Rs0*ICIsrxik|`!+JOr@Kb~fwK4&(_>2GfhX?=t z+l6!tfu6Q}Zj-BUBmipdw}-$q2jOa1)o@LCBIkOx?2m%|!7c~Tfy&oN;&MNjk}M{r z#pF&plnNCZ#`R##;oo19*!Q;WBAieNg8gaPud&4%!zk*mGO-L(Y}6W1B}-6=_RC8E zmh8`f?*0K5{vTf7!TbvFR3LvDy!`O`^7!h_`;$?>126-a!WBMUKLNO z;Am(E>ho9~Mg%c%r4pIcszW@mBvwc^xx2d(J=Ywk;-M70{#ToY{%~5|SyU*j^xA)X zyT;#11XiBy@_q&rxr`xVJfyeRY?c1KxOA-!iAx>9L#+5$Ik*mYm!8i_Q#9kka4&8n_ z-sv>jlN!@HKcB${<&2nHPfdyWRS{2b#84LBohW&f0*lkXvCdjirOt=>R$A)tn^+=^ z%1sZ{?gXjxaV7pVT?TU);0Ux#r$MPhAp|kh3# z&4IVMA<%}JG2AV;214Z$DAzL4p?hhLtJ`rr{Ie;dv^yy;gi-9-ieBS2KqRdNdxWT6 zY0ea#A%B4I2ishw+2pEZ@ggG6^ntD+u{xOc!F2!d5=h85A3(GB`t?tLdw=!n{duR^ zuhu%{93V~TGyo{wG#LviEDDZR%6|CW6J0DpM^fBXKF}M5;&`60c~PAd02OG!M>{Yv zyh7_%w}l$YiIX0eQLmNS8hV3FWR@${DxuAz*E%H<-p-ay1Fv3k9+$&X$%G&EGVaz1 zVIn9z@W!MyS6)u?d`5rDt`^3(Ov z;n{e2^78CrG6InN>1;TJ#%FeP+JGKWlybstp~g_v8klDz`6zhRe5j5HQn^Yo4Qxdq zUS`5{0n*rZyUDt_!~=Mx1+3PTRV-F3REXORT}7}splXF!qcK?Zq{m=jOYPzfsSORt z#7UT-G6neGjKNp`GWOlS{r3Lnn_|t%zsgT`~fQ??VB)9FH# zQYR$q%EObRqr+)CH3HmNy%6;DWaJ8*}K@U4X1}Kcr_90QZYH(pvs4WDIXf# zuM0fzImii9b{U{9VOvq)*loKkoz@58={TK>9D}$gR!&0MIOK7oR^TyMbVhR^m8P7k z2xYcu4bHFu!O3tMN2Sl^zI(8|y7+j3y9d&B4bYR^{%ka2&xeiSXf$_rX53o*t;w_g z;Dxp36fIb(h+jYFrc|b089hRY``lJUEEGD59_Wu#3E9vuFsZgO3lRxT|*KN{*Jlv?5l*@qEiF=EB@(S0-1H zm|nHG`B-#dS0{~3znH1D?m+$b*Y_{sG;ncxadUBVa{+Imr`N#R?!G*Rw=qaTfV8MuuT$|D zneCi`QX@@eNDHKgurM7jrNb%Edz2#41XBk$qMt#5b;1@n{0^f4b7`bPiPDUjcl2)5 zZUQQ)c2&xCxB-E~l1SIM8q{oXk%Z3W!H94IJaygn_~gj+{l@c8zxeFAQg#2!g}wY~ z6VKHPmBU$UGA@*JwNfLZR+;F8GZE0cf}v9D;Gov3B%(7&Uv^XJ(+LAc#+R?4i7_oh zIJ^tE@!sk6!L*x9z{dO7cb}!jBdxeAc6>IN4F;|Deg|4tJ%|aOA5A8s3y5SkPJx== zY@Wf@`*O+<2_opREdtJSWmVLh7z&KH`j~4EK5zUo4pipH{8BJ4rZUpuuq16 zjI9PNVZvoF_`=~x3?^DMM8RFwRAv8gdIhDrpWnmt6q09IrZ+0oD#b!JUr#5~AZU&G z;&G6Lv4vD{7d%_EMyIocaC@?qG>Gk9F;pFRezk+JD#Toc6I!{LC+v_4rF$G7>Cr0I z9tlNryNZ~TBjr5P`7kM;4+O0}DH6n765*ENfjXjC6wQCj2^rlssRD^GF11{{u?hm? zW;vRQhFbfR*5PfvvwwZnDpZRU7OFvBsncoa>aq<3~tA{N-hld0UvW*hv{9&UpPF!JF8_G+~W)QJbp45qy6bZoUkRbd2kpw;pyX+ zX=U(eR7#|36QWY`*nFW{skB4#-2(R&(~bZL9XzhZOnA0A>ukC@D`-))xtNFr5CI0?wfcp9Z~m5P_L z-jrVvuZOMKaya8jzzMYrnUz*Kl?BjNtv#8xnhgfEpdrDc2u;*#+5OA?S^~ZkjcKn` z?i3rjzuc<b*nKsPx# zeAP^sR_`+iyu%cVb{BwY94=rqnA~0*MjvoSB~?OGv=xSxeK4H%K?RRxD>UGVdixgG zr0+ib<;~@=+0Ha-)m9tcSZf6cUlk%$B%uD`li&Q~mmI4|;uP6nd~CC%5=_{kmbxTT z&DxVkHks5*h}R7!dk{b)4s6?|RjsdR0yz_3vbePHEq{lv-(BFYEw6DPn+)8&b)iV9 z2t3CtEp_M1`_hR*F+kqK{eh7vffcH*};PGE`2k_ub1H)w z52IqS@h7X|hkWsqZ#0(m6hOnALVKBl+T(nK0;2HBicQ%WV zSh|!W(j*R_XF8?DD*>>+^^4TaEnKXC(E+*h#c?mutdE=dbfyTm8whnr-G+ys{}+4h z(@(a|CUEz1))scaGJ!8H%AY&f>&h2wsmbM4r(LTu&Mx=6XFkcZ`Ebl>;R@Aymqjvv ze{P%q^>fj@Orn$VwzkYFvtHs=zF2)G2OIelrCiC^yV!g&lUMm%N|Ox>Gns(N8Ev)u zom^P%D;Miy!1zPw1ZJ%JrNl>JNij#~a*=QVT4_LUh%>WZF4=(L*09+aK?WK8d;P(% ze|1>{`}3Fy&>@H{=p8OHlFYYHf4+b_RVu~k0qK&+mU7WB3B$`)rrH@+atwU677mxQ zxjy&xq6R+gb}ydrlMspYIUGR#7qOJPTPn%svwL&PPnMQtBB6-0t5fO(5E`^W)v4Wp zxRl*jZjj6OcDGlJ)dt`Ph;+FGQ>k*}e7rv?xNumfAemx2D%ZiXDqp?4=p0m1E`KOo z%nY*iSRupzL1K4D+WlUCcyijx7ITeUH3iQ>(uNvUR;S$RmO3#*{eK-sx zZeC97#aQm-qF=r_n@vtLPPW8h!XUje>DADrOTM!esz#8+?B?kD_@m0Kb$6DQO z8Q5z6t{WpGX0?;FsBB&jWzd3hu!O8Hax8s)` z%%o1bBQ$N=a~C3vRg#ZEr_`kmQ(n8f0NK-ST!=v;6Cr4|+hnd#Op!S*hF`t|NY&d{ zx7X9-o7-Uy443Il7HooX0Aa<#`n7v=8}o}_eeqjPTq|_3{&atiW&en3{C*2}!y;UW z+dLc|X4SEItc4f6BFe$axgrJ@3P6`x%vKcB$@J<~DStyIV5=vurBta8rlTAQL8xE?*1d_t*+IJ)N}^^e zn6A>DgWKuF%_yC21LCO!Tb=z*Hdm^aGWFT*NfD1%QXm*|BRCv>e1M54R1aV6GnH~J zM_J@%X{|FU6jF(NyOArG8?Z7;!iDS6?LE5p*`p0BqIQKtei*~J13|mnr4;Y2{;=?5 z)um?dJbUuwId_96=5MnEJ5M*EhVy_&Wg^jVDKTQS-e@{xb-T=t#&A|GR9h#L{eG$0 znw*{`bCITy+1x4 zGihL~B%%P&L@)@(AOXN=O66!wpTpn}??;(YXMZ?2YZsVO)z>(fPV-jY3lUxP)4^i1 zwuw`)tUATR(9O+G4; z$amqT7=)UarEI~&%uCLy`e)nT1*WAzfqaRBiO^{{` zzz;v39rOWvKm(%H6@m0eA{ZqCfzo(7ZWT&d2Gu$cS)pE_6FxMN48(JVMx{3{0kVs* zZ7=YIN|e@F!5XdLY)TP78X)Z^yJT%~g(JhgGT|CavAev^6{yt0o$YO@Xz{_a((f}n zf^@oM)w;tTCt_2P#cFHNYxK|CtxE5DOCx@OF&2O=Xpd(J&V9KyJVnHj~XMf%KjN>eyotP17;~t&G95>0+(HOKwrw^n@o-Ek+7aosR?_SB z@b#!(Akrz;?(?aXpC$4Qs@WKz!X^N{k63I>GUW6XC$;YRtHXFP%EZW+i^})M-Q%0L zN4DLi#~W%f`~{ufzJ7muc?K1aLONPIINLA88iNYcAD!R4YsR6@7br&qmBDCOBrrEw zfGE}=5%Z7+sV-!XN1`65$sTrMDd6n3+sPcvaw6o%9unq-ULbEB)Zk{j*KTnuI5G_Y zx!4je%Vbn&tWcj2Aa1oozb8_OHa1uG057*<45fS^c<_gC+Tjlc3)6$fs5St5=l*Ei z?Sq%;==x@m^Mk6ZjFZ`N5}>>{wf%n78%oxPRM>9OYN4^5EvK^)co=v%TR;5f-ybh| zM{ioF&tOyO=mq!PO!*0d^mq>A%U*YgsM5A%q zi$r-FD#bVVHpFa!jV!p5$dXZpsMea$emQ7RyK!QjP#T&!I>$}i4 z5!4yIu8t|d2a=6;Bom`Y*h?u0wB3R1ut+*TY*fLO68kZ;S4Rz4n0 z06&|8el%RF4qwp9-`f$G+%Ah&Bap1EuLuyXUbD5lxXc&J#B!LYIu$PE?%L8ecbB)z z*?c;Of(2Kt{@5%?l$(7Z6uvpG*Wnd!e>Rvvq#usconbLhD772$Y(9Q)aB?=O23zHj zFP!!JJoXh$A&w$eoc1u`aw@Hp`xRgRAJ1h^=L%!vvc!PJATeu%BE}#8^aHrx#TtJi z((lxYokPe+^e4S~p;(XFoNyq|{`vFG?9nysMJByWmNd=%9@=vimk3t0<4!In5wW** zCdB4(g00Hy3OeLi22SmzLTPk(ImF>m-zl}LwOk0qcTCb1EO*0h1DbX!gj%E3X;3=@ zR)}wbDGB4RLsYq74`7-oW{??^q(Et5OYHu@$K9qfg%~}yfOf|oMFFDZK}=}4YU27j zdrJTDs|<5=Sf=zy5xULdt^%8=4t6qZYy^-)9^bt+l%)g_)K0GdRvMu7ks zUw{AJo)R81kQP~eHovVzYvYqa^YGp6n@M%lZWVg_$B>DyjSsSbxvC`TAkDyyI@!+Y z^j=_!J0sEkt4Sy2FXSk%O%1zdGv@P!F$@UMptZ+b4vh&AWD&2?ONZ%j94M7)jPYot z+fx40lLfX~F52dE#jrKz=sju;qQ(#*{2*}Sw>f+4XDc$biwx!WXVpxxKb--*X!>!@ zIXOCn9n$IbEMLp{Jyh5oZMRG1X~{*`8^KZ|5%pMI24RkJ5uqxMMqH9mxzbNn@-X`` z7H;N%jk$^NBB@&at3}lFG6moW@5(uG7%|^R=d{K*~ zv%}H;btfGvLc=}jG-mx^pwaRn%gKNez~jVm71hp!5u;{zPNJooc_wdB=bVq80|^xK z1tqxKZE={jIyVxa?7@;Ah>1#b44A2IEKP$~KB^Nl1Gcu2sFeeD6K>2nMGu~F+%U@) zuPr>$^JP!fRHW6Y_~~A)MZnU?ZWR<-4qSf!8L!cK`}X$o=Jw_3$?dzJ#@TGX3iVb{ zDHXF-pMLA!`uu-UClS^pAMdskYnHeBq7;_XeR@ZCT;RVz^^N z5-Iy@`>i~9d7U(sAha4gFna~y5PZ%PAf!oz#1Y=|pB7j=t5&f3@WsX)n(#-*FURE` z6jm;V-FgkkPKVQBr8+)5X!dh71~>Kq6Ju~+$fLC4{sc#dTS1e}pxk?*Q6Qgc(eBJ8JvWNzZd+}%-%6-)R zU7I2ifhFbIsw2R|a2ve%S-UlwTihRYLoV%-$_~IK!%~`D722DDdbL&z#bbUeXj}&4 zbS9CE!6RwXJeqbPTJCrCr+V35h@vyIW@`gnMl9re>Wu|5odgHl1KF$c05 zSc7OaQU|hT!Vr|L6N?OrkOnE~h*&AD1&V^6^10kt(!#cCU5-kVDlmbtSP(=^E`Zv^ z>AcG|JT2Eo{m^IMtjd5tph(bI-0!j4RmmJPz~*%92dGU0yKEbdMmydl$!6_ssBC6q zGy(DZCyzdro6p|7Jn5fb-rZfl`Q>e=R4!+kd^(o~MM~PX_;h>i^RIXQ+eX_KAM!u{ z%(?!ZUi7b@2r0Hox+5i$8oBb`zd!wM^|@ZEG(UX0^ZDn3h37kSn_97AdB@>3ZHn|F zwNR?jZHQ>`f{b=zz}Mq&7I#H*qiFMy*ep;109mQ`w>ybsCWou_diavPQnLYG-4Q)| zY4iT)^D4v-Z{e{$U}Xz63bAza;T}}6-HFQW#r||U>kcn3Yw0vRVb4I40KST8CzFBq z4QG(@x~Wh&;Pbn^p-RS=Jv|%L(>}T%5W5H?01^UG+5`Jt2NCgM0k_XD416^9N^N5%{Y zY4?u~4*Cg;*aq)UVi_?hSiR*$tk*c|R;vsHe4zbdyAKslAOiph!4L*2@hPMXBYn&eF+7U_F2fM*7EwE4Glv_KVXM_hMl0pguvKXl zv&nk5axemV@BZX))@k;t$t+EoV#V5iC0_|RTXu7W^mrFuNZBH92HkQ4*Fj@g71?2H zT_7WI!Y#5!2rG_Qq6xb(PRQiRoD3KWKA#oVAWo%;2EC`r5G}`6H?#_g3G#S2K(-k` z+hxrP`}$WejKUSMO5hHNggOuSlxs?!49eN6lBNO$t7YuC)${?jv#s)o^&cm1iuAPKri4 zPBCAp<7mtvGl}N>R=v#%2zs56+nA*ZzgaKkiguP*nkb2J*ismIvX^#Pi))X*+Gg(v zw)~yTw|6Iyayxx}R>;TFQ15KETjSIEpq8QHxF^{?ssvn-Mgf?NfM4_z&GUmnCr5e+ z;|g1A@VT&10E3_xf!O^ptiTDE-J2_xGr2S!p$Vf>4uwF8UBOb44u?{{xw5;%W=jlC zx8LMKEfUry#~ZYpRbjJUxW4@K3E$`)AJ*$B7@iagsFh4q+p%=5mIQKU2FeuUgG|z9 zje4Cb1e0+s3A@#36B#qpOu|=By9%HrcIpF~OksLBY)z-5xJiZD_fXP^k-Sio8H_7~ zUc1*mIGc^8qxxh&mki+9{n_wfGR`NENObT~SUt&_vS|ZrK}r?;Y@?wRaRg6ZUcaW@ zgc-|WPwzkWK<&%RVJZA!AM}|U#eB0gK5ON`I$CUY3u%BQ^v2iaOup1Do&otY-OVPO znNmKUg3NEZQtmjiS*OMj-+QhDmrB`5eCTs#P0#e2>F#xWI=I`iEz1g2AjKe(AOVm_L=FX@s(=cpoO8}O z=bUpy6$&{=A_EKnGet_2MM<_=wq$qr517sG3ItL0zI#8@);dw6 zE*Xg@#`W}%P$^E0+AWZ4=BHP7qbf^K1X3Sn0k|&C0X%kcx|r5jbP-=PF$H$lHm$pybnNU;dKBu- zf;Xs%+s#<|2+{5HIwq!WfAJIGtA6$5`^U@E>jwv5$#%SVe0yp8==K~?^K71+e10-M zv%iw9rpt+Jc6tw#DnU(s((N#5Wz0-vu2_hgZ7yFppP$%VnamZdn-BIM9PR=KZy3n- zCQ}YiJQWFMfVmN@X|xil&guvy)0vcwCszq|pibs>Isw%mfFo(ZW;J~R5;mnm8noJC z26Hf)jD!2ry@%@y0GWCB!QNCPSe{!e<)T`L-xIg7ZAoAHxK`cs&&)0?7bkYt7dPXz zd-on6+&jI$H9IjKHk)$OIVRJ*^yL>1_wVlQd&_$VuO2^re)rCkJ6p%=tAK)Ycnq$@ zz&E|Puyt|=JXY`SuSdv%y}9`mni<=^dwXKLvX!;UV5XJTjDpI^Pd?rZxZU1(Zs%lo z>FD+EPafaTq@HZgt%GOmy`u$CpM7?^y0P|Re+w`S5BF~`Y;GKEFRadnmJW+?U@`ze zmxYN;((}gqlG#`bO0^@D;W6eI*OM>pKR&2cb{-voQqo#1{^rD&iR=%O=gw*!XRz~S9DpUkl#3lUm|DrgQivR#P^{EwlqR=VjNvd;BB_Ke;gF?Dl06Vf z*VI-ZWKpTLCQHI^FqkvN#B{}Cj)e+f;m)RcLTNRdAx`9-Mt4f7a);uT#qxNmx}5Z^ z-pTt7t^jzs%!|56axNh6hn%_Dslw{x$FKkR`SZtn3v=7R0tW)9t4DhqTL&jEcK0{S zw-2^o-kn=rO+}NFnaPdi9guul16L*ht^pLBP^RSfIP@wT7;e{gb~ZOALz%+^0Nr1l z1EGG<8jLu-4sS9a1@68?p#+}sK)W0V1QnNtA#vJ`cAH@`t=7`Xcs`MZHFJIQNmDKZ zCOmhx*Zi8aoi4E^0U-h8lVZ8W<9ju)sXV{EP+Kb{Qb`~k)Y&(RTSaelv0#|mPNhnV zwW9}_ZP4mlSw7s^n%P;4x>Q0#UP*J$Er81X^65*Jymt8N^uePq?#-+`-rfSi0#F?L z;@-WxyOSHh5<0$j@`s0~4}JESHk3+A<40eA{$wQ}8K&uo!?p+*pSn4|xkA7e_pD8h z@1AaLB^Lht=+06lJ$Jl*2dsTT8+>nX^KgFi#qS>gGik9&DCpVv*X^L@gD_1vxyHgzin-wS~{`{^1Cq*>|eNLUv&z76N(Y@p7^n1R&X| zmD$Q<&R|iLH^8bt5H08uFV=Ij8~1aeNvkzR=Lxfu37Q8_8!w-M@;g6sU@t5zvdh+?*!xIqG{ruTi&t}UWvQ&bR z1{ET&N@|y@QhK9KO!Ju(kU=^X(hh^RHX)d#m|rVakfH1`f?UE?`@o0I5Oi=vUUPuO z3%N`<9%u#vIEPe#BLf$ZMj%e^*jRv9k}QlT9f`U5rI`NDOK(CwxlsQ15o?1ITI6Rt- z&8`DS`h2Ba-rSxAKLiN6mtvt*IhP&J=AH3kzM2b|^k$dO0MvjkvpE8)7;ZbErIU_B zAw_l|XGsL6Cl()`1RMnuM?w-NR!?8-ugny|2PNT7)E29SXmp{FswAC$wJMTNMrB4@ zIhoGJt24oc)TBUOWTE$db^_Wg2t4+mC_c{cu4~;0a|yr7yEtwXoHN zpe`8krOWw>RU4d}zVpYgHkKBu^8l0md~@X#a0fTn_KzOF{`%XO2iel;#)GGu%Mlb; zB@sx9Ym1Y9mIUCB!Mxt=pIS=Rk^(@X30JqOwQ=C)1}>ZJX@1tljF#+gvSuj|nzL6O zskC=tyHqQefFik^14FqKfT&KN{QhX+Xziq6_hYOE2oB`Er;{K4=C(&_uNy{ z!PQdn;nD8i_}uL5Np*HBrWFbm5bkq;?)m|ITL1LpU%!6|a!C(P4>wMpJbC`=UbSS^ zgZz|DDP(HWDZR6rsrVyEvO|HVvk^4vFbYlV>VvXL+>oC-Od#`kczwVZ)%kn|t=hFSsei( zau_;7K`2dft1FbP6f?QGi9pV!QN~1UV-QqgwzuZSt9E+~4ANKgwqPt&ti)AHt7A5# zF-qBdu{z+LI9{u`6WjB}a&hbB9q|8O2W*-23t3$SlouB@(_cM%1}3Pd z0P+iJJqtkJkj>qD@$%vQla0f<0uW{#ueojW>XGVZrnRWP@60P#0>+?Bq@;7ReX`g<^7HK0dQj@}ej#w!mQalqMIz z0U=;>Bx+UfbY=O`$zDY#vlL2sd;H0lk3rk~!RARKXY^i%UL{;R z1WK3ljS$ji2nMx$bH)*wF+0O*A$XLk6neX_PyihlW2zVik^D+{I;aa&;_)f)yvw?s z{z%Y~2Y>r8Qe(1QoLE>nc=gTe@4kJ0unf!&cL8nb=p;?o4}3&Zx@^EK8vIX0s-N7zptG z5Qu-WQ5n z1wz&!*baM?28SoWv-^Dj$pu38I*FL84FW8fWo@MbjCiFD5H8)wz)XE`nJDabW zGyt(~)4O8h+3MU(yp####wP%ucz$C&mYE3Vj+b27bouzz<5R#`nwVdk3)a4T`Cxft z2PCPsXV|ib*LEL(m&i8AK!w!iv^Nfx z8y2Eovl!RZOiY9GJ+=HcpQe)ee1 z&%zob1{oJC;~K+0B2y}HYRx*m)~`)ZmS=CTRKx4Rcy+0kttFOD_xB2ZmAal9@p!@Q zF&wQ{YfH6S(HyNM7k5^svnEh9@WoPdQ^&7Q9)JGj_pdezv-{RDsw2Gx(2LW49uNGz zfDxCk5|vlWt5aJUcPtf6WXq+6+W;!z1mkOUJ52Q8Pd|VSz)#AGr+4oi z?4G`UzB83_z_>o(piavfV{|){i5R#_!{CP%YnylCA|YtS8Sza$9b_aeV3pJO0y)nE z#5vZmKUoL|f^r4Vs?H^>0WnEzzaji_Rb;bf-b7XTPt931HMY7}7iQT2e;|JS0Fdgw`V}U4WN5p(? zcRU$LgHNG5J%8^m$dfN`u21AEg?ObJttK4|&`MwlOiglPg5k z=71*+^mu*$0sAms1vDcqUGjsC7{(Ef`TtovPW{vdip{i&!47**&pP2*(zVR<;(lr+$m6M*vJmS7eD;?&-Ur!C3- z=dZumUv(Ln3j5}5U*gfD-B_ryyEC`{5V*M??cN28XMnu@awU;+ujHriZU9Ek{h#K;dk_Ek`rEHx{{G8*cTNG- z;`G6Tr*|K$u7s&wUA(EdLyN&G3cHhxF|E<;Guu>rgQzgIKM`=7L~5fo=}{K}?#fim zRcF(IJYWx{W0itGJ+%OSakDmGz%?mW~1`P(bKCV;Pd}ci$k!P!BlSWC`Yk54@ zAbgP6N69S;#|T)Jg-mv6%;97-YYTumc0TCV2`PP7F-$P-0!BTz1+3Kday4J*acdPc zTO>1`$t|Umm9!&jk$T5>mU6BXNN{Gu6Hd=~ZTZfFalLo82EJ=E0BIa6Zrr>7{NW>z zQTg+KfBWR|Yw!wqa1aMF&;6a%^8Cipw_oiBg0Wa3=){mTK8ey43EMcqf-CHHP9BuQ z;ka6r$W-0V=+fHZ6kj`^3NKYdx$^Yf;$&{J5{YOfc5?~Hx1A}Mfksp3tK)%m#9*49 zNSHJ;D=Bf-l~fzRz*}djfKZrWY0{yK%006IjI5Tf1Pls|StHU$CuXvhper6snW7%x z51a^qSy&{VH-gyJR5_CdJB0Ctxha}BWC?(D($v&y&5)b&6(YXr$KO0Z*yf}=aUN$=A5Z#&(qGumFGE4xCSy-o6o*^`sC$9AfY(E|Lp$mQ?LuD)+_-# zSeiOh0xXiAu5I5t-gve@Kfg4WswLftP-J|jmH^9;{GElP=MPW0)rr|X(3|-3>(iw- zZck8)*H*fGGm%XPY%3(Sw8T;Q_!|2Rw3FX*zB8ri-=l zq)!xIm@gjue%w5%1Wff^An*V$?djq{GM{p5a7=@X1Jg<{zH%X$DtO|H#p&42laPCU z(dQBhy`hwEVe?=-$tFtOGE>}HUdczC`H;ryrE0Z<0L1oW#OcoQ6l^REf|qRp z@xu>4{`X&j2I`M5J_n417waG?QgsM5Mk*;}AI4!3Mye-k)0NFZw@MwC@`C~yyVa_) zaD_;ik`;60;$lV<*~O(fmuIun#p!}?Sv3>pT5Lsj|IHy@z~q|ofyrbvqSFa2Mprnd zmHHDC;HI7pT0*6y#b~hkfNJXaVbxcv77w?^tNY7`$BPAzwz51k3)Ya)?S=Kbj~+h! z{Qk@T{Ldf%>!+Xo_|tzpy?=kDJhihv3!*Ovua3U^!yWK-o~Rb%dT_#4vzR=!P9Ck4 z=fSr4?qV=m0Gr-utmJp^-z!`ob+pWFZUV5)($2>A#LDa}04Zd{@=~T&n$ovqL=64l zf<0;xIvkWdzTqZyp{}QOiPYR+y?>(_7T0GH|Ced?%)8N4anlz_9jwn)@;T>ZWqfvg zy1EAtwXtdQ|0$hIPOd~Rt<``oeTKVm`{-c397}+UaXfud&@wy;q|~5yxw)Q-rKZ*o z7p9g^zkGg_PSuV!4^Lmbe6+qZnVs3)+WY2U`t-%O_ZK~&1Pbodi*q}tj~+cdetGZn zJG&3Sg!Sd?XP+O;IIZp!G(D7Gf0;oZsP%HcP=&oa*F z!4E(Ew9K_cH>QukMjbHqo;*E1-k4vhIjz$R5`#z<_86l+7pUXtND$mepFjo39hIEd zklwCMgY89lyc$SkrYs@-_*$?sm&-410Bp7cV-b%A6Xi+ZVgsXW(Cic=m14U+m9aX3 zXdxZTC4$-YMW-#n_3zh;8^;HQ^mM{jo8G&->??Cyadwe?V#)((;=!QazUCJRg)F|& z5i3k4Ljkuc=x2FJ^<+AmR5^V77cg1$n zZCEI*5Z|=!NyofyGEzihxak8>83#uf+qsUk*DO;iP+xxY=WiZ8*j$;ZOoNo|;?#pj4~}Lha?vSp zmkxT(az`W}U`mw=;PM3Bkdt*_!c3LYv4GWXm+c+*^B=96?-koSG}|ati#>~b#n>K*G7HYyKL1DKt`ED!)n=%{3~#}w(Y?Ht-q>gm{ckQ(a%fC`mXH;eXk!Rsw8dS=tbg={$LjBUM&090VvY*dFnx6Il>lqZr~$d4D- z$_|mtIGfuDO-3u#aul?FBGVv9wiHw#G0wbO<(j*j3u;7xyiYQ_iN@>6x~besK9nu4 zS}lu9@?Gbg-uVkr=S}#C&PelRVqPhZL!W+rR?B+hGklWl&UpSYE)S?c9RAKff z+>W``YGCQ!bf!2SbUMNAHMLv@5rX{e#-pbjGe=KP9=!VN>(_tz?&$7a;AE{$0#5gB zuwR@I=nDb2St+NGSbUzzYobe{Mv2}%0j^CIr6~mn$eB3c5QisMZ@H@zkB+VzC(bQ3 zh|A|^u5Q*>1m`D|1K}%+H(1F}<{Hi3`boFZFZEAMapsE`3c}I(W_@!;1*x?_E(Oiw z2m};A+BEKPd~Bt2z3sP+?su}R=F*4No3`+W>6|Zcxq8hrc`m5Dx^q!yy|(r7W{V(n zan79_pGb)3LUo@=RzCD~kg+4S4^~#T8bcqTg$%T<`+5)x(uTi`w`9g`XV))_qL)w1 zo?lN9Oh(kH&hqPJ7-i!L$4h~x7)MwjoM75{Jh zqO6!f{0HTeBa!KSUKs>%&$e~AFM4- z2gAn6y+pv3i1>=dwb|lK$yYE-!?{Gj9!S;}Le&XCsded%x&1^?D|b(3-0`wg$P{vD z96mV^1IZ|~ja`~ZSEpm;werFK7xTPuId?D_4~BD5f57i{1d|pyyhG2%d4mki{QT4Z z{L6p;^~W#w4*}i$(b4hpjL}QQv&Il22e^QVx%vQy=vm5XQ3U))zj`0r**J=(7+ib` zZx}1`rWMc*?;HqnXqE1mF}9#h?`OgBNoE!p&2j+0<}%IEfXU`E27FFW1vu8qe#7+L z&!1ESzC@`omCv|B#Y|l9&6WzYIfKsY9G}~q&Bp_}P|BcAWr3b2?*jvklShCFb9C>U zKYR7H!|G zNZR>@5&Xm2(9-4k=a&oZv1jKt>HUzqblkBNsqOfDloxA0?lT6vSKLKjies4&EZ_9L z=Jjt}jbB~YLFc?Ln-#v9A=%(N&gKN1S7#`+cUf`+;`3P+VY@z4SDd_@1HGR2yWXeI zo!iJ>yM4V@Y+Adz*5l6ISYL?hedc1&^4<6u?^&D3(uH=@kB**5KO?{|PDC$`5zjg| zuR!RZkrz^muBW%+lebnN@{5H+N88MLuk7p&+J5Ky%BR~iS9XrKF0OsG&4>M99F!xL zuf_Q|6MyIO0=z#!nx6kR91lNu*sM=pUAmc=`&cXzSGXfx0V!D^=5NW&Ojc5ibk zn=;dH-mDiQ$poOKmJ7IfaUZXFFc@IUV)og|bkbq7nSh|m#fFc0Wl9A{?KAR41UilH zRx(t%y|k=9?k9mR{qytef=7YfS=yqn*)-%&>Tqg#~dMz&xAqqiC8j2z!O?MI*ZkB zQ!2qt+?yu!MECp(^orht>ByL?cvWLHzNMIPA&7db5}zjDz38UIxgj{pXff0 zFc5p676mP17ptypoqW-I_BLdAkd*TRFk!P);WVHf%@pVSA64XJlc?*+cOdF@Z`_l&=uhpP6^ z98vnvb-RNbl)*t{_A_pSjniAckYo+vJ&T{wolRW$P9y!A-1L`oiZ>q*n}HM|HrFmHD>^croubBhAAYK-s{fS96YW@ix+u~E?sVI zeQ%>0FHB9|UR>HO<|CfkMj>c&Iso`}n?a6$$)l`WE{_fB5?_yb4;{P^AH5AHnv=BOxT zaEC7q(X~94n9J9NN*l|Ssl`|*B14=3ZLY+`|&7-B5?H}X?!R$ndxZfKTl%I7xwGa*qnUDAWTn}_3Zf(v3c>ni!G zK~Q&?hG0wztv=v!IY0x4(;W^1GE6|~`COTRi02Zq3cse5SH^>EyhFtbW;`n^ za$`9=H(rkCN>gcy%A|F8_0d#xI^iuYK5+58*~N{eNuFFIm4SeiJzz?f$79|U$Sx-% z)hUzz*e_U^OfQ7J0P=CTT}dyNr}HHjU&WDD5(=lkXOu7|9woah0DWG}1!fMXw<+3oiVK{UU17~q?YMpF6>ng;?%TB$~@3n?~{xD18x0wa1 zklmN$DO5_9Bjw8F3__L`^t9M9lgbKK?0$*WVUkG`*+M3st^wd&0nDjtrF7UGw&*>+ zVl5e{CCn}ps0^`LN`p?Rb+`)I@s(GgYWvllJ4XkbOVdkhfaskH%NZi2ys#N^I;`2M zBVe?cfZQ(>i-!RVSsQkOFhQ-F_gH{)A({sTfE2J9EpDEkE-Vja?(NLA2+Qt5wNRTW zKw!PaiTS0w$BQeInNlKFD*1u{PwO#GIs{_Vxmp z%zyXO>*v!l$JF-H+TMg!DRfKq>4~MayI|9K|HW5de$Bjf@ap$Je)H-SFx0<%CGP1~ zKl|YY@RB5BskKrdJ6T#=divE|Y2nUH0G!9o47NdK3fV*+X-5-ZVbjSI5?cP@athdh zJYs`U&6V(22sHZKzn<-*3*<^Pl7zw#g=R95C8mo#GtQKW%of?LAes|0Nq`*AZ_E2Z zh$KN-ozyEiykH zOoRB3F;}R8^3?S0o%}{5r38X^SIi@G8gK$G34^6dqZLnOAr>)@Z-Rkia%DWF40xv! zt`P8`xJ(9vhNld8ysmOZs`AkUCUbKA^M11^@y2b|f3^x;Ns zW@%-8JwFK|wl<&1UVS671o^*MBB0P|bs&$GvjRSuh_AO>LfN=4l+`N4BC=2_7Ac%6 za279S#-j?rl}m*4k#fQUy1D>_Wme>uOS!~&(Hsc6gBB$hNQX)@D?ofT5t{q{o1@!h zr*(aMd} zfFa4yy5_Edd_fw6Bf)xDWRpm2d^RpIBS&LJVpA?2aZOEI2=p{~fK2CC$4d)BZ8Qm- zWHy(@8%@p!;u|#pL<@xgNkb{OFrZxBh&mMkZ`B+q{sQrP*_;d&_vd2@nF35l%f)g) z#|=(De)3{=_CZLjbV>DDFWq9GX2@e4O6;&!iR*m|{uH>u?cSc4)R6+7XgUto&KaNC zC}oNK0nl~NJ9%vgb0jvi`W^VF{^h6t{PW}Ij~^YmY`P$C3=79&Qxl6x%jDGT;^gXF z)Tm+fv~;u}ExPL$No2ZnDjkh@l}evn<}?E!;p|Gv2Kpv)rR7aAH4-w}*lMdBe0+hZ z!XGqARVk&7N|7fr7H#e@ZwH#IOt72;nP8wQ_2;LTR;H$NmB~WfY^=FcOQms8FCI5V z6>>I47F4kOleOyd{G+b`B;@yxj<;85z%r{mvp1i}S#1W5DHw^wf=XX1mJEa^l5#^b zQWb-*l1OW-Ql41_5yYaK@BQiM* z&BBeMpim@*ghIe!?R`oX1OjQo3aDLmH!t+uY8v7&aU)&zmoE)62C0;Os#dCEk)%qM znoq+K=x7>UBBH9541L(CCaARHF&F`dV^IklBJIYtrbZZ#ATmf2@&<(j zQ#AYr>X4K9O0dl~1402G1A&au`?(@?D-7BLAAnQaG0p${UftDBc=Nyi>UaITL3AD7 ziP#tQPOX*LDt20-})^M*4hRm_jCA?v5QxG zP^^)E_~l1$cXVEBY5(N?`i{4+j4ITs#U-sxt+%<D{zU)Blr79t5TbhBrW>P?&dN)F4fw#6+% zzFI9OVyFx;oiY-QOg=t+{$wV$<`wAl7O>pYs!4Ph0{p=cebAnc(Wc*>?df~JM<(Tn z1ahOiIswbXeA?Cr=k{Q67$in6H%dq> z4y0wUx2|ny@WT7uPzaI9rXtBbEzJ~_*6E7GZE_;y@+TKRKJ!U)J*=xAL7`CxVRY^g z8V(6N^|6S}t0hP~602(I^xsfz1b~1@vggFolSKLQtf-U;g4& z|0Sk^(#k-OGVy4Gkv=viVA5$M-f;7U_djUrKL5dp@ydJG8fBfoxpoP*D8F^?T-!(Q zH20mmez6%R(nx$XNI%C8>W>QX*r?P%$7>9Ytr#{(%7hF}@7QS!JosxM^r9}l*H-td zkIr`W4AN+QLT+EL*-EAk3E9IvNH*ro|NA#T``O>O^XLqjPb~s8%g}(>0&L0boXZX?)!Ju-m#}Z#5FAI#^xHIkZe6H0Y#K zB9841$0IT$lVXu@m}79jLh3kRiP(qVQ&O~u}TBcGdkgBvwo?KzGX*6mvnMif2AewCUH9Qf@KMU>`_1T)A*YkWq3abA zqmBx%tLuU))J%1ODl!md%weqFh#u_iZ@YJJDp%F^=m8K6qgLHmc zM-|`(XiBk+E|h7MsNNgb2YMQ={`1>s>RNFOTxZ+$kKg*$WxiP%3z3GPpZ*^|``O?9 z?A_)o*Vz z!v>l@rV>B=^vtEV&Jue5?Kf|?A=K>NVH{+z4~d~;MD2CzsB4tz)Y9o0`O_ zFbpqW8;FJFY6BSi9VY)3jR=H7K5cA_OhY#|boRoB z+PnH;H&`5sWndVKluLNJ)&_VF0zQOAbL;}NU2mk3uwt*A$deIU>v3!WU1v}`cyd8E zoh9H3;UAs5Hq5lZ8xU*;lWWf~*;a8sT_K~k6GU?Q@7_L#mb3U2Xh+l4%iV*Fk-8RZ z*2kvwoPD?b-SaS1Kan}y0~zdwj0_>TTBpH=S14IZD^Dus(d9utl4?cb2xvGv5H&>e z;B26Bsu2AjBGlBup3b&kHo9iUwcSHa_2+*6^8p3qcSDrRa2^`PpyJi_R|k7X8wX*{ z_=K2C&DcNv@a=zl3y;0<8$($Pg`#w{`d|OD5egG4U>IcgjnS?yrSj%rJjxwYn?ia5 zQ_Z!r1?^4xNlbk}!0&GA#+e&`dyXG2y3}eh?Aj1a=ah@_2rj9I<+8ejTC-K6HsXXr zu}vwL%8U*^1}oMmvLdZ=79PW93YbU) zhEF9(yiT*hrm#z?=z;E0G73Qy8yOffmoMVdNMtgDPBK`i3?>7QA0r@XJSrK<=hHcC z&L~L%{yVpZp)@42@A{1f5{0P@u*rn;2n?Bogwsf)bQ+SOrt!Ia0!8g)!`Z`~?IYmF zaQoyO1|CUA@XR_|{|Fp!r;rKIF_G0GBnhQ>3WckXVR%Y1s%e04v@oGY3f&Yopo$S)ULXcDK)MIsJJ;1u zv)V%mok7Kbk%l_DS~`$W6u+yE$E#%(e`^ zd*(`Wd+(KBjtb=*(PGfVaLKN>UBHXG8;9@%w}kxqkH+XewN^qLAqq$;+{LEPNJO?n zr}BuA)D8$vqGykyIqjsJtK&i|s_TDWj(#k3j4dFbm>d$1Per!WBl+N?A?*KPl+WrNgbxv=bS?`e zB1k!8CPylf@R?Mug25G2hgw>pY$9Y}n5b3pgiJbvLZP8LuV3q@7(@aw3qca{1Z<9$ zj-d+4gOD+{Os_zqnB9$oh+B=9K5BvDXy7c(AVB&Dz-$89iw1{Xf=b781Zn*kCZ~^~ zHdC=2Itb+|^ctjqkCp0VSjx?-ZG&V!VPuddar5z7{vect7P*`}t znxRqT&5Iv>+6I-eND>OHu9M#1O&J}y@EL2yeCDmIw+Q{$NOTHn=$(ITX+L+p;cU-m zzwSqp)d+BiA@(D2unX6T1MmFb|LcFg-+c2*6Hh0Q!ntHYNoDFTtfY5nNeBhnQ5+9+R2^*QL*TQ0WuP{tZ>^>$li!qL$- zwu;+%xufSsC$+~E?C&9-`R%)(7+k6nG@JiwCA+V4pt<*I2Tj`d-h~hU<&!giGb(CeVOmfOI8DkzD>OVT zPi=DpfTNoLQmE5WEz6LMxMF6Y%?y>+xHoZLzEdaUlPE9~ueOn9LqCCdRLX%NgI^)_ z;QEL(AS<;B!M#JkRLQ{%noBou`a_Xu5%gJ&El32|T*mDNqTp9GBOkk;!>< zp;)fxunA){hqZcd>G-6ol2b`6He0UYON|tTU;s)L2@zEB=m>Kd$-?)Z`+wS%;MLCH zVsSJcN5GNc@g|*!$x|s+0*S#94j5&?P-}L<;aCx4m|#*17(KVpY$gpmGBVI`weI@G zhMpmCWEaZ?JPBJaW9khYHW7g&v$^zQ^Vy=_Aod zt)ITvhv;kTYbUf_{h+C?j|`V{8Ir-KE@{tI9vgoC(%-``eb9Sj`24$LW-g04{0<2L zg;KkbW4c68s0#P}?#3XEf|3rNJ$Grq&KxlY%!b-XKMpD#?yS2+&%Wed?vvBHyV{^) zvf3&{V`UPOOaenl7~oO-i~n(9xXnHSZM}NtpU>7ev`LhWJUv-VhmGlIBrvn)a(Y{+ z60-*0ghG-<*uM5*_|T2B=ilz=8OE3;d>Th|ew1;xrM0)Qhxy@K*Sa-$u0&dKk;LYq z2JA4Lf|qC|11PxA5YPzR@yR21$i`CH3QOxNK9@p~1Z}#oMCe!Q%RWd4QL2|p!zL1* zX4PQO2(FTg1SbklQ07T^c@&OZ#-j1XTsno&0q3g2g^(d#F+;i}ZE%{@KrNu4YKWa1>Prp2A$c6xrKy^~TLx zH*Ykz-s(dP!q7yTkk&6XAz@h9jm}mGnSvpSl`I4qKFCHjV+CMZ0j>M!*N_nm3Vd&e ziKsz%S7WPC&1Hc|zb@jyWBc3tpc>jus+6wO;Ia5VzRypWIMoP_0D7er$3=90GNckP zh)gP+X|xB`3gL}jq|5>103HWVN)lQO0@N?yE|yY`qg-#he6y$d>Xr8XA%t8oI*b;H zk?3|5Q>>=5^)49>FIQ1@V||!wb=^el2+Iiyn4%FR71h_;@#*=CooxeSH`>wXaX~zi zh2gr(ENp+zwNW~}u^HPBrxGa)a>FnF;qU9v0{%$TFszNtrO>gx6r%OU`FGyAj)lrB zYCfW_sYwjE25#p!8SON8QU^Zl z#F+qV7p?Y1tw0E4cj!!P8l?F~XXgMy>)?ycN{K7A`|w~^B^3#=MvuZ|m+<&1t;TBx z`U?S@PQmtEI&E!`i6*YH!;NPSD?_FknRx@6#}C$5S=K}D6C_IaH(G^ z=pqv@Uu|e?X=#AFVCQ1gwtt5m7LC>WCpIed{`B#lwJ zl^QOjeFWXobxWh6N-0e^psyET=>j|j^4WEmkl#fHjCrDv1JXbI)>{|)J&1u@H_?dJ zy7R5g7rJ0{vr!_YpoO@4qQNZUX?a8{C=1i12po>n2kC0)pb$o>S~r_R8NU3{J6A@A zK5p%3`{a{<`lsv67NEY#1h-@u6nIz?D2v_%9Xkh>v-fo>k@<`8j=Oui29#nI&vB@;?#^-@wTR|HJ4 zNGIlt;I;X5;~C=FW~oV^)1aATk}ny~`XfXfR}Aj(Fc=BKzR}fv6;(GZq&2*Kx#i=x zAWaPoS9*p=(-t7h5@A@KJS&%s(P}C5(F-hxgDevwyNCMgc?jZ-=3oC~znV?tIr`4E zgU1K9y`i^JOnq#Cu#sLxt8 zAtPr@KElO&2*14w8SLzdI@Mw<65dUa%Oa5=_)Qt&a=cK&rn>@ehlsb zz#=mF(3=QC-L-Zoi7rs-wc1d`WwF|fBDzE==3H(Zq4v@l5(S6L(JO`4rMaU8uutb8 z2vnift7Y@V`jAJi6@yKoh%qoc)Wsm&LcS?38cj07=;#OnrH=5)B&|;`RZ<8tj@Ioq zi=`Z2B4Lt&lPe$Biy$Il4QLj)HLw&sa292AX?!{qO&V?c;AYPd0@4qM5mh#|41pwq zsbf8cL;<%mN;|t0=l3>!c;US(4QJa>6g(Tz*iVyy2RD{3k`RbwI0QNT_P;Ys7I6Ip z+c<;Lqr%`=%u$btMZ$Hr!)PiNi+O`A!L?p%g$$s0l(A7-ACYGY`3y8TgUl1Oo`3&* z)2F}b#nW)m>u0Zj`kT%{G$ZIHYndZBvC_|wXoWPRf@>l|yK|)Irw%kA}%4vAU*ddS?Wo!_aP^88kTB!uj2&ZU1`V{of1^ zqNv)S9wl&DX#Ksg>u?s=YKGPkRBk*LQvbm}fbR>bv;M7tuFGf_SIs9erEHQ7efb&^ zI~uF-dcpaivXd|?tnNo^@t_t^pG>}(f$hwI&1^1Z({#4;l{}59>0cqjU!K7d;b?!y z|9tD?%k}4Oj`j^-djHz6Mq+&{CP9#r zlck!dsFyf4*a3y|i47eD5Jl?3+Qk?ck_p%o1`dXR*63{pkBtN!qgbk7O(_glK*Ivk zCmDtfD|JE57|hA%3Dr)!aEwl}7s^2%*QZr_WNwF0#2&+p4$~rHJYTPsF^EWvP%Srz z*&H&B%S2N#gWRFUroP6T7?xNU(HmU>yVfZd3Pd*3|Ig8THA$A9_ni>Qpa>9z2gmlf z_TE%gSC{uLz4v)C^LX!ldT*;T%U89jHq+xB2Ef1wBt~JEIRgh55Ebx*pY6UHC3<0WlZ+CzA!QQa08YLAJaDhr} zQJRdad-5ifX z1VSw@t|m(aZnZ7VVxVNq?eo*I)JW0K2E)$jp;~%sttK`?seXlwgO4+tNe9D0xM9(O zRV?7AISIT=VY5>0f_XH)xk;B+zw^WI|HXxch%O}k>(~J&Ycf`-gHOePD~41piPqzN zBc06w6}iZfjHZ~PWp5ifV^A+tGq}xXWFk7fM1+#be!?TwfBT>QZf2}b`xg;S^L+2y zH(=9udpZ2tTla5n-MyB+KanaKQ!706I6A8p;R`?h&U(!NcjsG6 zVbt1lW$2(de(N+Cf% zqpUk-Lq1=HMfv!?bKL8r152s&g^j5TQNI_jSvo+~(&44M;9c$MH05kO6q}h7Rbu&p zQ<9uWxn%DhG+XWV&VeG|z2S)G<~MzT4Y-``89E=4EHjDO%-T37cKfv6sAO?2j)Q0e zY1!4MzuLZ@eEIeBrdB>XVeMxR8K$h2_nv(E^^519w(Pxbp*ZY{Vgs;apV%zjL{d_z z(cA8T1Ke(xfvaZc?LkLB!ll%$EfkJqGZf9VOnawU-x(N6>!2*M;SEFd1%E1u8AW~MPV}}YFTF{kRam_>YE0#v?`@jDba2e03?yTIXQE2DdiZG<$Tav z7qEV<`>0V^xyx{o3=sonZPu*;cMP}_a2R3HjA@yylqaFX9{Br7xll52YxT<2yW>kM z>sdM!yrhC*L_3!nAq7)BR?b1tC9( zS&bTlv^dNc^FIT7!J3!WN+Z-Hj935s{JT?p9hr9}QMZO?^i+0pH4~3WI^X<^dkXod za3}eq!yHvT$+3lrfJk=FDrU7VW=%aXwaVD0%(>>_6t{YP%QyDQ-!5!hk2|zK82lbD z5jdYrr}f(4sDIXCT92ALzZ&k9-4EtMP&SK16I@W7Tp{rc=JC42LSUnreQgGHWtc`2 z{7m2|Os&q317EZ1A6xNU+!Rvd=PzAb&FN4;vNQEzntJFxTf;lk9Kdo2KSwXX*vl0U6H>^7@xs|4B4)J^bW9e(nV zX__DW;gkNLSm^ci!WU0YUjFK3jb>P`RI>J;oB&``O-o5lqt~W2Ud2QS&Mak|)7R0o zL&UW~SybzFrg>USN1~Ww77N=p308!j3_*sc@aSLu&wu&qpx-6u=XwOl;Sk6&e}`7jP40-NR;C>Pnd zJ}_JSO$2uB^j&kmsrhEG6)?;3gsH-i{=7p z@OPAK87J#4g!uB2t^(g(u{IWC>ticEe<+mBi##$8KRa?oMKD69X&|DQR&(26Wa+q; zVdGA&%Mlo*RlrT-ms zm~fvR>T)Q-UfaN?l59f18%6uWsU@C5Sjz)(3er8S^bdOZaK?Q2?EPIefl{ooeu*S=8YR-b>AW=iSBS$s2y3C(ah@ zyPcDx;j>3}rHeX}R5?98wuY=jVQ-8p7X=3r*I295=vGE&4H=N{>1@D<1e}>h4&84R znPgKQj(BtDl%~-~wrKC2vTBiYdUs!Re}3G5^z_-!K~dqG55M_pw`-_-M>a1rDbSEF z(6Cz3unaso(TSs{d+zHSF5g((2N8zR1j}|n_~qn(GQVgl-oMT@-oCz%99X(51CTDX(N=RL!dN`ol`O15l{8 zO6P~YYDu!IGJ(p5Z1(Ch%^G=|Mlv~+QIvAl5%WNeXTSN+2Y61Rn1aeGYA#AiSU4PU zxzY+4f-ukY*nBSFPvxviO^>+!%Nr}JsYaVi({#OvQ7jbqBjI#paq?V(@xT;K#-L8W zmVn9K{XA>htb}X4FD^%YXf7Op3@IslF-6^0mCQxA+3%HgB-?`^?|L}+;En0~^I1RM zW$xc!j*|+-R2ibW(=m&!wuwun6T3esY;0^7;6#26d&YFUZvRR`-AW zUmZ}i-3Zzfi`ld|H^06xr8RigpPm;g@>Y~gK)k4QTTxPqE+nGsb9W%mCH@(I&S{+-7ezg%d4+HfxDL!&z#XKAl3 zTwf2Y5?a5!Q(u3u6gNvmw^>}hbng0C9C3=itFb{Yxf#qn+)ZG_7Lf?mpY%)`NRSM@ z|GYgUuq`96>!Imaw}=@`DYND+50!|`rPNC4(OJ3wK>=?l&RjuH$q#mj}Z`fZluY`O~9DK}Y2F6C>0dS-_r;Mi$1$)@gC=!HQprxm`qY*lG`t zUYu3-KRijYx@OmR+RaAy;Mvi@s5M3(eD?J>fB(-NVAv}_mes#NVbF$UeQ%rrQPpOK)m28SHmFjk>X-ZNw zVVGo&48~AY(k(i>Fu#IJ7?Wi+p2o5mxT$6rr(KZ5xRzGJq|RrPu_W6Zf^*#O@uGB= z-%-UDax z@V_7ZFzL*>lUttoD}GOy0dp3`v6yi9AAXU2^bMEu#{4&Zt_#-@$6ri>0A~(ay1o#M z2Y4Za!?=o2dJPKTA1b`VC(WKaj}8X(*7Z%P7HtT6P1?A9cWHBM$q_^^Z?UjZw`(tp zd?}&Be%c$~l>+8*yW3|VNeb$*zg@a}bsUPX$JV1SherW>L*nj(Y=aY~yHT@`DbGDFiQP_@vI?jwIbpDR2`%jIR`j-!)(RD?v3=AiOZkJ{VRyf3Tluch!13+Rzj|CA zDBTY}{`HqfhhT4L2d#bB!NC5phZSUFk}-Ck9rx`*qpY%&TG~4SWfi#D$RC~_+GUm> zSjAE^A4)F0#`5#43$tSk3VA3hsZ`thAMG7Afs5Tp3vzKJ0zbXI*K5?uRDHl_KmYIl z^v69e7h|~?3Mc8T(SPyZAA*p7p=^?NmTu?OqG+_Mh9qD(MOjuhE7-DGE3^FruyqPV zf1B;*{$X{f;A{%gTHT^Xmzzeht?1=EkYi;gvlWU7=%j1r)|4|{+Rc*$j7TKTTO?-V z9v})ZB%Nco_gf|i$-shE$?HPay(+5G;XtNXHM^e8xf8`|CGNMkZ6S@R6b)p>5!)VQ z=NGe5EC_{jneK6^)}RR?l@y_spp?#)t1X?CX~a8zIboAhb}>Ai^j&piee+AI#!A4A zL%r@hw|uFL3(|}}FZ2{BOK-r`On3wiEV?52t>k)Ek0fI`=-#*AB>94^B9qBp`M6}& zW&II3{@PF949cOqlWU>NfAPwjcjqTyK+Lr?*R6%6V13vI@5&s-bc!h!*b&bpZUBsp zO*HSig}Out{I=0_cs*7<1@pr0=S@$YoV^=N3B`Ij5)3Iq2mD5qKRz?Qb#ZL|e83f^ z64}hUJ0pJj>1PLSpDg3b{;u}oYaf>9#I|vHzEoUthC~TL-~HCNUQhXWDoZHV&M%rd zRQTk0aBGrIhWeGp!xJH@*R4LUXV=#`&1ePRUc!8gT0MMuobwRQ74OEqg;c`8N)Fq_t9|WDZssOW;dEGW&IZ!=5@rG^TcxU4 z*?#o&)19y{AoaNnwX*}hbuBA7dX#c^|K(qP^|4|#ST>HZRNBvWI$w+q-#2WNF{rFE z*fvWR&y_hMwjM;lg?3j0##XslZGG~%+(5F0cCFF}I)zlWL7~O2pFOFYI-msr+Hu3y z3{@kEwJT#`)Q`a{8}3y3AkP?}Rml)ZLRI&Uc_d9WDwM6&PtJBzE`%e5ybbP>2`9Kh z0?2lrSXsI`u?d@cvTPW3Gp|Z$F2xK7q?!epM+9LjaxBCE+^HV+qC_y1FbrgxHIf9g zseqS{WJk8PFfoni;fx~?&TY9FAK9#^P#OuX1|$AOPjGr}BPT>%ksxJo*{?-?@`r zQaY$ZYtDct3amzpa6vNG5EH&zH?KIyUYU0Y6~HGgdj96U*iqSsl1|B{Gc;4J+KnTS zC<uTKf*4y9v@dWrRFpeu0G1!zz#!)}k7NZIGYg_c;2y0O8(8`53 z&V?nppA@HjbnWP&yn#M8i*0J1DjXelPWsP2c)0t?&pvyy z_xPY)-FarzM<<=*;b1$c=I_kHCzUOh}j@b2{)gHLzHs zy1fh56xKn?P-Vc-4_Cpp{lf?vAa|RD!niJYF)ETY zig|`Bsjje=w{0+Z5(t@0=c~9MwMC%D2W~Sx)?`9hyI&Ja)!01WQ{=AT4U^z<2}i?) z(|V@VujFR^@q|-Q(;Su%Bg>8zs$VYTgDwFOiIsXDSipGQ5;|gdX=n>NoGWatMg6|1 zSO4lq8_;^F(oBur1|J}t9ed;Qs{73!zH;?)s<7-)N5>`U@clyzO09YM%5Fcr!TPo~ zZmrjzef7dSVMJEOrakU;CVcgsi_2p7H2=}(4>{^liS@p6FPkDQ%e^I{3rj>mS>9}h z@;nW#t)*Mq-q+2I`*UG&Fmrp$yEJi^Dd}+!nm1{f+Pb;|xmV9;q^`8Fw0h0qC;aXV z%V8*^Yafb%~FBLHo%_b93=VSuScMI0bb)~6+{Nxp`=ms-hT!* zFzxN|otHKb=Hw?N%VI?J>)(GkYCZqr>1V$*n_T`Ezxl%-{{Gp)&a+`?&A|YnciXiz z=juI73%k^ci{BpcvAB79^b|Bws%g5WMT0C#A&sNw+RVM_RURbx)~4ns?qp>syBL|A z%w)83C>*Ufi?U&Ily7x58V481{L?25*5L5!enTyFbvA`+2Vei@AAj@NLmQ;%^1wsq zO1p!iUZ#{}6c;oR13jXHfzDto9%A-S3&=V?%*SFvp~JToFSTQm)XY>znu9bvf=YVkOJ&)hGvQ=OqDjgv@L> zg^4*e1KB%LA-XsfiDxl>`+%&s!6@upLxv~C=$}+Jl&TnV9A}JD%}#>KkScG3tAb%V zLe%sY)hLU!2Nnl;mnyOK)3#o&)0QxwJAA0;O@^FYEH|C$v8kzdU!Ml?4m?c2Y5Zz* z;wQmdbM={5-|!?I=}N6=Q>A_pP?$Plmy(Wy1+lz*ByVj%xLx-7ybkBxx%=Z&*B7Tk zrCk1t{ln(o%i-R$$WOof?F-03{p^>}U%m$mppOGb2qN;6b)&OemC6>ArwqC|(BaUE zD;Qb>ukpcID>o+xqks3!S090euE15>-Z`_w{9Ub69`)bjPcH`J4BPkKYHL?5{rRBA%#1Im?9znbkX^qmoxT96sLJ z{n<7Qr1^qs8?0oD!;|`;Am*DjIRRw6Se!AGqz7HUi9;|>kqjdhZ5||E{L52ubFW$J zZ5QM59HUtWd$!hS@I+SsPyg)~zxd|oO-|=3kMmm5CP*9Sfx=g9lRmuBSIolpqaB!5 z@#_zKgeu0sPv87g=8B=MTDex_iA>tJ0;RJc=cMOL5@Q#84UQ(|GG~eirRaJ#L=kgu zy?*hwpVu(5QV?h|fzw*u;#w^*>TU!0U%zN5nA+@)j!x>S<+Wmyl(-~W?)GIwV#AI# zpP+6%c59A?OCT~hw34`;6s_aN%IvZKMSlHxYx0= zp2e^Oym;k$4$V`b;9^zi#r2K*Z=FBC3eFAO?D$_J3Hwi*T3l+&5JR;J^Js->c(o} zMPGvY+1x-t*&P#ScN=Oh77`K{ZlaluD7Ai16c(mjvsNO;9sk2lqFgL&uHHHy=H!C> z+2^_s13bvHJuwLd@0^QOmOL`MzqfZ>tZg^qcl`OC=Yw3URJMt5hTsF9G-YwBlCAI+ zat$J-ju5`TK~UDi99-zO{Xm4WhFv}20klaz`QD94xoAd|QE!*ls?FZ;^Dmwr9v|+v zflDnb#pu%XmhZt|&7ou)VG0AiT9j)cqh?9fAy*o9D)h<0enE+%1hjM1-udw5>2}iV z!!xd61YBD8bQhHLd3aXSgzBKo?RO84K;Ryo_2qa4T z4-;2l2xc&b<9T;lqfH`q_s#j0EkmfE9*mq9$LI>JcPhovh^xrt!+-g&zx(9(zZ5e( zurCq$VY60MOgth96iLZB+=S(3rPM0s3#jkLrKxo{SOs108$O)}Blb=aY<(|Cdd|5B zfkPWSt1>XEgyKs%Z@l&PmM;X;hOGkoc&EuRpyArg zd9+@^M3eQ3AdCtM+kOnj@uWYfQd{3z_Qe3)cf<-+MsD zGWRY--Sao%RAR%MF4eIu`=|sH_@Za7SwF5P8hTeIA*?Ep4n;ij*uX`<8?IPg=-7oLkWX@LnI`ku4p?Su z7bOTH*$m`|@fb1s^7l{w!>498`Y=Gcp`qs#B!dUZpxx|YDum@4qO zgvW(~FTj(BFZRJ|xx;q9$1aU0=&JqE7r%gZJ`=P@CmNpUe!Sls)RoIC`IKj7E==M$ zB_56*Jt^^Ve}FIu5cfRJOK244>j!nSQfc!QHMw><=vqsxiUT#9Gyw3QkC8H{kc6f~ zbFr`p+|W1{4aVut;U1L&&p~cESstoBqG(GrD~k#$^$&okK#)2GG!G?jSave%xWDO| z@^})E&+m7P-yCx>rc$#-wx?$@kr=Kr)=m>dpz(|hGz@L$;HZ-~Y)w|9Kum-q!N!3h zs2vSn&BA`CE4%@!0Vy1VD+92Tl}M3P8B3-F(Bd+Sq}AS&F-1!#B9J3n!I`7)l0Gg}Ow;qpb0;Ue{H6l|*j zZdpcUVjv4zO$D=A=Q~>)A%1Di@h-u;SGUN19?SBU4b`FE|M#!Q*5x-RQhR@RW(r)7 zxRUiKRjby;azp^VPoktlPE_HamW4 z{N9!Es3*sTA`jw$6xayJnfac~0d+O)lL+={!ESW~g4QV$YRFSxlEB5l5NrMd2NH}=h>GwW*4Za*srn_@P~Yx7 zdDP(W=Kk4Ud#75W56#8?iHS z5HJ;3)a^y_K}FY;x`JdRbTcY7?50&!z;*y>WhR*+^@Gy7b4D_ADPr+2f4t(F2x=8R zlVd_oP+f>*6(UO%a-mka$n6~X(UjL4!2(krWY>%bNiN{Hxt{TdvW(2FWA4qVYnLXb z)?Ke$pL9)3p)lo ?ZTe^x6VYUW{Ya4_h>Ah8LSrW+uvId|p8GP!>Fjr%JLZ~2OA zcOW#K%`;x5+bc!$hm(HS>sJ=Szx$_O{r*=St_f8>`0`)>%RhY$Z>`U&^*$b6Sof>U zTN7)3FSNbaYj$a|D9KR9>;Zuu3?U_OSc$?|#v%5epfRYg&1Y*`tfYQijFXbB!)V)n1Of{HoO2 zX;?xQidK&dLJaFFX{CcnFu8$Px+R; z(IgUBjSBSoy$~=_1WdECwY`(wCY=j|&MIPn2@C{_L_%w}!76J*L&#>%*pb8L2W&7f zr=K-gTZRH?D(wOpEh3l7^dv9Przl0N*)Xc(OtW0-S1~wDcjWFK13ImCY>A3&Dmp0i zd=Ajxj@fl@A`1H4jv$m^Rd(#wwL5oj-FPD+7-Z5nej$3{)~eT;W2ckua;4umtUtJU zZyb)$ynwU1UNmzO=}KZw1viQrRb>-wHoiG=Z(%*}JU@2B+l?|wA>WNR7OuM2-+S%$^lQ^vEQwM0BoZq)Vyb6 zArXw`rWd@>RxopaYFT*p1Pu$|HP)`w06e4LV(+D;0zCSlTcm0Fw7dVuqq3y4*(LYn z5AOW*umAS@KfboSdHKC{AF#O!g)F)0F+VPeiDZDVxwbbeg^aykN9VQ=a1(sgU;u*W zh?c-lJKU?1oECE#?-r?gvz@-=gN1UpXIDBy5Hp|RNUYQvjvk#_Ku%;zO1;1dh+-v! zB&#VsmajKl%Pk*D5LJ#h3>JHEo!?hW{rL5Nzm{ZcjaIM66GExkYnFHSKlw+1Zae$( z+1b;R!OnhL0l9MPlg|79`T-AyC<6hR|DEIKhXpvEQ&A+2Cqp7Vdv7z$fK7=uC<>60 z#e(z_%ZO5j7IutuJOwJGdRaov-fm4bbS@Tfu7IizFDB^N+^Vi~(oTnhNYK(~(4m-V z3PN7(p7nTOrs5oLm6?(WCu5L*Wi?dF#9V&IERgci*tFN<2(NFZi#v^GsgY)YY0oG9 z8DJz^NY3!MLDr)uA&tDKNH`ckTcD$LvK>m~0HwY~yXU8}j9_XQdh2d{^4*K)Cm*Z_ zaIZ6+NX`S5HL`Ml$(0JPB{wp~kITyTi8?;Lg5|iHoN}5wghL$ev=oR{Jn;exBi;z< zxO)E5Yu|n+@!qv-j@2uPhc%9gkNGi^6Y7F z&g08(jz^OLS@$GqqIPp`{o4I8JReF(38MP`S07WIMj8a7vF=duEx!HUJ2P>4_cWaV zucZ$VT#5s*HQ#`e8i(3DnM$E$ff!hcg|G;eOU%b&34buUvhJZ|22H2qqKRQ?`ThRR zV6c1K;e*{4C5Z*8(GD3R(>Ofdo7#v4*5(#g-#UML{_R)CFV7G=@i{oQ=5InUi6t|~ zpY1+nLxML61o@8j@Ti6)nP#{15{O(qkTJuEzDRGb=6jZ^)YVjJh|syXM2CWCzM0Nh zr+|f8sbZnIWF~4htU)#ZaJzw6qt;=CC%3|Jvx<9UF_j*cn(P*120UP4JE()WSI3sr znj&R>`f6A^endBc5NA{v)a-x=!sCDVyDv`;KmYhE&^F*%-s}N}%7-5TNF^ANG}Eh? zakRK!kQ45;Ok@QGsW?>(PY1kMI)?%Alfg+)I5bpV0(!n-s9?p0tpLD76)elC^dI#= zDu#=PP{^Ok(oB4M`tm{`1komyCX#rqm?RC^76cAx%$=QQ&tK|kT_cfrGPyE&b!Ghg z+OWTb3;y|Q(`?t~l3NbKyOjjNSEHN<%jhUj!fOjm%U1nK;B4t7D9AsGKM?W7GO-Dt zZWo%Vr7Ih380{9zaAy7<0@zW<9hzI4n!J)|1wA=IAc82dGLcg}i&t0T3@kXWhmZcD z#OQ06mf{{SEOd(wZ=hz7eBMm?l{(_mhWUhuCo4;@{_u@ETesi)cW?dGch6tD8o2A; zLSl{n_RyegywT|&JUV4fTXgBl9C!=R~qDn)dIT-4xb!KkwJf0P*kB+JbS-IaY#0;3|ggLlr5+0tyVr4 zi0jD^Atu5X{`%r%U}-Aw)}1ov-3X?~uRHv=B6Phl+&g(vwP|-+-NA%9L2lrPF#z?C zMr#|~tDc<>yD8^`d?nEy09jd1#Cy$?)=BHoB05d6GTMFKtMz~=l}^}jgjEFKTzBmX z___Kc(>Xis^jv?}C5h398UePuDe-RPLnD_9-G31BUgm0cdAP62o&8ibofLp?&(t3d z_lL#({=O>aQ#h3qEQI7};EGndMoFSu%{ms`R1GFe^PwddhlCN3xfW$D>+(1^!xScV zs1&JH!7K%wEQl&qwf2DoU~hnslOG*4v{I|q1<7kJI_f|H?NIP1l34R~|-H>(D0{TrZur-UPmJO1Y(kcmqb=E`0l--gVrcbz5^=HVe|1YirZ~s(Sa;4LDLSxZ;beR$Gndj`nu! zO2x7}AU`SB-@f6AT>j$HNL1j_a$0RU7qXCq_pPSWc^$W2Sl-G-%wv?eMs!JE!l zB1m;QeYQtW;_R z)G-;(*4b6BoLYVm$gG5M$BdT_Bt3ZEHhr6+*uVStYp(Tc_m)D|HjNi6X>$8yyBb*| z3A(7IR^8I$+L}8bS-}X$ta}5^r*~qTB!u|=z6GHKNG-s8iQ&#$m(R}z*KfUYNBUe^ zac%9J(WCdDw8ZuA;wzg%gaF~jEatzrI`3+lm#1?y;q-LW<&Cv?c+E?xVnMHc+DIW7 z%c-hbGZX~lGrSN_1jv}1RAg<~XX=1b)*Lh%GLxRWJsv=d9N`HBa~hV{p@z~B9W>!Z zI>X>?i$o?j3HQXk;%SHJd~yaSHdD)?^lI+p`1s+Ivw90;58Vm9zrS7F)@n-QXvdeD z%y?av_x8>Evza*xxie4XYXyRfCS%m`)6ZT$1FzD?+29dqotn9PxmJRC*ddx)nXPd2 z#`u+MQvijMAgsEYA^C<<)GCF@N+gnwq^PtpMtjX|O&D>{)Y<;~Wy1}X4nvbAee^gJGyLXZL$z$Qcr0#1IJ z0EuxOoX1KzU#@gp4c4{1I5T(mom&fj7)mFZ7CYxkA&RUQcmb3aau7_{4(qu%3R$Fk zC92h1^|Au&Uw?)WAg340W#ZwbkN{Jq9X%4rrIDhLE>wU<72gypoDS;+qt+?3h85H) z0y~bcDzw+XnjE{~sK5Wn?o>CtP>UDUJ&NqM6Iq+tzp-T&@+Zch&_-2#xN z9fYfa5bp9+1iI%5EhT_Wh9+f+D)wp*7R^!x7$hCtpIwGiT8&L`y~p6IP3d4nglE2c z{>l%&^%p<+KI3P2c$Ky)t?KZhLAMQdWn*c4EE=C&Dl!?2*<6E5IKg-}XRpm9@0`1~ zg=?YpJKws!Fw5a%^RLZb@S6VRo4)0cwEhz&Q+ogJpUKAyiCvjv5@{3;d$Vvdu!PA= zsodh^0%gs*r&qLGE4Z{s);JfnH*D<>O05PibG$8?*>6HrveO?uJRMk?1VoZ!$A#nIhwSqN4395hX1wbyTYyE7w#hLHt6PE1ncFTX zWP!qIy{tZZ`NgNABS7)lmcm_Now8UkqGX zu+(H8&lsN_ixOYN98~(=f;*F@?TpBHpiKvS>3iRKP<)~r1ZcuVVV4wL)M{m;szfsg zE~K1O2|tWznJ_|=P@u_FLG5k-W&QYr1_cDPb}1drgr;u18icZ()=s4|0!t~q8tz(M zTDnVuF*)7KI zV{v>j*Di42{wsicqXZ23PQ_AUwi8qAD3i%3E|H!@N5@BWsgh(y3YEl)G=x`Vtc1)= zFB+}9TI%4a4=#bWUCgtx633@qjzq3?(B0d$dhJq8F`s|)zHOSAEsl=Dz31R`&$(d; zmB{kR?m$HReowQ0y43}H;_>)|64b4DCEw8aMo<&##32?Sv#sHPY><$JjQYcrAkCDmf?fzE8%#=2a7yL5K(`%DrUhhj|?qVdV|9UkrQ0 zvTUYT);1|F>YoZGQq4{>k&$$|py+@bSBOR;ypdd9qAPoxW zZGlLte%L>Ibo5Ar1(4=K#a<>}d7MgtgyNjp-MU8Y$~X;TgscaynRx%vh+KaVxcA2E zua4*P*<>)Qr_`$Pw0jVmSBy(b^Z-a8m>Crcz|LjS(%)%u-!-IZ6 zZXs0-gpv>n@>!CW16>YD0Qv%vFJqy_EY~?~+C?hK$&$)JUZki2M}R@INN6*5bB4*p zGEgYQ70qhDuICa;#Nig|y@Dh^dvW-utu~Teh|f;M2q`Z{9Hf$pAZZrzCeu-#7G(~w z2EcJ#JUh&%$p$zM6irq0!)o*7qbH|d>}HV0;pd+=;(a6MSr}Una4D`^ZKLtNnQnbd*zx z>BXyC0c!}JwNCfZu+7mGVDa%1h9^l>IC{yi&Vq2=)_dpQy7tyP?<_chtQdpRi%Uf1 z<@22&+m(w{kckFMqYvBqp5=@&x8J_BY_d!jW}T}y*VC?GxIRiPCn;6UIh*?E_D`3C zlQWxJw*$__+u!@v>wo)GXgN{a7FxZ-?UE@K@GMT(KyX_Ku+sT+=Ptf+_dae&J5@3| z>5fKoz~hk&b7gLB)xGY;Bo!;eoTMuPwzMIk+QYqrUw<+G$J7B;R&1Csd4ia`pWv$XG?$Qk16^E56x?AIu;jotg$?Hz<(QdbX zTH46fDsk`&T2+n)w9eM`Buo-vL`;cfs|m)V_CO6SQk|S{Zk1wD8D3*k{zwAHXC7o| zqfr550A2^ff~q5;J@Z@Z;u1AeW5klKKsodKLJ(ie*f(2-+wd8 zn|!*GN6=_eEAo~i^Q<28q}AsB@BZ)~U$ntuLe2)9_n=Xva`_g(TQj!I3MPwDWFqbc zT}!)O73~URHA;0$l&iAG9f)V+fRtcbS%RcoH^$Db`PLvP8ix`HsaEnf zTtVF1-R^;<8zMl~WKmi-GtrcX;!!}oYUwEqE`#tkN!!NJezVE%Gy!>Q=lMq+P(SC< zekETyDAk`RWOKMZ8lcg*7`#521jQ}U5>p2E=4Ryj+V;zlzFlDf&_%@MBtmVvqx0~} zgQZI=TOJfzqQmb^U6@>62yfu2jfqu@VRL@qk|VCAAKfpcsI;(itgE{XTfx%~FGeR; zHpA(viSKn8zG`se7cX6UZOWIxPz-crHguh_$;Tg5R97VIsvmB*lmj~F2r)8s>8C$^ z7nJPtXN^Pp&3?F_l{m%`e4J0GC00*Y0gD z-}vk6W>Y>mL=HdPdH)wXIf|htOPiilKSonXjK3D*M9`d0%cWe8LT4WOj!|XV!o6@BpT3O9{%qC z{kKz71;`qZ;H~g>siFa;F%^LbRF{D1zTrd&@CF08D$rn83#~e+%vK1mXCszn*sLpU zRufS=<6gacVb+82fc%DG92?9T1y%>~sXUyh)iVLSzV~FW1<>0Cq1xCv1lTo{_IUu> zt-^{W9smaz`LH7c6>Ptu#I#0xu(SRCliuz?Y8*W+h=oFB*b<9fYXcTQn#`W~;cOd$KabU(6T2|3mE;O*Bh2Z*J~HAfD;GaE7p|N6~07grri_a9ui zeqrp+_|}4}TVP{Z!(is#b}lcepFZkVfu#uSv@F^yWv3s^L^<6Tz(@PJEw9~4u6q%` zJDp8N5~|KLiBK*AYmmmNNF<5%e%3b7AQ^NZ_ZR1H-CwvHieCKIIE$9!^D8r}Z@)5Q z5E%_G)lJEcaSm$x+9 zJM3(I`^pdAU4C!kHf|MtDb%$IEB>heF0wmnAAS0d@2mExfB63Xvqy)0TT|HTQ+n@7 zIU{`V^`1fpqXHNr@n9$^-G1Y8Y;}5aDc>>ev?B|I2fkYbWDg<5GOX{-JL^|3c_>Kc zm9{PpP7eS;jLSa}HaDVadStXu4He*p32%n1_Hsr{0O|TsUpabM#d*ARuv-_6;@}tm z^MCz6|2)h<2Vec_U!Js010?Yb!xIiTl6t}F7CcdqZWi_m#lcs9d}f$vDrXo%eS#OvoJlIku??< zESoL@=!sp?X?wev2}H9Z7f6|dhr1x>r{=+iTv<>n29ixU=UiCA;ip+>Jqvl+VovFe zMis@dtlDXnD3psz$52GNK4h%D{$3tRCe@x1H1qcy?CPv4R@%n}1Dl^&@B|I8#JEMs zm7U}RBg%TFmvPNf)~+t1o&>1fZ;Zcr@$MT_iw}YqRu_LV4!X~G;kxF;16d<6x#&;p zh8Gp80zf77A(0@n$tDiuqT;cJLd!9bgQ$%v10vvCW3pKs5wT2|7K88H5?U$$q?gi~ z9e)~8Sl8O-^vYU5%}#vl&t8F4u^pO@LK`<`7VmA*g$kcAES5;ldMI-~yz$`rz4z|> zki-g^^5J^}tF#r$MBS5{^GGp_CmjwvKD&J92j86rNQwcVcwS(=u80pQ-imApp&|g5y2m64V#PCzkfLto=&aC!rW$%K+W*t zI!dGv&M57ieK2AQr>7sh{PNSMpsB(a`T|jC3_d=6@qGKGz@2Cfm6k$O%^SFT;dNh- z(KT-j+~{yjCee)a{G+oco!A&CX9Awv{p-`k4|hw{e8j39pA8GUtTP?YFDEHrBzc@US~3D9pnL9O#-E?VKqaup#G$Qng6IIkjbFh z+pbqSgX3l+LK=n$7%vblrJSG$?a8dHIpY7DRLBq@DJHZ_5-0@-G~|gTLK#WJiQyhV zYMF?luuz5o;wKsB(eT`6C~{#s$G8(xHWUmeD4pMVe)#lw`*2rN&K~v-clw30aqxJ% z{_wPeuC1&%KxT;bB>gwPGbiAn2$=X2c>$t|FN%X=RO~+QWp<1JqC-IB?68aXuBR9# z7mLPMeRN`M_Woj~@W}b^AH>#|fHBBKCp_>PSBkAB;t4}AtvwcyS^zy%9h`MaT^dsa z7p^w8ZAvo}li4(Eb4CMTrRQSJ;O*Ovtq5v^m>KA|vj&k!N7+OBt}EcKurmu2utqAr z%^0Ugr~H{x(YNqmH9D~vEAk5=h$svn0dA^>KnYZ3S7&l%|HMWh zyo6<@!j9`##@d;xTsfJlyKK>mL4 z@nO#*_YTWK=-r>*N~TtmsaB5+CLFc4M!+EKjrPkRJiPb(#bbB>gD-#Hd-VLt$#Z+O zTPu8IBbBB&Aiz}Xf=mc0HVjZ2IDlS17gz`ISujX#E)lXC=YZspatHX6er(B;(L|Y^ z&lwT=?5J3kM?39N+icV-tZEkz>=>$-5=+hmUpK|2smPMk>E{1`ir)KKlJh###K;aQ zi3Suw5C8!*TzhY>_xIK<@4c_es?4mcO7APHvb?v~+xFc68UP6j6e$gNIFfc03XNt~ zt1;T$*ocjt*uP{CenSKhjqcl3ncsKL`#z6zC8G}>KRJQgf90@Uq~Klt;?sZrZ~yaO ze|7fF?|%CqzBztWD}*wm(@ZpoGAm)fM;=%gz zK{Ha7X|~|dpNpp@jm5D%%SIDn$Wf^!1?cTELTFKVN8{d2$Gxlf0|kntIHJ1E4*I+2oqZ+Z^+m$8YP)dx^0kZiSC_1*x(3HeC!T=(Oh<76JCMy; zF5e5E|8hc^sJ89Ro3~788O92^)16WVD1>ff-aljUhgMM2M$qO7=Q?E=P4ldm1Mr4B zub278;pxFab$2A<-e>}(#f?e>81&(V^;itJn_T5c^0WQ;Vt6OAwzSP>Sd}v=W#{piqeqWVpG*0CiznDY^8Q-5hJ_BObI0pPWjq z&LRV7MKdCqCA0pp7fs_~7#yzOg}c1KOFC2*=&(KH=leDAYg2F!Orm)fi=tAqS%_L( z7@J+b1%!}D*b@t4w4C-|dhNZfB&}50ir&p5z0+M9&WbgWE!H7Dz_w2Ica=sXnN~E+ z!Jz55WA*)a|NMiGFW!nD_R|I{5CvXL2JPTR)_3o{`&+;N_5-gbTkJq6D?O9AbwjgP~VYq3Cy+ZAo==*WRC>^`tD&FAl9|%8jyhxw<>0=-kn(XHS}i<90T?Dq86_IUoc}XkSJw&}yPEw_vk`6DIAVzI|c-zlXVn4HGMC4kn zbka^5c#%k81j?aUK^wd%8#CojhoLnN^rCo)%ivBQ5{ROFwbnWL0*d|TCp%KQ(rJ~C zU;W+x_+S40*~!2BZ~yyW{nIZZX^EA)O};=drDB!D6h4O~0uU2lOavm`dEa)poJ->Z>hTZ^O2dQ18$g%enzh;EZnq&*a9ZMd`OeL4 zZyXZ1^yD~4cBW?%9SC!7J?BAk-YWxo!eL6eQ(P}cKVrO zbMO~mmM}I1DY{$RthjaN#~Y7_LPJ)J^?=EK+qMWpjh%|}4I zcIV-vVf*3Bqc+p&>)4CaTCFpAxIO2CLRKC&oC-I2yuT}{U%VJ;F}BWk3I(QB$YpMT z-+;vTzT7+b+nVAC3yJYKZk`WHQF$oZ{1Iy?Wr{&YpwLkYoOOPnZ!(I!#l2&VB#J1G^LHkoht%a9V}PlM--HeAqxraj+g~ zwG~ak3n)%eq|azse{glpAC5|Zy$<{1h{aQ;Qb6L?N5^U?%FD{|Sc(JShXEr}U(qXK zlwRM!S%JfKK?2w&P%ZP;n{Th1ui1oh++Q1Weik|sp3pmsM0s~S$c%TDj$=kCL`flw zr|vI3dj{8n^MClui59mY|FsWCF{_!SG6vLT@FQS62!Xq(l}<(@L@JnPB%2?mBZXpr zuTs-%vEcpL`;OrJtZi~Y=gv65UdW43OYgg~SSyiK zqU>HTmxUi>G#0OBOo-O&33i@4Jg3Z|y!)1k4N7V*Vq0;#5)9`@cuFdR)o;dR1JTH) z(}GX;*sp()buIqrj~22uIgg00*(^laWzVH|wi|`A|HJpc_g(n%BHm;H*R@*Sf8W^H z>&9I0zs?u}9zYdGHsYlh-<0x(D1$-Uu+jPat9tp>wAUKvzxuM9qoFEKu*C+N4#h+& zVy9`NF~}agd_4I4oAa;sl?fkJf`t&#?oxEn3XwXhe%vk9<5?8KniN~s^hTqS>zB|n zPozJ-9(MW`3XI@dgH9V$9@iHnu%cuf-ZHUzo#^U% zrF7O*v{Gq&v^%O$xspz$iluJOX@o*zlG>}+4xatfzwZ{M_Nb^q7?#c{!*)eZ+h=Fj z94@+1(z!A%Ydd>_B!gT6Er=}b^0OkTb!!l^DksC>pK#f2_m@5En|91<*-oozXGR_k zEA5@>-T{1z3LTJ>()7XS65J&Y_vm6q;$w3&PMVfL+`$8XJ&Jf&Z@xdbwzRNtBbeGw zRa5N4b~eKXwsKkJ`7c^7W*qhMDw_)tPZSgrY7g?ShX+r4ZW= z!wMJN zmrCb`fXsM*HogHi3v1F7ulAa3N@+*%l1O{Alwc#KY{G)pVlq;E27osxWoWc}^P_h@ zxn`nb5fJkD{YZM-gb@2h$mUH`0zWD0VXS~rgWg7l{mmtF?&@{)<ttzbp}u4vCMF9%9Ut&*x4=d_Wa4?q0*hG zM93S}=nStEaU{*EBxiYV_WF&t-njV5%#y{o9qTvhryM3|&Q0QMH(xky*HrXt2|Vko#4Jn2eS1WyD(X0XPf zpj69rTxs`u9bHa?$^&uQsJa4pOHM&B2DdsEHaLbVhd$n{U`rR@L|I79OXVIFLEXV% zL5xHbForBZwl(WNR4YR<$+ZaI^;;W1`GM=wPp#&)mDR0{C{}X2*i^na4cb@&OSTyQ zmSNV0xxIxk#BXMy%<(2XQz|l0ncZW6(Wkb zE*mMctt&H_J-n+?O(t6?$18{ z@lQTBWoGX9!Xczp>GF7gWS%kG^})!Dl8t&NmH1RN&;8NLtas%*HxiMnR)3fgvcq1I zbGjgt+a`yT#uz?>cP*}HR!Dk$7PIm8W(>fKYPB+9ngUv?N&-A}kV3y9M*QP8n6`}m zkA8gZ{;D%h`#0PXkuSCnQwU5CC7UB5RH1` z+_#?t?kVJFEBsNLZnd|?!=JzU{IFL7OWGI3^1=S+<40efsU1c*|MJm}3ZtfjS6WrE zMULxiB;D0dj`p-@%;a9bZsMM20ztKz3p_H(lg0-r29fuNF~YNDUdz>b zA=A1Wq&XQ(lu-SoqWJ6%G>ZtVrh+g~M};Ye$vg=1njN*%+uaos@>nE86u?snt}t@BSGH%RgDq{7t|sAWaMn^)~bxf6p00|*MM6IHC_N@XEGnPjts-xg67 zcogCyq%x#<@w`1iN>wHo3vDf~&n}o^xoj|q;Q89Y>C4k(NEyR}NN+(<0PgSFZjVwL zqkSe#a(Z{5H;6bBFxk>c2@ru%uXk-Om4Ui+C}K3n@~)`7|K#y;9piZo;<-2+=-CuN z;F?mSsiPhQLg7-gzn|YU8|Sai-+29f!;QB;yq17|802a(fJbK6i874=)6H}bQJuy% z7#07%hb{#|Qu?uPA# z5f@D>OHpJU*Zr_@$2NUI#*HH@H`k(+d%-(hdHeEvAI%%-$QBw&loFgfuo#d?HEo8U z=1DwmK+>MHGi)~&;zazW%jFK;cUrvFMZa$odSL6D*FC6vBZiayjL2du*o$Mr|Ir`* z-uqZL7q0Hcr)8j+%pwbp)veWl`L4-j-B^tITb-UBW%}Jm3cHgKhxHm;D0lZjKzh>E zlEi0cm0$hl7*sZ23Ci@F!_ReXxclVid*kr7G1*xB-W(^vj`KvsoS&>4E!y+3rWOmf zHHhR^=FHL6OIPl0vV`+a7}NglH;12}gabJy951I315#zOBC=Xya;0Pd0dQZ1fu3Ob zK*x&ucv5fe?KQOq9COvdusv!KM~|BN=k5AH5xYB`qTZ;Mp%cuMDuc6e%1f2OPZvZo zIBC7T=(uaA38mnQlzCnn3vsGG`1%Vj3MFej4`APTS|G$CCrZ@`7!r^?N3gJrN*T-+ z>*}2)`-UwJB`#9l-{0Ad=BvY<35iuS=paapGC6y;Q|S&%dT-RJ^p6COGn9&^a#>9k z#c;u64)J6Jpyyuil$C zS&fLmGp*y{2sdOzXp${kc+zWasJ@iX0HoCVs|g|KSUi&=Xl>`XPlVj9X}=~_d`5t~ z_!4a`9W|^xxI6PP=3l(K83o(Xy4`*A$CqaAEo@o+wk5;DQeMHhwduua)^u1M-OW57Z77SiiYQ<-#5U)RlqHBJq zV7R`%(R=i`T+e}3mf-0^37lSy3W}=d(@sS_9zJ=fbPt9vI;C(*WjkMf-TnD5zyAFB z=^^LO00eUNy?YDE4BIPq728{D^VPm0Bg$0LpgO}WuySUD3H8kmd(OG2ws>K^p@ zW{HpogO0{@;o2_8qP|$P*J5iGJ-L!wx;9z5yk-j--n&b(**N%5Tp_umGW_ZD{xP$- zLiH3bgZl3*xRb3e3y(!nVu+M~q%n$uH+82k5jU*{BL)Dp!0+VvDHg<%6x zfI6g<#Z*PkMLqeF1VermJS{A;0bP*3hB_$7kIne<@cZyXrp2iG549mSuRSDd zNt-iPgk^oKSOTkmR`eK?G*7mew> zegGy$S|>ezlu+pKwkb^a&PKjf87NFlqxE?v!O~ z%d+CCetj}5<8r^|8lCU7c$KX5hH~FxNF_6*B~I@@`RwOUyS}xYoa8&ZM-5FGNhn_2 z&Cp;t84q@I4dFnI#Nj^kSS=ueaBw<(I&Onu=d>3vM{_6=B`5G@^kA~4nTXfxT1o1y5_8Z4^9Bubg?eK!?N28fpk6B$?l&L;l4|I}58r$H z`j2jh(&pJq58Oza$@mc0YDUyf`&?EXk4gaOi+WHEz!{r4mEf9{shSrnU4a?wG?fD6 zC{n2uin(om42DSkI-usnold8wz(#{OZY9Y#5@=ZA}Z}M6ergUy#@+%AYC1CUR-Ik0DC^pdMp^><*Fpt$_BB- zrv0j^J~`WK_D0>)><3Gx@JqVp`}J4S83A@ z56RB9&1*A842EV-}}jT-+0#`^YKr9e~ykNZ$2>n@sDqBAZdvLs*(yQXs1W60-@8>*c%5^`bb{B z-E7n0R4T9higEbw*;@}9Ewt~WCdA;8O2uK7;UZb8_k?S<>yt8QUt3MK zl9@dE>ZA+%g#3;a5ym6fp%Kxoa7yDtY{cY<&s?=cnbvR@B31`-EPd^MM5z`w<|3vC zOQnOu$L({P&*$nX|HAc!w|=z7kIq!Fl;=1CyjVDzwHt12CK!pA{Xsq!SiZaD1vGi3 zo{J2+q6ptY#aDtVFdjp3aof1Al-kLctglv6ib;?Asu^={1-7pEpMBA8ouxzb$n&un znMV`X?>)$ZTP$buK;qA?OY7Gzt!8cc=&FOYI;&aZ_LezfUfVDhE#JSe2D?tn@|F8{ zE-r3=82C<=0iX|<6v!6C6195q(p$6hm+ZMBtlOUN_-@@= zxEI>IdYw-599u1-J_wjE!jPJzPT(Sfu>I@){zKEBJ>Tm8XtJ$dli zw`Q|S`_q1SF3nUrM4oFwe+`wM?JCXo^ZkRUlh!HzRTa>BS%%xZf75E4Nun8(pBa2w z7X+jZStmtj#j-9J^qxq*F*k3H2ETRWG>kWG5FhMRU>rK!E9USF+ES`8V##l35p)dgJRS6)M<=PH!C?tPvm)TB6>5wv!$jHZM|{`5`>x-& zeC6#mR}7G-A1uuoa;a)9lGhYSRH?gsA-%m@b^9}1j;;<>vb)@7Frb7QpVaxeRbTqA71Y=Kx$m-sO&2 zX3U!g_2A{Y!fxc^BE*ZD2{o8 z!LCIR^GES+6UAyzwa%xh6k%O9JKanj;{J=9cV|9aF$MBx;+{a|EQ~ z$M=#m3sDH~m<%56^!ba={^lPd3tZ~v`iIwz#Be3<}JZumE(PsoLF{R2%GI2wXiOohtO1Tw{L+ zE&u%V{F@W>Hg*g=KjPp~!Hnfr<`KDfpaU7K&^iR1?C^`@S`UGMP(!;tM^cXzh|k~CS7%dP74 zq}D&`Hd>X*+0Vxc)Pdp7RcR6y$Gt6gjLvU6mlm9$D-49}ET=#P-?9}(oB6dkl^AK! z;!B;Qibp&Q-bn%>WQrb4yEU;sEsfEFrWII`qHqMk`8+_UaiyshF`)(Wfum~uMUT%? z^=gM_a#5j?-wtAas#4wQ)w>n43_eXFm(9^Q<)4pKC~2oXY?V8Qt$e;jHL9Z?A5STH zc(5gv4ydv~CcdB%Dqla|_|!c7K$$L=1~_cfu)KOdfvu>1U(jh1p>F z=1L^K;?F|SC+1v9-WI$jhmXoJfTK#8oSWexNZ&O;BudX80#->p=v1^$?Z|9Ti{JDU z2HyV3Z5y5iMnHD-*`p!jS-gFB@fMaLdrzL%!q8spOuf{=YIY~AD`x-l zMt0a?J?2e%@Y(*!0o+K&pH=N}jX>JJ*vYS4_{0r>TVCpAO>1a;ksY z<6Q*Ckd{SL*k_64AOwq2^y#C=U0G%My%JUK?i@@G9*%{|zFupTCzJ8+;m+Y+74T*` zj;*5sVMieGD5|qjPdFVjg_ZiDaC;64XkkBtMat=WTcHtWA#r6l&26PD^$e~KLQbys7nRw9bYCngIB=E7SWHwpI*EG@X z1|wUtGUZI~zqydts8l^OuDiX-By+N(=#)fnuWT${oG*t`Su(V~<^?>+oojO+el&N> zyLjybgig?~n@H9W4=@szc79bzjzW7}Ko=H6p{h#NiFw!oC$_F+ zyT`dm6;H8t)7u|m)V6C#1rkI2n;~q`YSZTrU-c{TtdU}An1LoLzMPzv!B?8X0|A

%_}~fn!oeF$%qk?Coass`Mp2F7%#byV(=_$wP#m1*3|GH-+2AC*Vh1u zok{8>eeVvD4tp~9!y8XuJba!w+pV&N1p4T60X%`bPhWgZg*LC;_b2!q?8{HlpeQrVFQ-t3+cufD<~Bp^um1L%Cr@?+ zminUMIeo#Oq^#Z`0fY#5R^zW-49tG~(;G?6EOECjp~X!YRqeX&E}1SbZY}V6szKLw z&xS1!K=1H$xdlPUPObm%_B$j_R;K;3-feX|a%DmZOe7KBuq5k!7z&danr1WBAZogm z9zIOHJLmUAi-1L-al9z1MO`U?*jh?Q)kDRftt*mV%KA~QK4xHG0^7Kdry#4D2)NcW zSxPIhFwO@sFs;|yM~@F$!}bAGzfK>HAPiFnutiVmwDqAh7`1e={^Wer;=-Go*&^57 zCzEuZ&Gp!{)16H7h-I57po%ITz=By!6O~fCr}8{>9RT0~`76Cl`rm%z?OC*Yeo(|J z9q!JW)f6s2(+Nv7R>X{!t41XYhv4O{5QnWejQ8GMNrRtCz=l~jv)_$}Ve*a}?)X%Z z*tAFI7xEac6(x4}yp?0gq5%Io?M`NzowV7`#VYdV+@($5&bt1Ue$MNyu7a6I?tK3=H=fE*rV_2NyG@ zkol9pd@zuP!FYz3Yvl2>(er21 zBl&F9kxDxaxUpv!4D;)`OvsgrEN1Jh-~$zm_Sb*)^qaOB(pJx(9*FqU8t(DCm8{#e z?V8(oYsPH6_}ZJZZU{WCrb*)ipUmC3;YPOZ7!8;(h3b7>D>n~z`qN&ms%!nTitzYv z&PrS%56&fx<7$-(+;YGt=UZBtH71KhKJBkkNFo-p*zDmu4o=USqTW<28D;>k#n2?& z!5STq`NA&?>S_w-%BNM9EstxRIuCG>mR16XK%pqw3|3FjYYk8m3g8ifl%&zazj(-G zN8^Y4in@2Gf$tR#t&B+5hdPKXbin3m)AMpJoKtK4Mzt!Swm3z_(!Ha@GTti(GUn*c z;Ouy3AO$Lil;0zt7pXF-bcSS}i^a=(aCEwU^~$~GDZg=ZJrV!-QihZsi}}5ARjtGM-#IycTm^ox}Z`1QLy;pi)&SA`qJd7mD9q;d2f<>J27jb&#;dGagV* z0Oh)WIC|7-M&Wj2voXEiV3PJ{4Nl9Aw`X&hvVZi|fBEOXehkuY`dr4aQrUkycziJJ zrxOmJ<>NbECY_m?-}Xa{XdPNrF-h&8RTB%}{qwm*Dn&Om+Y(qRTFF~)&aN$zuaH&y z2OH72OOev)Xx6{=lYjGPZ(X_l=WqT=WYX&IG`op59Zsd(4bY0~C+FuSkCZK>Y1qmU>0V77f@ncPT=+OO)O zfQY-tWk-SVQ&j8W!SvOabhfddo$~JV{`2F5O1VBAJs3YAs#1UE|()CCvzpGk!IArskD|#Mg3kxj1)^X9<$BFH(wjZ>0i^7OCI&Nx#M%^X)LFobA% z9!+^?qonk^WK~i3Yu10)A};&1d{# zsR%<@dpy=?WVH&VgA)?T;`bl;G6wal@Io-0Weci=iz2Lb*59*)=M0Mgt1o5A}9>Z z4|dCC07dBtjF)n($AyNR#BM|Dv@~?4pa=xRkl1l(U4%xbAgZ}AXJ_FnC=Lh_- zR|8#5rL4*gWy_q5g~O>j)8H$eK3@{a4PbKx?KeL%q-%WLKL_+WktqO_)o;2pn}8#q zyTL=Gv*7oHgIR#U2&Cuz*B7OmvzK3cb8(Z-tHJo@OrFV+f;MgQ5l!e1b$!?$_jDOj z&ij>Ow^f5`HkJ;;dP3F&q1el3 z+zi49TPsA-3MsayZK+NRgNN08Rt6PbUKvRG`AJ7tgklSWYNIdWGkM+d@pw|!l`@zb zTjhS0P$!1;955+Z;(~K2b#?ILGO_#f-3qp~_4hBJ5X;$(%Cp^bby!H;Up3sj z<3=r4d~MofNsvM$q^LP(Oh+m`))8E@MU$2kpNo%`O0C2YThRh+TCTkRV9RXvaT4DM zc!V@(y}D|JKFW;`9^8-L__yEPwrkWwHh$mep1u6W8@Ifhyn^vrUBN_G!f^S)m8)x) z-h11hWf=eE#AyO=#{l^lIf~q~_P;)ZE+V(jc1CqoOP-A|`o) z$nt_qa$#I^?AeUAk>X^qJ)3gH6fu}73$c<6|53r=%jIPx?TZH-Z++yonJ@j|?Un63 z5wtBv!5JmV4ILh0607$om!1ty} zx=>UhB#^Neh`4#v9rk8AP>;=~X71ec`_}?O_kfC}!Xj`5x;mVB$B#O(m<}f*7W$`E z1@f((_MokC+97WXXOIGw+IFJgR>9(InaD{ZC5my_PU37GdM7O<6bC$Jg-TVX%~FN0 zO~q{R!M1xnRBbigWbM(@R^!o=DFkckLzdmk-Hl5!eyW;Z_G+JM86LaRHExLAtJ!Vavk zWw`T`YAf~875SU8JyC8awpLdGz{+!E9JBiry>@h@pVfrjeNC)$o`ep3bTMg;C*o4z zww3)l7PTdR{x7e-e0C`Lik;;A_hxe5rI~0g*xQ(v@vRim8xClk8P!j6$TqUD z3_&u$_+@>a(pH!_SFy5iu>^wX$u6 zD%D%^w_(c9_n;B4fk-Z|)=fDk=v%mM z+3%_2+{`^I%$qo|iP1&F_SNfa0e?nt-TT2G&vEr2I&X^rKdOY-<|2yUA`OSf8W4oZ z?m#K@p#m> zwrDWkbtPRX*EYd-Cju{TTAYF0=mk8wV|as{we)$~wbg5H%t4q9-STH(=vR?~F_+O9 zj|;hQ%IVlzzJ2B5It&Re{q&=_=kg405OYqsyRyBxI7?La+xSoCGBnYC^mV(|$JhNl zXwx^slO0M3mmh!q>jNG*>}u18$h-Mjbo9u@^lMw5X4_@+c%hKpw}#^L8`e-dI~*61 zDUv;T_}32)4vN16@!LPXJbhCB?9-Usd->_8BnjTTrq$(jJChJ5-@M$_gB&0=R1~GF z<$B2u1cy@joVI!VX}LYkZ z1>c{^HEFpB&ra~4wfYck1K2{lTt6N*cQGQ*9E~d7DWHw3JMa%x_@s7mldaMaq2*UB z@&LVxUb+-eO9WA)W94#MDG_le_y7^PL9-Pt<3rhRiM|;;2hZSIdvx4@QSJDM4`H&Z zHGBR2QBhSY5{za9Uc}-`qd6|O^;(;$6+=0`+U`v&oCc#NSjZ6tiDzMc#?mCta6InG zF>0%x4<{OuQsjom3|Z|G$>z?J9a$>Xj&{^oTZe2MKkvoblm=_rlC-)P=IaIGVfsr}KY0 z*O9g_zJAeTH>5d084{RYjOuj^Yy)L!&1~OJX(Z`2_zpQqgs78}v_@n#Z3&3jjm@1_ zAd?+5b`STME#mys$6q4zGqW?HeqnXt($#CXlg4$A+a9HB28qW+QrjU# zd2}c%bp=Tgfw)BaeCwt~Ys9&B(T??46d@*Z_3U)_$@y=8`53rh2eN6e`NeO)9JHz; z+2A&_?EKvoxd(*b)>sc1fkwjRdqR}48S?^Be5@54WsYq2o;}=6hrHopu+*%ba(PWq z7}jU4`t4g`90|l5n*W*;DC7{eqEjI^56#y0!EXOsqRnZW7yCdzn>=i)$5Zj~s3DJb z2gPQmRMf#<(eBnT3ew6rOW^q`oWVSX1t@Num5Z{j!&^$yDYq>lM-%CCn=C-bwWi__ zZGebCjxG{JY3Jo$t={G0URzcL7VBg(=mEh}CR#d*LO?@nx69Mh-tL|hMT(_reLPme zVy&t103RB#-XzXS@cCx&cwEe*VOu3{5m=!r(dBZn{6sY3dO1pg`J(}YT~37_SONzo zNF?WXdX0Fm2c22?jchI6TlvHjUcdO@-fBP&IAU?FaN|3__ojbLB5_~FpP=#MXLY2M zTDI3PTfT(MFD@IkW;~IJeE7g&H@vrHnYX%)F1t&HXbT}qbw9w|*mx987#$Jz;>^&Of2pM0r9)mUv_eF^5KL+QRfnO`tsK!Rj+T&h5Wud%PStM3ud(x zI6*uc@tt}RgO5TWf;u-1@fefy`^n-|YU=q8xx567m+ahw&0tc^zkko43@;i8e(BQv z#l?>;F4?{DqaS|f2aDOYnN-%iW?1XGs9r~kwDf7-?q$y)n>>AV z$cv*XT;nY1qc59$r&r?I$A`P6h)W7=b*)siq!HZi<8sJDN*gO~1%2a(+YWmguL>&P zXmi=4&-$7daW)Kk&Ufv z{V5qIBpyC5`LJWt7n66+kIkg2z7Bd%RPxl6W|lv&arSr1}A6;JYdDbsnxODIO zn;*{GKYDL7nOJ=N&;InMaeKVef~1N)p+YWQqSEUZk%-+0;8}cT)||;x6~(z?US0?< zFEAuqEs^E`M*H2{);JikU?c3$Q*0#WvPr4g6w-`c~-arvoKD@aV^trcJ{WedpuhM9df}c+riqYC$;GLWE zE729t)U!@Sfz>M*%ps3pkM{ywZqKHjVl$4Y7tzA|j|QmdxRqM`(>G>kH?BlC7GC?A zwihy{@?(mTQ=6oiCCFw=pt#Hmc<0j1qSWm-<7qG2-FebLWlz|ssLIZ<%h?>N zs-741#(EfcTIAEbOsEGegr&_X9t^|5$N|dbltS;Y5CW4}v9sIbacWqKdt^+X)~6jk zM7ZDeM>khYwzW)SIpv()T)K5@^|m{f<4at%BM2p}qz#+3R%ZgAGikc33jTCC8`iX5 zOQx!92#`}*Xf?EI``zJ=aU-Sk03A1&ihH3zmM;+`ly(#OcAJqkXvn8P-ojCyfJ8K( z58(O*snlYE@;4G5iHEM zS~&-FoTIs7L$qC*%MvT=;n_dFaBVe-r!sdv9KW%A@1`wONCl(s+rFJQ+`ClH#_S*5 z%h-b3SN+LkBtW$*vACLxMT`rMTQ>@oXs$E}~eliUt%CdT39(O(o5|IDQyUNzEE`@nKNqWa-IP-A+-t~C%!&}#ZOxbTj{k&YzXmRRr8QV8CO6}f@Mp~6gba!VLK3a_U4`lP9MsnS6) zMYd~2!`8X;P}SDviTlED+LudlW;<$pGo8_V*hdfR2k; z`S{VWKok(DJGVhZ>RsL5G=+(FPH0g1+Mp!0$y)AiBxek`gApXKMHk`^%%C5kSrrtL z38!IQF4{xF`NL9qug<}Xlx4Uc8qJ$T>+833^Y6Ytvyh4UC@7zq);7XEhr7U4ORbI? z2b!bqD-~tR zgN80BS~2FzMMIl`dX+{XiK~bphlk-roiA!~wK6)HcB)dX-R|eDAO_iQcTOJnODdHv zLX06tL!$zZrN12xbpd|Zkcn~+Zg0_ODuOjn2clR>hx4G1JsWfY3*kyGrR&<^sixwd znEm#QD}n?)=|*UMX>n~G+gb zlmTeagRX5A7xiDA$4g!>OY**(o360SHuIg?*Z<9*URu5J{>@wOyvskr5tv(ac&Bn+ z#|++hy0~+wqIrg^Fdi?hk_jKGmfB;Di1((WS3_<6!&_;}6;H2v?Y?(k`_9KcC7PL` z0GJQXKNcpVLTNO5@uZ^W7&g{=S?Y+n-1OZ3K!4nU5pZvGj!fN!A-?q9TdQ7wAsz#d z>7@Soale3gEpw}k?pQIyd6mr8+9WOkPxRnzcr<~vXz~or8lxSsgTo-k+Izr6ZpecxE2%1I0ZT^9u3W?or zXE1p|(%d$JqYImiKft{rf~C>vPPaX- zcgDQiS1P&}E^oS)-@Lv&KjT`scFE9W#R}4{_-#$j<+3?f*Jf@R0S02-n76A{6=!#e zT*~j6ote9Gc?J%Eyy9wP8dsgAv?CDW^*11TK?w!a2H_ zRsiaJ+jMd3*6UlQRea-vtKZM6J}H2j8uZ$&uyXrW#O(_%846s#oGexJMdImUseB6h zMDMMS9RL+Jtj;VV8j=cTYWq9mYHoJJ=R=7{ye(T46M<6QxaRM1{eSw6FS7Q70`F^jYV>sj&2Pz0~>avgM*Ya@s zn59Y;4CpZLSK3e82qr?AAjlp;`y(o_&`50zT4#f5YgCk*m7@H*Pn*Xd%p0e?%{IuZ zPdSE^f=PJ~GsTvjYB6nc2^=PPak? z*xK{APfokAzU51ml+Y_-SeZ?O(TrC>{yC@>8byH=$TXX)=7W|@{iG+R;DQ{5fE-$= z6ti%|w#up8dfW>`Ft5qP*A{O)_8MSd>e36M>DGc# zA9T84?i5%JZf=-hGqbU}I7MV2PO~%W7`2-VmljN3h!GxZHH${erH`+C6b3Gy&mZtW z;g~zh_>-9uutlxzh}4nGxvWE^^>IWgQW_WT-ZZSayuqu}vv;Syb6?0GkA~;9_HPPV z(nzANkj*I`bv;5cXE<@^gI=`=-oPZ05FfOJ7p7cI)Iv7485LBsO;L)YP`(PlWUM+bD0j-m|0 z^N(%SoPuo)GwMDkka)AdEke|;DY0xI3r(at-f3ls;Hq2@(1(}i?!FsN2ivl=EA1S< z`26*&VSV>#cmm3Ca9E#Y!ry%P<r3tDlKVT&hLGN)1JN{eZK* zUm-(_4}*y!-KUIq*Jq|TxSeP^k=kMjb~oig`#i8uz)W7Lz3IxK7$EjQy+gWVp%vuz ziqmV>uCH3^p6OXM0@Y*yShmiDNEy|Il35|$ZW)wYAuAS6Ay3z)f70c z%PXM1ZP!XdUEoFV0f2r0^-NAZb_GJdU@l)25z-QuQ~^`l8^I#*Ok^B!j9>iG+SE|nAdsT3F!JNp2Dz;hfDkB6D!0J=3z6~|l_{^^sg zL>7vGbg_eaMh9Zx>XO4cH9J{C7iQ)cEw?XE=|kwFhk#=$fWauPv*E@yz~)*Irt@ZR z*q3sax$*fjkmwB2__T?de)sOCl~O|h&&#v8JtL!e0`&$PQoyTLbHD_G%@Rs8f;X90 zq;@goLLZy$pZ#d@lLxcD`|4g7OHa*Zfwf8qo{vAid(BALL_Z(`J)ig|C$*S!)-c)^ zL36BIh&bIVz&;e*q zs&J`tr=Cs)!hTnj>UC?|C9zj6^{FV4S$Zg)9f3%J+fkzPXn3=MnI_k$nR%N&S?9hS@zozd{H-aBYCCB9Y_Q~m@2u+nq{^I|5O)UK;3q6mBv{~e1vN@MXtr*qup zyaYxGuFaKCr{Z>foz62P-Rts~Il9WZ509WP= zQ&E6h#85JU)KmcBR>gWZo+x2>rCQypr2!$Mx%a_co5O;!veNCFxu5on=az-YoM!Xh z`t$?$V~cBXWm&uIXX6G-*c`O@BcY(r?2OZ!9^49#q_b~+zB6-g*}V{Uxt4x>^Ughw zMdzUwNF^VM7~OP=2t@q?5)7H6n-;>(mqEl?jpLzg(9@5aVON}KDpg+074-9)GY=kp zba^q+-D1=3K{Yr{yet0eCfjFF<(|W5GHLl`bC?kTQ6RH^@`8y@JLk+Gqg!LN9h^I?fqJG zJpU4!amt8pw(RwSAJ1f}WMD4nvi1M@k6U3|%(`eWr$Tr9qC|pbRDv;smCEA6;N{uN zy*F)=uZzY=l1fh!N87`EC^gE?80sij4UgGTlS)kc8!yGR{9#!L)JB*q#%_-a-P3Jo zthURgJY3Egq1&u>8%bc83*BnHT6CA{EPDOw%Dg9xD%C<~x82VoWLg0?h6C0=5*~B$ zrHoIOe93&3E7nrQRwm$PxC}!VPD>SzDqAs;E+xY8h{j}eB?Do+(O{z#gt>RxTs$2Q zQmJHH05%>k3u>!T*gGn7;;1`%`}SyiyU;A=RFx39RxC&g99xmqQZ8RcO#uWmn$u#n zfh10c7}f-sP_E+FjB6aLcPD)nxcD-)>NW&!@v&LkvNy1L>7$S5JadnnQ}@R_Yb(ht z>6p~ad65txdeUpAHFJVJd{GyIQy2fuor%?r`SGc#^$o+U=AlpQ=r&h2qL|B1$F!cP z(FqvlaBO|d#!EdlBLepiUeS4qw7YE4NZvmcPO`gp48}?N2Up2q?>R{+h~2X|vF`uY zg&+7HME~1Aw}b&3PZ|Dl_JU(TZ8kQ&S-kS-StJS0}Al6^Y*?h`?cp{GCw#oCf zoeT|Qs|m7J%N0yl^j;>Pnz`~g^>xOfW+IS$aJx!hj1xaJzd{NZhHW zH?Nsm!^UYeF~ZAyN3-N)EcZiRf=u$2dS%2U0OZ#_|M|1MFMm@`5J1IgI#Y?YP`=qY zQkX`sEX36Y8Ou1Ska5LStr+xcc2MsCCX2&RSb9no5fni}Jqw%RfHm1F?E=I)N0;R~ z%urP%0Q}Ho3|qc@aT?!-4-3X2Ylf5{OHpi->Qpi=P@Tvs$i^tR{Zv42g=e!A24b}m zCp{D5!`KGQZ;^~mr!{QoVpN39XF^m*^+hnc6br>SHO5fB0L@E@^JW`r6&iuLBA&o0 zl56kOt9eFhwRT>YvO5FH50|YBaH*)Y0(Q0NbhSL7U3sKkK^pEuXCyUOvzfQP7 z;_{FC55fO!ON7>viTN3TyQ1|x?q$;^FEfZNT)eCG1st5*k^GCnfIlA7u4u9@90n0| zrBh4zT;|1xam(FB|IM*aue`Uc_d|Oz;*V?)WJ-oMbyNtMt4D0HUS@EgnG*|j6*d@4 zH}nQS3DZihkffoi%qF(8A%8jV)*u}sTlD)@y%|u3SJGwPg~t<~T6JMwPGw(qDY4dn zPRyeHv~i;JR37}@ptN(^$+ufV46U`oR*%t*H9uEp?pT4U6UaQWr^g-|-Pw8?P+m{= ztAdyzw~l`Izx|*8^z!p&{S6@IP@x`QUW_0n{GeA8D!?_%*jB$|bT7;-K1#+`S0ji< z+OA4lasl!L%|@lZYO~oQ9wOwpi8P(?{5=Im3KXb?1%&Fu<3j|%lP}pdCqo88P zI5L7l2C~i~D3$X2(xp+GN-;cuAWAh=?W=T2Ev4b|;IpUGaDvwGga7y|U|s@xV`eRc z4L{Gb^?@u>>0+a-R(6K<6ft@YAs+E)LWy#zaQP%-dbmcq z{Kkb#V+oe=8&d%M!eqGl@AB#0&hS7K?|0OaryR>2S=j6K|Opnj#0*UNT^W?U2;E3`i z1fe(elz>FmT^6q{n6udoO1oP|gTZ(NF+5uFK_tT6cnxGv&cj;KCG&S~JX~9S%q~dj zq>tP_Y*u#<6qER3t5-~jsX`@0$E5~RYOy;lPfV^NDc}0srTMgq@{oFG`9^m9!z+!s zU>*lGh(Q=+jZ)vZ99A6s%y^X*4!Zj-WSaUTHSIah72ZBMY+?NKUHL`eKAtN@4?1N} zzrEFGD$mY%jd$bHW3Irutzn%|G~Wwdx0=T1Y%vd?!E-DjR8^9c<-O-Gzy96tfBUSx zU3jD~7Mk&pCmqp>`CLebd|TfA$-@;FMsG8wMMK=o2IBp#EGi{~RA+Cu{Zyd>2wQ}v z9+TX4a=^Ue;?3~D<=-MuFC1!8J{{MA3aN_c#W8hbFE*{jk;CQgf%FAuz}{R9|Zmwl;x*FBM>a!w-Q!NMVx#%W9$b$0jn zpSG=d1#lwc7rt}xg9{h#V2?shvn7OOb_Z!#CRScFV}66xs}I2w28zSLbs>dfHUiKO zwou#|f}44DTAzpzFm?&Ek6nIGtsZbAz9ocd{JVpgZDktY{U87BSO54nWlbSEJlENH z{_4fcpZ)3o-Vfs;S2ZveY{>_M+E}o2Tvu^_zJef_%@Vq4wyq{a37)4L{evnM_f`dO zNC=aql7Am}=JtxMCx;N?_R|c4Eq!?R_5)n3fP}I_LD|I;a0I0n0QCbw;8YB55S6WL zw$v<@b18A#gS*5dLEX0a99I3^iMbGiH|;%4~x&GJ_RZeK-2rynz57x^!`Uvb!p8v1^`p-wZFMA*}t&t8RH9tHn+W#7eZVi94|F1m3+B3;0pOcrn$d0gnumWo-i>Y z4nt_GliakyRgNfzY>>u{ZLV7Vrcf(SXJrb+C4k9f$W$ObY9Ee}qjN4D_RP6=_qge0 z^E$-pR&0$t*n#03%`_{yj61~2z(Z17O1%ZxUkN(*DOUzxeJhCl4weR21={L8h$CCpGzttMA3dp9i`Sm){6(?|@QSs^50M;C6a>+b02;B#pinIHf-04|d6@>W82;!%IO?-3AkhWIqO)B2 z{?!kS9?O+~OaD9J)8YRcx$yD5{J;LsX92PgeK*QUHC;>JFfR4@&GBBpKOFg-U;M0N z_N$iOfB$E7+noa^;>%yqbl@SkQwQlh?lqa5 z6?i*dy0-wjKmGOZja^^83F!e{9AI>b75Eu0)z z%)y+pofU@vxa%QyUhX!!axS01z~0$@N{0#$NWm}bVW~9n?ycE%)0{?2l7n(dtqr7j zChQyY8*5Yj52LpUmZu6#Mx7n`5`)RgJah zxOj=-1L>^?Cd^^-Cjvyd-Dv=zpilYAP|0C3Y~tav7qvoDC0DC_Qbu<2l6Vog!ZhrFJkLJfF zS3l6MZOo53LNOZmTG7t7baSb>&4xl|B)RaJAv$`sAN%6yi{~#-cb*@XzUmm@RV*;! zY<9sckDomI=@(~}^4y2s{EIJ#gwqUG05CS%#i--{f~V+RUfzJ~j#3nrs>C+HyxT6G z{Ob7lSO57>e>^^Z0)YT4l{9J|-^Nc`{bLzPM8i&KxQ#8XE_xPys2K9))DE47^je_z z>jDsVTz*tQ0Z51BDHcjZGwGm}c7laZ|BuQLm9QQwc|C1XF2E30x7NB~>3%2r|`R zs;q*#jb%D}Rp_PHc#acQ2>2fEw@?5Si$MMe253;%(d8pF{_O2HuYvRn{B15)`=$=s zY=Y+XQ;ROKTR!X#YdI9&MOY@W6wBFYItk^479Y-h{j>9Yynb4+y#Lpq&Q48jI+9Yp z)e?N^H>`U6q5=f{cqAK22nn0TVKz)J&*JV>BFShs0IIp^B^=Jbxsf3J`*h#uG_S7^ z5kC)N88j}nnxc(qFr(Cpi}!$yspc@vFD1>(kzdz}$jt7&LoNsmU!4(@YZ_SS< z?dd=yAyAo0xx%M_HR0wzPq69|Vd_TCT=p@DdQz z1ry0Y&{UBKI$=PmKPu2OC+`mA8Q_ca>bq0qW&d~ zF;XcV>=~4#!`QM+n!NL3z7d@tANy=0lX`kaQlqVtL7@>=nl8PxGZ;$l!JA)##BX7h z$qTU)+`vCJ!EHD7{)%D#d+_$A`D~LIR7+e*p{rY2wb<#XpeEO93xE6O@VL|KG+Kg_ zbZb|pZq4GFu`A1~`teJ*=T}1RJ7I2^593ahO7E9DFttaX|1>656s01@aBngK^I{qH z>I$EdWvD91F%Vzm>#b5LLvUGz3%i~3_wV`gu^ zgShGkAH`{$a(bzN4nZ^;uWdOz*lIQ!TU&!ht;%LVo}SC+L=`^gEzq153We6`v%?W! zl24wD`lpRvVQj9-LhuvogdEmLl0&%pInTR4!>9B0J)Y$K*GG2FVhj1 z%|j*)Ym6H8d1kN8pdLeD{_cBIw?3G;dYhzXEc3?4>)*d{;nu=qeST$O^~ycRYC`I^ zzWIH1%@JK$b6cI-b;I>(N4~pvcHm@w@$mAv!S>;W^@LgG^BIPuT700?Rox*#=`w++yb{%mS7L>M-ZDo5w5QHM5~jgXlL(8rWkSuSFF zuUdF{US|&nQo=ke^g`w@gtbxtt7jd-)mz_O5cD(`pmCyZ$41=}WK;Htk9#;)3zfw5wsfT|+f1 z?|&3mgup5(^tZ#;otad-7WGST-nysbqjs-TBZ81kVQ>kC`{DASna;7Ck|X%Rv%US} zx94ZwLZjRfDKTVUT1%v2Tlpu$sD0t4PEsohI0|A~*oJaJw%wG=wAe~78RYh;j@sSc zaA;#aV0BH?eE^RTLITezs3nqCD`4otNg0gdz@!1hoi*2zQswqwsK{ICxWbn6`7CAQ zIBSrkfkf7;x;HqtvoT;8Fm*+(nL>$5E*nJ_;Dwd5HXw()Uq0QdmkY2@bCYooE=jql zvKN{Mv+I*)hKEk{j3r29A&-Sb{i)>ecyRC^{%E%5V3rvH1Yn7>Y4pj=oQIiVdb+At|p^-dhNY;zWd?Y^aPFtZ`^(OX}Ew4|Mj0v z^Zf(40(o};&t-={eI~{jgg8533I&n!n$UV;Lgxt*(=xA}n;oY%7uBE(9zvz01J3|0 zc|YkX<=xAHq+UZD?JMoWO2%NfWW^S#_v*bm%Dp-=LHwC9HG+!xjS5_+>HJ4*NJ{_Y7Tc^jZJ;(^UBWOmmV$Rbb?%M&+z0w|5vMH`n z<(N{BA=ykKLn%@!ibPV8@Yc~mx6vt3&|Z+M(DL6TBq|s}+)Osemqf5@N^)5s7_Z5= zDbXpbgWB5O6A_TFr|V5sRWjm%D!?i%4Ya)Nosv3gDxJflgVbU`ky+P+WuwQnnTi^b zWb@75!RKjf(H4zse3?khZL`{}Q6k8TE^lD|zOlWnx$`iE#Id{Y-P<5@cQ5?S_x=J7 z5LbqEK%SRZoJOKw%@`e6UCM}=OfF>y+`LmaGvhCPGLIB%FaGI2{_LZ_diO@)KTY4b zr_FBVo6d31?GG2MR`l1S&W4BkeN!hwf((v=W?G7dtP^)W`9P!dc!=UQK?7$!At{NF zyTI2DL|5i{|8Vm*GXM(q=jefq6btmkZ{xhg-?;q~xB>~nnIW8)z{>e{fZatp1l3|=NUVrF7T${^d z_L;jrVQqQ&`dzcH)@XRACa-?$2N&02YxmAy-xftLDe|3{#~sF^BuQ2|J3HDNc9obP zSnZQOg8>t*2EWU?IIYbXe=HhrKg5$k-P+^_q4R1g2Fcg5(u2g6L?;~DfS7dTNBjL= zL+~NlsAer%gtTEctG&3+xa0RXJdfA4cdgx;9QQbv?~j3?L1eRqvX~Y$HywPXlmbe> z$mME)*Xg9Hqw}Z3t%Ev{f%@Tqx;P^o~X4sO6phgSrjQ8 z0tt=q&MzdmnltV;#OuWh8sJNTMc1Z}+!^!+MWN7tb-Mdv2ye9c5_DzyO`geNQ6Rb5a5NNeJ#zqUiAD-GtT7=VLJmobadi3PmV2{&Bp64|J3Dx|FYl4RBwOw{R{6p0u-8+18@PO68fWjthUc` z#X7@sC^P79Wi05@gY{tCjpQY;3-48{_b=Ug_eZX|?|(KHl%PKL=;qj_)2s7zotn?? zhtPQZIZdVcMxI1`k*?Ey?K_uzL9$b;c{Z291q`Cxl-u*@X6u-2fOGIw0~M3)m!}7# zomWjRRM_GFB;z9 zQ4?Rcn1PEw9pHL61>6gycY1cDfVZ9mxQ#FBa<}u*l61b`{<1W_9x`wzTd7PUmn9bO zoAoiD)k)h{R+q`!<11kw*AtsBo6&3`nFuAwyu-K=th5K^0)vt=B?`Spt#MTS*?;}z zYlhz9AXf!RTPQ&!X#4o5+O6kj5~`($ES#mqdMpgRj(|6q!cfU=@bdC<5V>u1=0-VQ z6*tG1=EstacBi(r|Kf`swJ0?X>p;S&009hK2 zRev9l#@YJt&lYW2O+gw^z?(b6-K}FaTax^w_am?&&Z0GB&IQQ4@eCs24P8$VtS-v92^`wx&OxlQcqPeKax zgLyb-OH_MDMMYMQ^h!B<29$HARF1m2P+ZQF|5^XeKzI#im&*-HQSO>`o2J;5u3;=ek+b>Rs zFxX-${pkl2DjubVEIySYLosr`7XImwQp+@tB8$qJ1Y-*iu$BRmU*B9!&Uq!acj?Si1`LgX z$PFU6P*%_J3D=5ucJyh+K5g?>bFA5=zw^$O z4*STKcBam&Oli<%JoEs*`SszJ?W zQmo0qL}6l-D1)V_f#GzLW|3S0oaB%>%>%th5)V)JKL6@DDF3=JwJ4OJm0AL~+iwq`*hZ1h1%^!npSCq*DoR}#=5sn*`5fqgh9yFahJ*cQv7Pn@oR7_}f_ar5+ za)7Sv?iAt<%ceOX=F6i>HRl@hXu$Xd%L%X1?YXzecREoo*6*#CR z)|D)km2>JA&^c>G(~J@`t=mGntKYh>nS3z2@ObI_7e1Ox(=kPjJKf$CxaP&$abMxK z_Nv*E+zPFv>t&4H2FRPodU?#To_ugOE3e%A@E-ol{p8rqt2Y{>fXG`j$;=L)i4#1Dmnw`0h{4 zx(T|pY=3NlnmZZvyU}64hey32W=Jk^?C@Cp*_)c_p4`x`0~SiZ5$OHbzugk4gV}e+ zwD+&AffXy~BhbWq<5%6QT1%Q1`Fu*ZvH^JlY{QYk*mNQjXdLp^c|;`Iq8TsgXDtFe zjk{8DFswhR?}`tn!=&S*4Lr8G{K$0k)+*JFNSWo8`L#|x?4=EwD4cOZtx~Pr z6}*+*Kskz_p&R1~6*vM|TD{>`)4w>EXwcC3N(bY?*!E#TuJub>ZxU8uQ!D9&UFY-3 zvd@tQJY_fvt|nPh`L&JEW`88)np|~z>*VC5B!j=Iy>ncl(n1$xE88c7Rz=E?VzIBH zG0dws7*{kKp>iRYO@$$kQ19T?9xK3?Ge=WYytcD<_Dl_lX$Z`!f{OuLyhwrrm=D{+ zVf!Xmv|D+QS>;m~|1W$W$_&3W7j81%94{QE5^lsceaOHqbUW_O8(|0VJQ=6B+_q{b&Qx0bP zRcvb67MOc9F|!(+{hqr%r&k2vq5*~U{KihUUeo5^~x@% zWXPHWMV!7>H|BPbsgO&rJbSjYKYH`_SEt9!qja-tQ|;NAvY+CQ1&HDb@NZ1rf(NueP9+JFTtui+|kO*=2$rYue+T zpS&5rm{(myGr^WMQS~$ffloDrB*u;Q*w2;2Jd_=cA$j4rg+qA_4vTamd*>X zuPQ2}eqjSC(;*)?mofrXD6^x3?WWw#iiJv{R!pGBl^hEoCp;^QM3QO1X$chP$n<8W zvon(TTwBg!DqtuF6|%Y2s^@dfMyG%9G3zEjA4%q|8@K?s}byL2W*hOk<6hH;UCc<0kB}QeN1+Y|L7G^5%~&&1kY% z@IX|gfBy$PT1l!CU!|&kWA)4&?zP5_;eA77VCr>%^eO3c!FfT5rSC7I#Y)##L_9X8sZ8wr`j`oo~ zBYN=pu=SSrFB=SG+GbO>6Za+_-?oQW^syUD-r2=?eWy#I$;wYhIG#vY$8tT`&NysE zp~+ci^lOC8wlV7yw!b=Pjdo9-G>5rb;`Vp->laZao#ZMH4OvTw`XFJz=p%QckZw5Q6P&CN1Le4R@2l z+U+vmk~2!g=1j!>kSV3%LY0CvXSv>V`K$}}dY*%qkxp5J`*5}~=qO33u6En?`taz< z+4-~mAuz|pq;AIB4oPJODl=`0s<3RfxdXPW=S?P&5+bRSHz0PUQe2*v+?J>W279Sj zWvNuL+Xk;{2UyC5R=1i>XSO5<4FGJN7BxFj(<+@Yel#(mciN{7Ha*RoJzlNFXeStk zK|^Y{u<+x{QxBlSx>pZrBZ^)>wlTlr+=vCEo=p;o5G0k3{Mq}3B%yOl7kk~RV)8R` zDJ;;)h6zGC{8|c0?RDYbom@&RjTs>6d_zM%8v%co7OGsxu6bbcneQ#E8~izQl6OY$ zJ@zS`4Cb4v5-5>IShywIM%>$TyX|sWwjiBsAuPb zwXcSDjBtiYOVZ`eNtKgs3nX)h$Ax%r>WaI#x~Dw*ZEZb<_FlbJ8h<)0zx~C}_RfwD zpPwWbZa*NZne4&muV4S>Prv;8&uPQab}YYlRw;1VhKE%DJh`5hO**e0U!^iD3{5ko zh&1P_EKG+Yl|?;SR|{SCn!@u>52EYjmKut~yGRPP;;?(K%UQb@c{`G+v6P~l)K1M@ zo!hWpet740QmR#Qo|Ug=Z~+M;aR;mW3aa`nsJ*4Fup*Jp1b z*y!;k?p^peS|*&rsndgGrCiOnh-!T3PgYWlOy_E}z;g8lAT_`ny!CKD6h}O|=t1mSUICltKZ9!{P zEEVoQT5#*eA5VoV0ItHUPA?m@8|W&oqv0bC@hIEs-2B}!leqtCyGcAUjNP?3%K>k? zn3v%w$6@ql0&q&gh?ErgGA9cM6`MIyt5Zssz)OxGQ;q8#rUk4-%VO4?$pOjNW-zP} z`+V!!(eYlb;`gGT{M*2dcdx#GH;_#)1yWN6mxU6UI~yz)b}nhc$#tF=UpzNGy7us+ zg-ShN>~w|HoWZktcOwcvH-s%!lp-HDPdp42wi}cOZ0~e2=aik=BA-(;t!ygCB{SHg zx!rAL_l0Cd{p;Q^C-vK}e!T-`+j_Hm@|#vx(Jnl?^VvqDGJ;B6O*z=@ijiust0EOy z02U_#Mmw5ZMH5NO(q(tS4U2*Xo-!L_DWnBA<4$$s67f|%8(>|Z8n9y^^~6(oAS321 z)~qY{v%>+Vk0>doCV2xhzNk%c=8NmMZ_GKCHh=?>76!YVygg`@qtQyUz5^*_VziSk zS3xA*#cyb_OqQ(HO3mKz^_w^Ss^C&t%zoh=f5-=)MpFiXjSptzQSB$6zB>ghWjrOY zrQH$KaH~xw885JM8YOrR&0wA=08)}tF57}f83H-GKvFIV?tl-~n<5aU{vvBe^*2Jr zY$;0$<#vgS^G%tB`d~T{NZ{$nvW_Ct;x>c=L=KFy;K&;eAl=FlfiOrIl`P~KS(YWa ztZ^OzYO^=uw~~}&Lp*;5-?RPwI)~Bepl9^ztPfn@0@Lqt!_Jf4g0Iu(tOVos6|+$Y zg?A43QW+#uJ@41Iw%bK639w;2?YZkOM$3^~e%+L2`ktk{oeXQIXH6^jC#p4*Eu=!Z zTUc7K&{78BE5~&L`t;RB2b;^|G}9Oq`Mk?Lea+yfZTgJGhlLVETo`N*TS7)U=4BWy zs_v!OPS5A$PNL8z_ZgFvJvk_q=p@KA%3x0ff=rgc{r9fU{qUWuSF!C}JSF>PbaFN% zB(#qhTjsb?X+OgwEWJUuoVIO9*9J2%yp5@(*FLE+t~myP$Ip$5gj)AUHnW8ajb;$1 zDSMP$=*27wC`aOCDG=n^Lc*Nu48Hj4@81NuR5;)!#2kkro&*6uSV)1jcO?I+(-n=9 ze(A|U4;7k&!Eu_(Z$nxKz!mwtE$B0D294t%Yp2%2mIdXt^R96l3qj2h^V-cd;(G@2 z*|Chtb=3I&k2d;^_=b(#>Ux9w^(U31U%frfi?D5N2!(7-|H!4*eL?5K!X14$Vzkx{ z_Q2-E3|>Cj>%eHQRO55K9atY!kM}8b-sf8~uf}jz=`|`txDs{%>W2`DYPoieucbq- z2(tS!oMCQS>14!mW0IF3DGX~Ksn*Z4HAwu076LrQ!J9M&S$*1}aYIcsSMLnFfBwZJ zxR-MRnieXgLmLcaLBx}kLngDAtF*|ZAm%76SD*;yJU0;vLN4Tm|KJxDNwZ80f=Y?eg4CXIQ`9c4~OgPpV!ZL~Qynr;=jLhazB zQ!5NQ-6wB~DT6OW0Dv%x!mgi(qPWPBL82u!zZ{er+O;Jo8i=LmZml@hSLxLW0HOr% zzc(4fd1`Gk@EEL}w9Az=j61ko!USVJxs>wstAP1P5Sc_8 zrBJ=@gCE|}r}cWxhFyzW%(rmPhd+*|`M1A+`pYi|fsAT&@O>1oH%H(QDQ1%_o2Jbg zqt_Ct^~D0U=`Sd(VoTSkq{op9*(!afCQU@s87Os%X)oK9bA=SkoS(ma^*ZCkGjNvR ziutp<(@r*)%*I#EVXAft`Z^@Z#2}aB$Z+@;_h%@3EDo%P9hHw7Cv4E{y>d zHIM?R+D)2Lx&n`L^ffE7HBkw0sq7o^0=uI$tess+8LA*0RH2}!f^lfu0ZoxI1IFjIF=f}8dbB= zC>~Fytl$u%ap8!;Ikizt#^BhMRglT=ziy5imFGWgCfw=#Zcb`YJ`e>Ks-3Kd3Ppe= zySG&n=(Y8bZr-LdUY+$gBS9VdaDlR2pSVA5%C+ceXd{mfOh#6$^zx2m6zSDOh$DIz zd}-&}wC4Wo)a}a#Rc38kQvyf*o`@Hd!eiqTKU{QZAkUzX8o!V$DMK3NjWemRvtkL5 zO{&c#?fyW5_Ui0Z{TyumTetd0Smq6}M`pIrSh-Hey z7DXsEF`l}e!R1jkS^Y+Z#%^T`rYbWI2 ziv0exQia(z=8Bj<R{`<+4)@nFI3$GGZVVXjg)OyhkIh0XX3}6&Q=1NaWXj~UcUEj3H*X0Ic9e)086AK~ zjB}>5em7hE;$;PoIbipypSYzlxQiCu#v0mT(`n3R#=?xiqT;+%Ea#!dnPW4Uh!O+} zgAm*uriZ(SFWFih2Q6tZie}@cV(qkR`#WYpiZ`H^k6Yx}VeZ;DZ_z7@BHwu!HAy@(z zLs*JS-L#EQ#A0*yvV%JjtUA-u`i_caBRX)5cj7dBlT*bJo@jffNY6O5kd5;eBkSi6kLokTlczI6Jg@8_W=xqdv&~|r3qc*J zJd|Q$r-6oDHYyvk2KY!S>fz*INq^UiI&z+<(-&$sBL0f7YK(5IV!4MKjLWzK;_L{$EY<6L`TOHsbvUSIa!P<|i+-tV4!%C-YJL6P zL=L>z(!w}J7FPofzji~AE$|GPW8YREO^11#3mnct=f>=k9#69t&4wstphh6`;?ax# z%l50My|ln&5MyaipiLRxvnvN9m|O4SXuKe?+q*KP$hMA#yE~`DS~17h;%WxjIjgCW zB4Jl4!@4cNm_jFK&91`asuGiu$d;N8K>2drrgMam*?dpBenaD27XTxM2UEw-TXLZW zxG8@SsVRhV-qaesIc#my72_(Sh8T?|@%HCm9u2^3nupuKcCnEJy&(p7&1#g-ajHTR zC|N0?0>t{*5`>~u`=Y-t>dZlGq#&V9eEp<5=UVxz@BHPr?=2_l%Iplj*HYp*+g1Hk+WBza zQBEXxxS6?iKa#e_no;R+Puzb|+ub?p^1Q&5S;B*Xk~khFqQs=jF~3CfYvBlrgk)vR z@c&cvp3idJ=e;MLWXZOyOpz2tfgnL-9E1blP-?0y?SbWDKFrnx7d!Fz2^NBt9!JmKc zZY=NG>_4IB)BCj^lb8UTYO)XX3;OVIN+v{x4yE9r-;(R37SES6kZd3o*nlTtIs1)y zr=NtQk~f4qFMEPO`hQ@&a-WFfxfq$Iom=bIT$Ry>pMM~?+5X9sf&%aE*{5GtST2S+>=mz)=&xSn9%6ZLxiICA~>xA-OCF z0JWgqLtr9oK;V;@rn3@&w?rueq7R=rkKA91afJjDO0_;JYmjPAtfqm8QJC(I$F<(m zcoMP?5Q!AkT60pD3gRS_Isiui!HdaUqnJ}_RN;6~;>7W^Go%2oB(k7p0I@0n+Nr!U z)cd_m8X<*p0rB0w8p(TC{F$IXo(!R_T=SqHb6&R>Lmfns4r94c7zi(&ET)MjL~V^* zLK21(Tz^zd)6ai>n#HQnN^HWwNJKDK~B#L{D ztX63F6=Cu{ymT_%y=JLwSYsCs-py^?{woCqx4(c2mBeW+iy9u9BqALJJ4#)g zMZjE+Emn4Y<_C)!CNt$i9L%tJ?1T$*UW2RLKQgAh*ueMAl@41-D)U>Z#~Or{=lj zPH54MrW8=H)|FT^B0~ZulE!4%fR7Fu@Arb?cw8*fqy!A1nx2ma%es)yDMJWRL$159 zcL2P*GPqW1Qi{b>QGibu3T#;FcR`>HYh124)>y#V%&)C{|D7$n58)Z-j*Up;`3C%0 z6QBkJ*cF1}tukap^K4DThfugrL<1&a+&DRY@&cSNY+-kIZ?|8ShBc|!sAVgfn!~IJ zV>ahtZk(cW?uh^5d!d9a7!tc!2BI`(Uksd@9>b1%$AKEQvou(%(wYXW{3#O+8**5o zo4R^y+qe>Uy!qM{->tW{pN>oGZ+-p7-CLO8UA1g%zI|^wkkyoF9ZAB%CE^zZq}0S% zwK4d4NqbginbhTA~Fu|O%1u1KoaTsFP+wio192CmkmV;J0|>qN+FTV1}n>c|Np zJ6`T1Z8=q-F?UFBS2j)l2e-Uz?-#9TEP`#^iY5~!si0A0Q}+F6`qRXE%DDXbJt-n3$ZlJ+n-grCq{I^MjnN3i0nX13 zAz@03vL?}Sdmevj6lKCM3Ohl$}IK9q$bz@>{h93vcilL{pjtaofg1)AJ zIS`ur>}-G7I}$5>tTf^AR-M(KcH?ewx1tFtN-lZtEUoM~slKxr1sAhKKFb^S!;NwaKWqyWi*z zR1&2!2yxm;?>Mm_)k@30w}W_U?hRiPMJ$fHs|jBSv_W9??3^65$4|=vhe>GegO@m& z(X+H(FXYYHTs(qS^LC3*fS$)5^w!wWJL_d)ZP}AAjVgS~8oc}Z#UNqFHZ1KC_ z&r*4O^JnMIU{v7p13mzGg#v>jDilN;D2SW#c)M2L2LODt0|O{U(x5flsn%7BRkI*E z1-b69%fUmgKPm;09_lz874rSZGIjR*7iE%$_zMmzivk`3p@P?EUw3$ts3(azOi3Nm zkcDQcl^;NP9it<{H@m*SC2H`W&rqSx53#SQC-=wAEDoXNj*#pW`+b!BzSiTg^mH0y~K z6g+%Aqpu|3SHiWvvvP045eQx9#RuW;Nq&1F6j3`d6&Sz>2gaCE-kC%X0iKa_axJp; z(+?gsVqw=^tSe{sPhWHarraMLosQeXi4sM_aQhxt>s%D4%tRj`J3o4zN`y8ac-+2h zBo(kZR-@+SR9cxTaz+R_L(P0z<#0&zH7AF?Y7l*Tkf~S8NozD7BY3HB$fT(v6^z1L zQv%?^tTE=rvZ=`2n@%q6XZK44Y;xo7ST^?zvzh+<2Vc8HH0gk#og6(sKT#w#0-Ad~ zr^MnprH3^sBH};`nS8doo7&W3*Jj)#+mnT0PO;pI345l_oza3bYA-Duki|V^X&_Ny&}qd@A$KS|Mef1qu=S-(t*<7t)D$B7b`(WCb(*`K+Us|m2rQREm%^Pcjvo>X!;1id1!oNE;9Fh zm)ty(WlC-D?LUEYW+$Ic!y`|rRq*0|RV{5h#B9#zMlP>2j&wmKFsxc&fhol(rNRE; zBOS3Qf&>J!zw(p zT3>##udwZ>`&BOOLs3>C;_-yT>sz;z-Y~-!;Zg}?Lb+A%mdgW>ui-&gw^1*_upk5~ zK#3OxmDZl9V!g8umtxqC$T>Wj7rA64wJDD3B#uWp&S;6~)hs#p=EXH%WP1ZiKl<$a zh=_U{N_OrFTA&hc+UvUegFn4)wUE)wh8LJH?M$X_St|;P!j>_QEwBth^)B(h{JXfk z;-0o76qEheZr{6XbY}Z`V~zo`Jl||)ex`6q!p>|sabXaFF%EKABIe1j+ zNU7MW)sGOFRezR_vSp3RMSryJAZlIP(zcHWYvmG!Y|Xv34v0xX<1$fySVROl?MW1? zVmliFV;s#*T7xz~I+MxJ+6uxH)2LR6#?FZV4+Ci9_O{6*x+Cc9qBFX%lw30eFxq~3 z+v^f+E3D(yZ_g(vT4O5*ZV@bKcqiLyN|>A13&m=Cbad3-eI#UQwsulv7H$|l87(hJ z;IHj|oHSuPSR!N`Bim8IV}K5yyDaB*{KG*RM*SaDcR%~+kAHlwdy@CxzDO%**s|zU z_+S3ZC;#amp93b#;zQ7wED)t(9<2`^{lCA5G1jzQjKIxJg<~sl9-32?@R$K#?eu%i zBrNSiF2t~QI~IjRW~(X6RKlLZ<`)m#RWuXk1kqUwelr#<@`F#*# zLQo4KE3yRhOQqbKQh9wObRIj=ZF@`U3naw_1B1DUc_Hnb1+2K`<2r{|4(Hx&#qa@4XR>bQ)T zVBKf;OT5zr2}S#RHYcm>APNf!s6b@rq}R(qqW zLmBLz#c{SkrmB;w+*ad%_>X`2uww!EXvTcmeuv zLzA{OjHrjB{aTyM>XpZB0H`xwQ#9_hr96Q|@8KJFks2CryreG7ExQfL**EVmQhcWG zaiK(R*%@i&Fa`4yN;#XMbLs#P8EJ-K={h*H+7eE%Y9We;l0q_^6V-ON9LK zU>sol7p~IC;>_%&H|N$<^(l~vU#2GMIp~{yJY)TuKM&*eRy`*WqY~pRQDMm`WsCs2m|eS({~n}!)QMhNY`3j zRQcc;b@XDd_G!Og;_a6EZ~kD`X1;zYJDNtyzv9fGq(~MtcuK+5#}^##9{l0I9F7hS z$74V{3sB&wcPjbOVNc|UAexg6OV(rxFQgoy;LWS1sJ0K;Nj4T1%K$2j3u5J{LB-NE zt#k(xWKe=ec`6m#)vnm-lxY;SY)f~rUT>JRo3H}o4y1F12FwE!+L!y(^rKb@v_qY8 z|F8;|IX(xVHy%&%dI?DhxnfV#dpOkPD2ak2Q@aC73Qg-p+?K4?2W)^Ofno&+Dk7ST z;$W-u**!5&n8Ylb8=zz?D-_+TP6rW6t27jSa5Pm*bVj0TV`0VLZL5t^8C?tI*^p9X z+39JiP+{YKLQV&x35R8Q)k|gblU6WU>dIJjd-HBsHEyES+}xXUVWbtfvN-djcg@)P zwUs+Nv73MOS2t5~VEvjq0T=p4XZOQrqqdZ6kGi`b9WxNFKRw+Q{VN;D`ElJ)kg{v{ zX>dH06dI^hIw(nec9HLum10F80z!$G)lsG2sOyhDKRztCqGWq`&;pwB3c~e{gV*@J{i={3diIL@_UaQ7aDRggNC_=-g zU!e3-EIeo0BBLf5Ag@Vx!3zBG!lZ&y9%qEhn$1vLF379jx-j$3-z*&Cj<9j-)}b09 zO`eqmVZY^$1k7*0^6v6R7WhR14YA8djcmJ*7oUD~IwFiKOsV}iacQT(1an!vdVI7e zF{2WEI;IJ*4l=`Fl#8NZH1Qd+6VB7t5|sIJ#5L((y?rm!ojh-J+VWd}^1bg|PO8_# zlbmzg=b)toiqq9Ipr?FrIPB+g`1Ak!*Mr{f`Ek3|>1#qmKiK0f@alU}UMO)J8-m{( zqW8* zTde{o$-`C|VlIJDgjUIT?+`9MA*a{qWhIP7vh@r+&!Z^@c-Arlpf9#_)Eu8R$w)fm z&egQ~*Q#yl`Zt+#L8b;e?gmicWJo};6^ zVQbKh*s2r*7*QJYRFQSwTyZC4A#OFtd7N+S@T*YNr811Fc`cov7Sn~1TBtTP zdN^Q)gG!#=o9v#9flPdUa?nd)3TKRaw+)_JFB7=H8sK6~h}V^MC#3#?^1!vUq$q?l0}wqwCKYQ{dT;yu~{$tYPef-HdoD%Zwkp`-;v$KFPnfvTzf2vs0s>ecj zqNCpVFu1dG`ahi)0E7)tM3Y^t6|0BM^p=H|tgruM&9cQc>4cx+5*b!e#?$H3kB<8i z5r$0d|N47H-R%?h3e2oHz5mfK>rf17Vs0rD^;m%g(~W}`G-R=FuFY;Fv^_qHS-oBc zzPf2xt6@!*6)9)>$_*Ew9k9&+1;vf)CwI`4EzBmGTCUnLMwOE2m2)o1c&p)YwmWfZy z*;nkB-a!BO<^Oe*sHbIUX^`937PoG@9zg!|*2>IZ{$$pBhor)GYT)Y*r@V(TpUU*4lkDJ1c!Q$j^%dQ34(_YyM7F!ph&t5yi6<2)C!mH&V1`nzy4<) zF+c{l)?a_y;<4R(_0@;=rEh%u2j9KA>WX6cpq8L2z(*PN7(c;e8W^}1+tcC6sV9({ z&+-|eT0*8HiC1?6{bw2+%g(0Uz_LZ>Y?+9!mFIH-iyP}75{i1O%j=hJ zT)eO(^97Oeq)X#EmeGnlRqh>h9#zZddeMwb#NqpubOa*$q);0dndN(0w|Td5$mTGFY=GL{c>L-+r_n4?GlNS(%UkZ!@YCYsoaS zvAzIAB7eQWm*Y{uTh}LYN}aYf+-wU4LxFIqE$e+|a=bT|6M@b7s3)LyBFW}6; z8<}bo>pk1+3x(#S0lBFVGaTZ@NVi2$os1{HYJ{2;BePJ9fi6cM!yBU&$rjTuH9ou_Hd~ottq) z-rLwokZ6rlL}7Pa$}Qgy#QBVQ2{R#qyKA0!DV21FvXLc2_`!{>9b!TX&-NNd%I2{CX;9RWN(3sQ8r91{xG~Jb`5~@lW@4Ua*!i98z3FpV}(-CxjF5`7l z3o&qJDy8rS&DEI4mg|}$SI?jlgbT;@ryn#5 z`S1=z=TDwK?v{s>{TH3WSdL^P+YVnM%Xc9&vO8>d%k{xYAOW4T%VhQu4Kv$F1QJ5>aR$cz{I_hmW(!P>lHWd5^$(J|0ZC z{R1D_VUUC&hKk$j4>h4fmj+{;sVZaRTl9@c$X*n~@?)AVrWzTN4J zd2-0g0^*K%LhEbm^O0Mdv-8#@S@1Z@Tx@gwwM(g}+aB!lqNzr zpxe82-x+X6b2nc7*4^1fgT+ti&=EroeEUkQ>IjLi>6X##i06?tvT zYMY9(@Z-Bok6pXxumCLAn$LL)!xGWm_?ri#$BjF=U#6YThYp7!vR6@uU0nO%DJrmV zw|}3<3S^5%OMxD>Zr_}*S*(j51@XMz_O>7MLi3Mg5Y;=V8vO$f#dTj>~s zMCFc}X_o7}72{wFV~Yt)K<#NjShCu-jbWnb!vjb=l_+7&Vk(2>xQ+X+1=GrRt{a!H z&Ce}@^B&DZxkN3HEcjw7N5t%rd zOeN7&9?qj8rz&cznB6-?TAg&nmXQ1VPr)!)m^^NG(>UAfRN?mHcNv_%Ekgijf)+Bo z9bpT#cC%X0d0`Bb5m8rlHj@eX!u(M`KWQTnqeYAx7!_TMQ1_8zFcvqV*-B-r)esdn zCHPuHEoz#YVHw}{rX|UN?QP+PUnwTICwkhx?N`sLe!G1o5&(SBJbWzT_vcsqGzWo_ zvXl+@w*6RKJ`P=pkYW(QJ&7N$cz3cZZ}oPg$+UO%?ws$TQ%`z!oXc;#_1d?txlfhPo%+QX^`mOGHyFwI!k;fUOVI3XT!Y0}8~8!>BNs z<2F+y$KSI@c7I+*%z>FOL&TyvDr__dHxqubJUr-6;(zw1fBChGF581!J8laUe(Rgp zzWdhSyayb_?TvdI_iu084R*g9a~X;#fk=Z|S(of{(Lvq4W>z||Fs+MzE3d$mAtr

5JfzGLdy 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 C)GITW@wNS&d1t$SmG$PqdQRM4D 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

raO(pf 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�`#=Bs>FC#Qo`3iJXaKwkq0*`YURW!)>fpwf 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%0D$u@7jp*=fIC_{ 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 z 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⁡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�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�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
xH^42KVda0i3_^t|rwttWEmqm^hjfSGY9 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

Y?l0%pD8kRE%kFS=C$FAb$Xgqv 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⪙!=V{E9*ZaU% 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%0D=<7+BzXKz(>;(yJ;XZpe=y@ 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

#TGBTypR+d7_ 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 -Zlq<3K>N>$)&9@t6Qy*@Wt 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 z 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 menu. + - fixed "numgltextures == MAX_GLTEXTURES" crash when playing large maps (nesp09,) due to frequent model recaches. + - fixed bug where entities and water were not being drawn any frame in which a model had to be recached. + - fixed skybox texture showing up in the place of other textures/skins/lightmaps, when the previous loaded map had a skybox. + - fixed missing polygons on edges of screen when underwater and r_waterwarp is 1. + - fixed missing polygons on edges of screen when r_stereo is enabled. + - fixed long mapnames that scroll are truncated to be shorter than what appears in the console. Well, sort of. What I did was increase the maximum length from 39 to 127. A mapname longer than 127 will still be truncated, but these are pretty rare. + - fixed rogue's teamplay skin showing up as an all-white texture. + - fixed checkerboard texture shows up sometimes when an animated texture has fullbright pixels on some frames, but not others (reactor core in junk.bsp) + - fixed color 255 is not fullbright + - fixed fuscia dots appearing in corners of resampled textures + - fixed mapname command crashes when client is disconnected. + - fixed cl_nolerp 1 screws up speed of demo playback + - fixed annoying client-side step-up smoothing when in noclip mode (except on nonlocal servers.) + - fixed scr_clock 2 displays hour twelve as "0" instead of "12" + - fixed skip textured surfaces still drawn even after running tyrann's skip utility + - fixed crash when loading a map with a sky texture where the "sky" in the texturename is not lowercase + - fixed hang in e2m2 on easy skill, where you can shoot one of the buttons at the beginning and then trick-jump through the open gate. Now it prints a warning message ("SV_TouchLinks: null link") and lets you keep playing. + - fixed bug when viewsize < 100, and r_oldwater is 0, where you can see the water textures overlaying part of the brown frame around the viewport. + - fixed bug where imagelist and r_speeds2 would report the same megabyte counts in both 16bpp and 32bpp mode, even though texture bpp should match (and does match) framebuffer bpp. The numbers are now different and accurate for each bit depth. + - removed cvars "vid_config_x," "vid_config_y," "vid_wait," "vid_nopageflip," "_vid_wait_override," "_vid_default_mode," "_vid_default_mode_win," and "vid_stretch_by_2," none of which glquake ever used. + - removed cvar "vid_mode" and commands "vid_describemode" and "vid_nummodes," because of the new video mode handling. + +cvars: + + - gl_texture_anisotropy. Controls the amount of anisotropy in texture filtering. If 1 or less than 1, texture filtering is normal (isotropic.) If greater than 1, increasing degrees of anisotropic filtering are used, up to the hardware maximum. Set value to 2 for 2x anisotropic, 4 for 4x, etc. Default 1. + + - host_timescale. Scales the passage of time on client and server. Set to 0 or 1 for normal speed, less than 1 for slow motion, and greater than 1 for fast-forward. If greater than 0, overrides host_framerate. Default 0. + + - max_edicts. Sets the maximum number of entites on both the client and server. Default 1024. Acceptable values range from 256 to 8192. Set to 600 to mimic standard quake. Changes won't take effect until the next time a map is loaded. Note: if a client connects to a server, and the client's maximum is lower than the server's, the client will probably crash if it ever sees an entnum higher than its local max_edicts. Warning: you may need to increase -heapsize if you want a high max_edicts value. + + - r_drawworld. If 1, draw world as usual. If 0, don't draw the world. Default 1. (compare r_drawentities) + + - r_showbboxes. If 1, draw a wireframe bounding box around each entity. Note that these are the server-side per-edict physics bounding boxes, not the client-side per-model rendering bboxes. If 0, disable this feature. Default 0. + + - r_showtris. If 1, draw wireframe outlines for every triangle in the scene. Like in Quake 3, the lines will be visible even through solid geometry. If 2, draw the outlines only on visible surfaces (like r_showtris 2 in Medal of Honor.) If 0, disable wireframe overlay. Default 0. + + - vid_bpp. Sets the color depth of the screen in fullscreen mode. Windowed mode ignores this setting. Can be 16 or 32. Default 16. (Changes won't take effect until the next call to vid_restart.) + + - vid_fullscreen. If 1, fitzquake will run fullscreen. If 0, fitzquake will run in a window. Default 1. (Changes won't take effect until the next call to vid_restart.) + + - vid_height. Sets the vertical screen/window resolution. Default 480. In windowed mode, cannot be less than 200. (Changes won't take effect until the next call to vid_restart.) + + - vid_refreshrate. Sets the refresh rate of the screen in fullscreen mode. Windowed mode ignores this setting. Possible values include 60, 70, 72, 75, 85, etc. Default 60. (Changes won't take effect until the next call to vid_restart.) + + - vid_width. Sets the horizontal screen/window resolution. Default 640. In windowed mode, cannot be less than 320. (Changes won't take effect until the next call to vid_restart.) + + - vid_vsync. Set to 1 to enable vertical sync, which eliminates tearing, but caps your framerate at the monitor refreshrate. Set to 0 to disable vertical sync, which allows tearing but doesn't cap your framerate. Default 0. Note: If fitzquake detects that your driver settings have forced vsync to be disabled, it will post a message to the console saying so, and this cvar will have no effect. + +commands: + + - "cycle [ [ ...]]" to cycle a cvar through a list of values.. Note: this command will get stuck on a list that contains the same value more than once, such as "cycle blah 1 2 1 3". If you're doing anything that complex you can just use aliases. + + - vid_restart. Tries to set a video mode that matches the values of vid_width, vid_height, vid_fullscreen, and, if vid_fullscreen is 1, vid_bpp and vid_refreshrate. + + - vid_test. Like vid_restart, except that after switching to the new mode pops up a confirmation dialogue. This is useful if you are not sure what modes your monitor can handle, so you don't get stuck with a blank screen. The dialogue has a time limit so that if you don't press a key within 5 seconds, it will revert to the previous mode. + +changes in 0.75 +--------------- + + - totally rewritten bsp drawing code. The new code combines the advantages of the gl_texsort 1 and gl_texsort 0 codepaths from glquake into one codepath that uses texture sorting and multitexture. In my tests, i've found that it's about the same speed as glquake in low poly scenes (like the original quake levels,) but as you get into the thousands of wpolys, it's faster and faster. + - 2x overbright lighting. Lighting now looks like software quake. Just like overbright lighting on models, overbright on world polys requires GL_EXT_texture_env_combine (TNT and later, voodoo4 and later.) Without it, FitzQuake will be use two passes to render overbright world polys. So if you don't have that extension, you might disable it for performance reasons. (see cvar "gl_overbright") + - colored lighting support using .lit files. + - totally new water surface animation. The new method requires no surface subdivision, isn't plagued by tearing and sparklies caused by tjunctions, and looks almost identical to software quake's water, and doesn't slow down on very large sheets of water. (see cvars "r_waterquality" and "r_oldwater") + - old water aninmation fixed so that it doesn't look bad when gl_subdivide_size is 32 or lower. + - can load external textures (currently targa and pcx) if they match the texture name in the bsp and are located in the id1/textures, or /textures directory. At the moment no other images (skins, menu, etc.) can be replaced. + - gamma correction now goes back to normal when Fitzquake loses focus. + - tab completion now adds a space after the completed command/cvar if the cursor is at the end of the editline. + - increased the max length of the video mode list from 30 to 80. This should alleviate the problems people with newer cards were having trying to use some 32-bit modes -- there were so many 16-bit modes that they filled up the list before all 32-bit modes could be detected. The video menu will still only list a certain number of modes due to space constraints, but you can see the complete list by using the console command "vid_describemodes" + - number of listed video modes in the "video options" menu increased from 27 to 36. + - added alpha control for the front sky layer. (see cvar "r_skyalpha") + - clock can now display time in 24-hour or "military" time. + - added an "mtex" counter to the r_speeds 2 readout. This measures the number of megabytes of texture memory used each frame to draw the scene. Note: this doesn't count textures used to draw the console, menu, or statusbar. + - added optional drawing of surfaces inside sky leaves, for compiler/map testing purposes. (see cvar "r_oldskyleaf") + - sky surfaces on bmodels are now visible, though drawn incorrectly. + - fixed multiple textures in bsp with same name or no name get overwritten/not loaded. (example: rd1m3) + - fixed some nasty texture loading bugs that were especially hounding 3dfx users (wrong texture, no texture, or unnecessarily low-res textures displayed on models and world.) These bugs would also occur in conjunction with nonzero values of gl_max_size or gl_picmip. + - fixed bug where changing gl_max_size or gl_picmip in-game would screw up alias model texture coordinates. + - fixed bug where if -gamma is specified at the command line, the "gamma" cvar would be ignored. + - fixed model more than 2048 units above floor us unlit by static lighting. + - fixed crash with con_logcenterprint when centerprint message was too long. + - fixed crash when changing to a nonexistant gamedir and then trying to write a file (screenshot, etc.) Fitzquake now creates the directory as needed. + - fixed "bad surface extents" error when sky or water surface is missing from bsp file. + - fixed alias model shadows write to z-buffer. + - fixed underwater intermission camera has warp, but no screenblend. + - fixed console buffer still scrolled back after using the "clear" command. + - fixed console command history (the list of previous commands) not being rewound after toggling the console. + - removed cvar gl_texsort. New bsp drawing code always sorts by texture. + - removed cvar gl_ztrick. The depth buffer is now cleared every frame. + - removed cvar gl_keeptjunctions. Extra verts created by qbsp to eliminate tjunctions are now always kept. + - removed "sliding on monsters' heads" fix, becuase I decided I don't like the idea of changing gameplay, even if the original behaviour is clearly a bug. Since this bug can be fixed in quakec also, I feel safer leaving it as it was. + +cvars: + + - gl_overbright. default 1. This variable controls overbright lighting on the world polygons. (For lighting on models, use gl_overbright_models.) If 1, overbright will be enabled and lighting will resemble software Quake. If 0, overbright will be disabled and lighting will resemble GLQuake. + + - r_oldskyleaf. default 0. If 0, surfaces inside sky leaves will be skipped by the renderer. If 1, they will be drawn whenever they are in your PVS, just like any other surface. + + - r_oldwater. default 1. If 1, use the old GLQuake method of subdividing the water surface to enable a warping animation. If 0, use the new render-to-texture method. Note: in general, r_oldwater 0 looks better and runs slower. So experiment to see if the performance hit is acceptable to you. + + - r_skyalpha. default 1. Sets the alpha of the front sky layer. Note that if sky alpha is less than 1.0, the sky will be drawn in two passes even if you have multitexture. + + - r_waterquality. default 8. Sets the quality of the water when r_oldwater is 0. Can be anywhere from 1 to 64. Lower values give better performance, higher values look better. A value of 4 will provide water that looks at least as good as glquake can get, and 32 is close enough to software quake for all but the most picky. To control the quality of water when r_oldwater is 1, use gl_subdivide_size instead. + + - scr_clock. default 0. If 1, game time is displayed. If 2, system time is displayed in 12-hour format. If 3, system time will be displayed in 24-hour or "military" time. + +Changes in 0.70 +--------------- + + - added anaglyph stereo rendering. Note that this will cut your framerate in half, as it is rendering the scene once for each eye. You might want to turn off r_drawviewmodel as it is hard to focus on becuase it is so close. (see cvars "r_stereo", "r_stereodepth") + - now uses ARB_multitexture if present, otherwise tries to use SGIS_multitexture. This should fix various blending bugs on some cards, such as weird cloud layers, all-black models, and inverted torches. (only ARB guarantees that GL_DECAL blending will work) + - overbright models now uses GL_EXT_texture_env_combine if supported (TNT and later, voodoo4 and later,) which saves one or two passes on model rendering when gl_overbright_models is 1. The command line option -nocombine will disable this. + - gl_overbright_models now defaults to 1 + - custom palettes are now correctly loaded when you use the "game" command. + - RecursiveLightPoint is now lerped for smoother lighting of slow-moving models. Check out the ogre in e3m3 for an example. + - dynamic lighting (rockets, etc) has been moderately sped up. (some lightmaps were being uploaded even though they weren't actually touched by a dynamic light.) + - overhauled 2d drawing to allow independent scaling of console, menu, and sbar (see cvars "scr_conwdith," "scr_menuscale," and "scr_sbarscale") command line switches "-conwidth" and "-conheight" removed. cvar "scr_stretch_menus" removed. + - user control of max framerate. (see cvar "host_maxfps") + - improved the accuracy of the FPS counter a bit, but it still seems suspect. + - particles can now be drawn as quads or triangles. (see cvar "r_quadparticles") + - opengl information (vendor, renderer, version, extensions) is no longer printed during initialization. (see command "gl_info") + - rewrote texture management. Now instead of quake's memory usage going up and up forever (becuase textures were uploaded to the opengl.dll and never freed,) all textures will get flushed when you switch games, bringing you back down to where you were when fitzquake first launched. + - gl_texturemode command will now accept a number (1 through 6) as well as the name (gl_linear_mipmap_nearest, etc.) + - gl_describetexturemodes will list all texturemodes. + - the inside of sky leaves are no longer rendered -- so when noclipping inside them, it will look the same as noclipping inside a solid wall. This does not affect gameplay. + - cleaned up intermission display in singleplayer -- no more overlapping numbers + - r_speeds readout modified a bit. (see cvar "r_speeds") + - r_sky_quality now defaults to 12 instead of 8, since skies are now drawn in 1 pass (with multitexture at least) + - gl_texsort now always defaults to 0. (it used to be forced to 1 when multitexture was unavailable) + - fixed bug where models would actually darken when dlights got bright enough + - fixed deathmatch, coop cvars not reset to zero when starting a new game from the single player menu + - fixed r_lightmap doesn't work when gl_texsort = 0. + - fixed inverted lightmaps / no textures / no dynamic light bug when multitexture is disabled and gl_texsort = 0 + - fixed scrolling map title in wrong place when width does not equal conwidth + - fixed a few color borking problems in 16-bit mode. The front sky layer, sprites, and pics with transparency will still look a bit off (as in glquake,) but at least the console image and statusbar background look better. Though it isn't perfect, it should once again look like what you expect from glquake in 16bit. + - fixed pixel gap on both sides of the console in 1024x768 + - fixed wpoly count being slightly lower when gl_texsort = 0 (the count was correct when gl_texsort = 1) + - fixed lmap count always zero when gl_texsort = 1 + - dlight fans are now drawn after water, so that it looks right at least when wateralpha is 1. + - fixed a possible bug with older 3dfx cards (voodoo 1/2/rush) where the gamma cvar might not work (untested) + - fixed old commands showing up in the console prompt after hitting 'enter' + - increased MAX_HANDLES so that you should never see the "out of handles" error message. + - removed cvar "chase_alpha." the transparent player model was buggy and didn't work well in a lot of conditions. + - removed cvar "gl_doubleeys" (yes, that is the correct misspelling) With overbright models, eyes can be seen as easily as in software mode. + - removed cvars "cl_crossx," "cl_crossy," "lcd_x," "lcd_yaw," and "gl_reporttjunctions" which didn't do anything (in glquake, at least). + - removed support for GL_EXT_shared_texture_palette (special 8-bit texture format) + - removed VCR code. command line switches "-record" and "-playback" no longer supported. + - removed support for command line switch "-gamma" -- just use the gamma cvar, or idgamma or something. + +cvars: + + - r_stereo. default 0. If nonzero, the scene will be rendered once in red, and again in cyan, with the two views shifted slightly. If you have 3D glasses you can appreciate this (assumes that the left eye is red and the right eye is cyan.) The value of r_stereo sets the eye separation. If your glasses have red on the right eye, use a negative value to flip the views. + + - r_stereodepth. default 128. Sets the distance at which the two views will converge when stereo rendering is active. + + - scr_conwdith. default 0. Sets the virtual console width, where smaller numbers means larger text. Values larger than window width, or smaller than 320, will be clamped to that range, and all values will be rounded to a multiple of 8. If 0, the window width will be used. Note that values that divide evenly into the window width will make the text look nicest. + + - scr_menuscale. default 1. Sets the scale factor for menus and other centered overlays. If 1, images will be drawn at 1:1 scale. If 2, images will be double size. Menus will never be drawn smaller than 1:1, and never larger than the size of the window. Note that integer values will make the text look nicest. + + - scr_sbarscale. default 1. Sets the scale factor for the statusbar. If 1, images will be drawn at 1:1 scale. If 2, images will be double size. The statusbar will never be drawn smaller than 1:1, and never larger than the width of the window. Note that integer values will make the text look nicest. + + - host_maxfps. default 72. sets the maximum frames per second fitzquake will render (also the maximum number of server frames per second.) Clamped to the range 10 - 1000. Set to 72 to mimic standard quake. + + - r_quadparticles. default 1. If 1, particles are drawn as GL_QUADS instead of GL_TRIANGLES. Quads use 4 verts instead of 3, but the fillrate cost is 1/2 that of triangles. Depending on your card, either one may be faster. This cvar has no effect on the appearance of particles. + + - r_speeds. default 0. Values of 1 and 2 will give you increasing amounts of information. When you see two numbers separated by a slash, the first number is polys, and the second number is passes. + +commands: + + - gl_info. Displays opengl info which was previously displayed during initialization: vendor, renderer, version, and extensions + + - imagelist. Displays a list of loaded textures, and their dimentions. + + - gl_texturemode. Now accepts a number (1 through 6) as well as the name (gl_nearest, etc.) + + - gl_describetexturemodes. Lists all texturemodes. + +Changes in 0.65 +--------------- + + - gamma cvar now supported. (see cvar "gamma") + - fullbrights on models now supported. + - odd-sized world textures are now bilinearly resampled (instead of glquake's nearest pixel resample) + - removed all fixed-size buffers for loading textures; now the only limit is the size of your memory heap (textures will still be downsampled if they are bigger than the hardware can handle) + - styled lights (torch flicker, etc.) can now be disabled (see cvar "r_flatlightstyles") + - sky now uses multitexture if available. + - centerprints are now optionally logged to the console (see cvar "con_logcenterprint") + - number of savegame slots increased to 20 (from 12) + - if a map title is longer than 22 characters, it scrolls marquee-style in the statusbar. + - gl_flashblend defaults to 1 again. (consistency with glquake) + - gl_ztrick defaults to 1 again. (consistency with glquake) + - command line gamma now defaults to 1.0 for all cards. (consistency with glquake, plus hardware gamma is better) + - now checks hardware for maximum texture size. Users of later voodoo cards should be able to see large textures now. (see cvar "gl_max_size") + - now shows AM/PM when scr_clock is 2 + - fixed crash when starting dedicated server + - fixed crash when loading too many textures. (now it throws a sys_error and quits) + - fixed fitzquake-specific crash when player goes near water in a demo playback. + - scr_conalpha now actually works. + - keypad enter in the console works again. + - optional 2x overbrightening on models. (see cvar "gl_overbright_models") + - optional quake2-style noclip. (see cvar "sv_altnoclip") + - new icon + +cvars: + + - con_logcenterprint: If 1, centerprint messages will be logged to the console in sp/coop. If 2, they will also be logged in deathmatch. Default 1. + + - gamma: Brighten or darken the screen to compensate for differences between monitors. This is now supported by using your video card's gamma support. Just like in winquake, values less than 1 are brighter and values greater than one are darker. Default 1. Notes: I have added special code so that this will work on 3dfx cards too, but i have no way to check that it works. If fitzquake crashes, your hardware gamma may be stuck at the wrong value. You can use the "display settings" control panel fix this, or you could try lordhavoc's useful "setgamma" utility (available on this page.) Also note that if texture-brightening gamma has been requested at the command line (fitzquake.exe -gamma ), harware gamma will not be used and the gamma cvar will have no effect. + + - gl_max_size: Now defaults to 0. If 0, textures will be as large as the hardware allows. Positive values can be used to impose a limit smaller than the hardware's reported maximum. + + - gl_overbright_models: If 1, models will be rendered using 2x overbrightening and will appear at roughly the same brightness as they do in software quake, which is noticably brighter than the default fitzquake / glquake appearance. I disabled this cvar by default becuase this is still a poorly supported feature -- it currently takes 2 or 3 passes to render a model when this feature is enabled, compared to only 1 pass when it is disabled. Default 0. + + - r_flatlightstyles: If 1, styled lights (torch flicker, etc.) will be displayed as a steady light. If 2, the peak intensity will be used instead of the average intensity. Default 0. + + - sv_altnoclip: If 1, enable the alternative noclip movement which resembles quake2 and is not constrained to the horizontal plane. Set to 0 to retain quake's original noclip behavior. Default 1. + +Changes in 0.60 +--------------- + + - graphics: + - better sky projection, configurable for performance + - menus and other overlays are now centered on the screen, and can optionally stretch to fit resolution. + - all 2d graphics now obey gl_texturemode and all texturemode changes take effect immediately + - underwater warping now resembles quake3's perspective munging, and obeys r_waterwarp + - fixed frustum culling b0rked (giving HOM at certain FOV / vidsize / screensize combinations) + - fixed lack of support for VP_PARALLEL_ORIENTED, VP_PARALLEL_UPRIGHT, and FACING_UPRIGHT sprites + - fixed fullbrights not displayed on world/bmodels + - fixed texture cache mismatch error + - fixed pink edges on sprites, menu items, etc + - fixed particle z-buffer bug (apparent when a particle is in front of a water surface) + - fixed ugly resampling of non-power of two gfx, skins, sprites + - fixed large models (shamblers, shub) dissapearing near edge of screen + - fixed statusbar not visible when gl_clear = 1 + - fixed r_fullbright change not immedate when gl_texsort = 0 + - fixed alias models still dark when r_fullbright = 1 + - fixed HOM when screen is partially underwater + - fixed gunshot decals not showing up on some walls + - sky and water warp now freeze when you pause, as well as lightning bolts + - r_novis changes now take effect immediately, rather than when you cross a leaf boundary + - removed mirror code + - two particle styles, circle and square (cvar controlled) + - console: + - improved tab completion: + - hitting tab once will display a list of possible matches and complete the line using the first match + - hitting tab or shift-tab will cycle through the matches + - autocomplete will now match against aliases as well as commands and cvars. + - autocomplete will now complete later in the string (e.g. "bind mouse1 +att" + tab will complete '+attack') + - autocomplete will even complete inside the string (e.g. "bind m +attack" + tab will complete 'mouse1' if the cursor is right after the 'm') + - new key functionality: + - tab -- autocomplete, cycle through multiple matches + - shift-tab -- cycle backwards through multiple matches + - ins -- toggle insertmode + - del -- delete current character + - backspace -- delete previous character + - ctrl-v -- paste from windows clippboard + - leftarrow -- move cursor one character left in line + - rightarrow -- move cursor one character right in line. or, get one character from the previous command. + - home -- move cursor to beginning of line + - end -- move cursor to end of line + - ctrl-pgup -- scroll up a screen at a time + - ctrl-pgdn -- scroll down a screen at a time + - ctrl-home -- scroll to top of console history + - ctrl-end -- scroll to bottom of console history + - carets indicate that you are scrolled back, like in quakeworld/quake2 + - left arrow, right arrow, pgup, pgdn keys now auto-repeat + - quadrupled the length of the console history + - commands: + - "game " to load a mod. + - "reset " to reset a cvar to default. Note that this is the engine default, not the default.cfg value + - resetall. resets all cvars. + - mods. lists all child folders of quake directory which contain either a progs.dat or a pak file + - maps. lists all addon levels available (i.e. all levels that are not in id1/*.pak) + - mapname. outputs the short name of the current level (e.g. "e1m5") + - cmdlist. alphabetized. 'cmdlist blah' will list only cmds that start with 'blah' + - cvarlist. alphabetized. 'cvarlist blah' will list only cvars that start with 'blah' + - "inc [amount]" to increment a cvar by amount. amount defaults to 1. + - "toggle " to invert the value of a cvar (nonzero -> 0 and 0 -> 1) + - god, noclip, notarget, and fly can now be explicitly set. example: "god 0" will disable god mode + - viewpos. outputs (X,Y,Z) pitch yaw roll + - "give a " now gives you armour. type depends on value + - bindlist. lists all key bindings + - "alias " now outputs the current command string + - "unalias " to delete an alias + - unaliasall. delete all aliases. + - condump. dumps console to condump.txt + - fog. set global fog. syntax is "fog ", "fog ", or "fog " See section on modding for details. Set density to 0 to disable fog. + - "sky " to load a skybox. if skyname is "", this will turn off skybox rendering. + - stuffcmds now parses the "cmdline" cvar rather than the args actually passed to the program. This is useful for loading mods dynamically, so you can edit the cmdline before execing quake.rc (which calls "stuffcmds") + - cvars: + - scr_stretch_menus. default 1. if 1, menus and other overlays are stretched to fill the screen + - scr_conalpha. default 1. This is the opacity when the console is halfscreen. 0.6 will mimic glquake + - scr_clock. default 0. if 1, game time is displayed. If 2, system time is displayed. + - scr_showfps. default 0. if 1, FPS are displayed. + - r_waterwarp recognized. default 1. if zero, no underwater warping will take place + - r_drawflat recognized. default 0. if 1, polygons will be drawn as a solid color with no lightmap or texture + - r_particles. default 1. 0 = no particles, 1 = circular particles, 2 = square particles + - r_fastsky. default 0. if 1, sky will be rendered as solid color, for added performance + - r_sky_quality. default 8. Higher number divides the sky more, for a smoother effect and slower performance. + - r_clearcolor now supported. default 2. specify a palette index from 0 to 255. + - gl_fullbrights. default 1. set to 0 to disable fullbrights + - gl_farclip. default 8192. set to 4096 to mimic glquake. note that the skybox will be drawn somewhat closer than this value. + - cl_maxpitch. default 90 (straight down.) set to 80 to mimic normal quake + - cl_minpitch. default -90 (straight up.) set to -70 to mimic normal quake + - cl_keypad. default 1. if 0, keypad keys will respond as in quake.exe (for example, pushing 'KP_END' will be the same as pushing '1') + - gl_flashblend now defaults to 0. + - gl_ztrick now defaults to 0. + - gl_keeptjunctions now defaults to 1. (note, contrary to the name of this cvar, what is being kept is the extra polygon verts which *eliminate* tjunctions. This is a good thing, so i made it default to 1) + - chase_alpha. default 1. lower values make the chasecam player model translucent. Buggy. + - keyboard + - keypad keys are now bindable: + KP_NUMLOCK, KP_SLASH, KP_STAR, KP_MINUS, KP_HOME, KP_UPARROW, KP_PGUP, KP_PLUS, KP_LEFTARROW, KP_5, KP_RIGHTARROW, KP_END, KP_DOWNARROW, KP_PGDN, KP_ENTER, KP_INS, KP_DEL + - command line: + - running with -gamma at the command line will set the gamma. There is still no way to change this value in game. Default is 1.0 for 3dfx cards, 0.7 for all others + - if unspecified, -conwidth now defaults to -width + - modding extensions: + - skyboxes (worldspawn and qc settable), currently only targa and pcx formats accepted + - global fog (worldspawn and qc settable) + - physics + - fixed sliding around while standing on solid entities' bounding boxes (monsters, players, etc) + - misc + - default heapsize is now 32mb (was 16mb) + - default zonesize is now 256k (was 48k) \ No newline at end of file diff --git a/quakespasm/Misc/fitzquake512.tga b/quakespasm/Misc/fitzquake512.tga new file mode 100644 index 0000000000000000000000000000000000000000..6d4b4a8b1090ef1412a4ce149afedd90687f849e GIT binary patch literal 1048620 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 &M+kFV%E@#zB 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%0Df`XdWbRqJF8dl{NAHrhV-C6}Km1o0<-6|duB#rb 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 c`MvAEzwif(Zdi2PwU__!>x;g 64k edges + short numedges; + short texinfo; + +// lighting info + byte styles[MAXLIGHTMAPS]; + int lightofs; // start of [numstyles*surfsize] samples +} dface_t; + + + +#define AMBIENT_WATER 0 +#define AMBIENT_SKY 1 +#define AMBIENT_SLIME 2 +#define AMBIENT_LAVA 3 + +#define NUM_AMBIENTS 4 // automatic ambient sounds + +// leaf 0 is the generic CONTENTS_SOLID leaf, used for all solid areas +// all other leafs need visibility info +typedef struct +{ + int contents; + int visofs; // -1 = no visibility info + + short mins[3]; // for frustum culling + short maxs[3]; + + unsigned short firstmarksurface; + unsigned short nummarksurfaces; + + byte ambient_level[NUM_AMBIENTS]; +} dleaf_t; + + +//============================================================================ + +#ifndef QUAKE_GAME + +#define ANGLE_UP -1 +#define ANGLE_DOWN -2 + + +// the utilities get to be lazy and just use large static arrays + +extern int nummodels; +extern dmodel_t dmodels[MAX_MAP_MODELS]; + +extern int visdatasize; +extern byte dvisdata[MAX_MAP_VISIBILITY]; + +extern int lightdatasize; +extern byte dlightdata[MAX_MAP_LIGHTING]; + +extern int texdatasize; +extern byte dtexdata[MAX_MAP_MIPTEX]; // (dmiptexlump_t) + +extern int entdatasize; +extern char dentdata[MAX_MAP_ENTSTRING]; + +extern int numleafs; +extern dleaf_t dleafs[MAX_MAP_LEAFS]; + +extern int numplanes; +extern dplane_t dplanes[MAX_MAP_PLANES]; + +extern int numvertexes; +extern dvertex_t dvertexes[MAX_MAP_VERTS]; + +extern int numnodes; +extern dnode_t dnodes[MAX_MAP_NODES]; + +extern int numtexinfo; +extern texinfo_t texinfo[MAX_MAP_TEXINFO]; + +extern int numfaces; +extern dface_t dfaces[MAX_MAP_FACES]; + +extern int numclipnodes; +extern dclipnode_t dclipnodes[MAX_MAP_CLIPNODES]; + +extern int numedges; +extern dedge_t dedges[MAX_MAP_EDGES]; + +extern int nummarksurfaces; +extern unsigned short dmarksurfaces[MAX_MAP_MARKSURFACES]; + +extern int numsurfedges; +extern int dsurfedges[MAX_MAP_SURFEDGES]; + + +void DecompressVis (byte *in, byte *decompressed); +int CompressVis (byte *vis, byte *dest); + +void LoadBSPFile (char *filename); +void WriteBSPFile (char *filename); +void PrintBSPFileSizes (void); + +//=============== + + +typedef struct epair_s +{ + struct epair_s *next; + char *key; + char *value; +} epair_t; + +typedef struct +{ + vec3_t origin; + int firstbrush; + int numbrushes; + epair_t *epairs; +} entity_t; + +extern int num_entities; +extern entity_t entities[MAX_MAP_ENTITIES]; + +void ParseEntities (void); +void UnparseEntities (void); + +void SetKeyValue (entity_t *ent, char *key, char *value); +char *ValueForKey (entity_t *ent, char *key); +// will return "" if not present + +vec_t FloatForKey (entity_t *ent, char *key); +void GetVectorForKey (entity_t *ent, char *key, vec3_t vec); + +epair_t *ParseEpair (void); + +#endif diff --git a/quakespasm/Quake/cd_sdl.c b/quakespasm/Quake/cd_sdl.c new file mode 100644 index 00000000..52245840 --- /dev/null +++ b/quakespasm/Quake/cd_sdl.c @@ -0,0 +1,54 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" + +extern cvar_t bgmvolume; + +int CDAudio_Init (void) +{ + return -1; +} + +void CDAudio_Play (byte track, qboolean looping) +{ +} + +void CDAudio_Stop (void) +{ +} + +void CDAudio_Pause (void) +{ +} + +void CDAudio_Resume (void) +{ +} + +void CDAudio_Shutdown (void) +{ +} + +void CDAudio_Update (void) +{ +} diff --git a/quakespasm/Quake/cdaudio.h b/quakespasm/Quake/cdaudio.h new file mode 100644 index 00000000..5b55af5b --- /dev/null +++ b/quakespasm/Quake/cdaudio.h @@ -0,0 +1,28 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ + +int CDAudio_Init(void); +void CDAudio_Play(byte track, qboolean looping); +void CDAudio_Stop(void); +void CDAudio_Pause(void); +void CDAudio_Resume(void); +void CDAudio_Shutdown(void); +void CDAudio_Update(void); diff --git a/quakespasm/Quake/chase.c b/quakespasm/Quake/chase.c new file mode 100644 index 00000000..526b4c96 --- /dev/null +++ b/quakespasm/Quake/chase.c @@ -0,0 +1,118 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// chase.c -- chase camera code + +#include "quakedef.h" + +cvar_t chase_back = {"chase_back", "100"}; +cvar_t chase_up = {"chase_up", "16"}; +cvar_t chase_right = {"chase_right", "0"}; +cvar_t chase_active = {"chase_active", "0"}; + +/* +============== +Chase_Init +============== +*/ +void Chase_Init (void) +{ + Cvar_RegisterVariable (&chase_back, NULL); + Cvar_RegisterVariable (&chase_up, NULL); + Cvar_RegisterVariable (&chase_right, NULL); + Cvar_RegisterVariable (&chase_active, NULL); +} + +/* +============== +TraceLine + +TODO: impact on bmodels, monsters +============== +*/ +void TraceLine (vec3_t start, vec3_t end, vec3_t impact) +{ + trace_t trace; + + memset (&trace, 0, sizeof(trace)); + SV_RecursiveHullCheck (cl.worldmodel->hulls, 0, 0, 1, start, end, &trace); + + VectorCopy (trace.endpos, impact); +} + +/* +============== +Chase_UpdateForClient -- johnfitz -- orient client based on camera. called after input +============== +*/ +void Chase_UpdateForClient (void) +{ + //place camera + + //assign client angles to camera + + //see where camera points + + //adjust client angles to point at the same place +} + +/* +============== +Chase_UpdateForDrawing -- johnfitz -- orient camera based on client. called before drawing + +TODO: stay at least 8 units away from all walls in this leaf +============== +*/ +void Chase_UpdateForDrawing (void) +{ + int i; + //float dist; + vec3_t forward, up, right; + vec3_t ideal, crosshair, temp; + + AngleVectors (cl.viewangles, forward, right, up); + + // calc ideal camera location before checking for walls + for (i=0 ; i<3 ; i++) + ideal[i] = cl.viewent.origin[i] + - forward[i]*chase_back.value + + right[i]*chase_right.value; + //+ up[i]*chase_up.value; + ideal[2] = cl.viewent.origin[2] + chase_up.value; + + // make sure camera is not in or behind a wall + TraceLine(r_refdef.vieworg, ideal, temp); + if (Length(temp) != 0) + VectorCopy(temp, ideal); + + // place camera + VectorCopy (ideal, r_refdef.vieworg); + + // find the spot the player is looking at + VectorMA (cl.viewent.origin, 4096, forward, temp); + TraceLine (cl.viewent.origin, temp, crosshair); + + // calculate camera angles to look at the same spot + VectorSubtract (crosshair, r_refdef.vieworg, temp); + VectorAngles (temp, r_refdef.viewangles); + if (r_refdef.viewangles[PITCH] == 90 || r_refdef.viewangles[PITCH] == -90) + r_refdef.viewangles[YAW] = cl.viewangles[YAW]; +} + diff --git a/quakespasm/Quake/cl_demo.c b/quakespasm/Quake/cl_demo.c new file mode 100644 index 00000000..adff353d --- /dev/null +++ b/quakespasm/Quake/cl_demo.c @@ -0,0 +1,368 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 "quakedef.h" + +void CL_FinishTimeDemo (void); + +/* +============================================================================== + +DEMO CODE + +When a demo is playing back, all NET_SendMessages are skipped, and +NET_GetMessages are read from the demo file. + +Whenever cl.time gets past the last received message, another message is +read from the demo file. +============================================================================== +*/ + +/* +============== +CL_StopPlayback + +Called when a demo file runs out, or the user starts a game +============== +*/ +void CL_StopPlayback (void) +{ + if (!cls.demoplayback) + return; + + fclose (cls.demofile); + cls.demoplayback = false; + cls.demofile = NULL; + cls.state = ca_disconnected; + + if (cls.timedemo) + CL_FinishTimeDemo (); +} + +/* +==================== +CL_WriteDemoMessage + +Dumps the current net message, prefixed by the length and view angles +==================== +*/ +void CL_WriteDemoMessage (void) +{ + int len; + int i; + float f; + + len = LittleLong (net_message.cursize); + fwrite (&len, 4, 1, cls.demofile); + for (i=0 ; i<3 ; i++) + { + f = LittleFloat (cl.viewangles[i]); + fwrite (&f, 4, 1, cls.demofile); + } + fwrite (net_message.data, net_message.cursize, 1, cls.demofile); + fflush (cls.demofile); +} + +/* +==================== +CL_GetMessage + +Handles recording and playback of demos, on top of NET_ code +==================== +*/ +int CL_GetMessage (void) +{ + int r, i; + float f; + + if (cls.demoplayback) + { + // decide if it is time to grab the next message + if (cls.signon == SIGNONS) // allways grab until fully connected + { + if (cls.timedemo) + { + if (host_framecount == cls.td_lastframe) + return 0; // allready read this frame's message + cls.td_lastframe = host_framecount; + // if this is the second frame, grab the real td_starttime + // so the bogus time on the first frame doesn't count + if (host_framecount == cls.td_startframe + 1) + cls.td_starttime = realtime; + } + else if ( /* cl.time > 0 && */ cl.time <= cl.mtime[0]) + { + return 0; // don't need another message yet + } + } + + // get the next message + fread (&net_message.cursize, 4, 1, cls.demofile); + VectorCopy (cl.mviewangles[0], cl.mviewangles[1]); + for (i=0 ; i<3 ; i++) + { + r = fread (&f, 4, 1, cls.demofile); + cl.mviewangles[0][i] = LittleFloat (f); + } + + net_message.cursize = LittleLong (net_message.cursize); + if (net_message.cursize > MAX_MSGLEN) + Sys_Error ("Demo message > MAX_MSGLEN"); + r = fread (net_message.data, net_message.cursize, 1, cls.demofile); + if (r != 1) + { + CL_StopPlayback (); + return 0; + } + + return 1; + } + + while (1) + { + r = NET_GetMessage (cls.netcon); + + if (r != 1 && r != 2) + return r; + + // discard nop keepalive message + if (net_message.cursize == 1 && net_message.data[0] == svc_nop) + Con_Printf ("<-- server to client keepalive\n"); + else + break; + } + + if (cls.demorecording) + CL_WriteDemoMessage (); + + return r; +} + + +/* +==================== +CL_Stop_f + +stop recording a demo +==================== +*/ +void CL_Stop_f (void) +{ + if (cmd_source != src_command) + return; + + if (!cls.demorecording) + { + Con_Printf ("Not recording a demo.\n"); + return; + } + +// write a disconnect message to the demo file + SZ_Clear (&net_message); + MSG_WriteByte (&net_message, svc_disconnect); + CL_WriteDemoMessage (); + +// finish up + fclose (cls.demofile); + cls.demofile = NULL; + cls.demorecording = false; + Con_Printf ("Completed demo\n"); +} + +/* +==================== +CL_Record_f + +record [cd track] +==================== +*/ +void CL_Record_f (void) +{ + int c; + char name[MAX_OSPATH]; + int track; + + if (cmd_source != src_command) + return; + + c = Cmd_Argc(); + if (c != 2 && c != 3 && c != 4) + { + Con_Printf ("record [ [cd track]]\n"); + return; + } + + if (strstr(Cmd_Argv(1), "..")) + { + Con_Printf ("Relative pathnames are not allowed.\n"); + return; + } + + if (c == 2 && cls.state == ca_connected) + { + Con_Printf("Can not record - already connected to server\nClient demo recording must be started before connecting\n"); + return; + } + +// write the forced cd track number, or -1 + if (c == 4) + { + track = atoi(Cmd_Argv(3)); + Con_Printf ("Forcing CD track to %i\n", cls.forcetrack); + } + else + track = -1; + + sprintf (name, "%s/%s", com_gamedir, Cmd_Argv(1)); + +// +// start the map up +// + if (c > 2) + Cmd_ExecuteString ( va("map %s", Cmd_Argv(2)), src_command); + +// +// open the demo file +// + COM_DefaultExtension (name, ".dem"); + + Con_Printf ("recording to %s.\n", name); + cls.demofile = fopen (name, "wb"); + if (!cls.demofile) + { + Con_Printf ("ERROR: couldn't open.\n"); + return; + } + + cls.forcetrack = track; + fprintf (cls.demofile, "%i\n", cls.forcetrack); + + cls.demorecording = true; +} + + +/* +==================== +CL_PlayDemo_f + +play [demoname] +==================== +*/ +void CL_PlayDemo_f (void) +{ + char name[256]; + int c; + qboolean neg = false; + + if (cmd_source != src_command) + return; + + if (Cmd_Argc() != 2) + { + Con_Printf ("play : plays a demo\n"); + return; + } + +// +// disconnect from server +// + CL_Disconnect (); + +// +// open the demo file +// + strcpy (name, Cmd_Argv(1)); + COM_DefaultExtension (name, ".dem"); + + Con_Printf ("Playing demo from %s.\n", name); + COM_FOpenFile (name, &cls.demofile); + if (!cls.demofile) + { + Con_Printf ("ERROR: couldn't open.\n"); + cls.demonum = -1; // stop demo loop + return; + } + + cls.demoplayback = true; + cls.state = ca_connected; + cls.forcetrack = 0; + + while ((c = getc(cls.demofile)) != '\n') + if (c == '-') + neg = true; + else + cls.forcetrack = cls.forcetrack * 10 + (c - '0'); + + if (neg) + cls.forcetrack = -cls.forcetrack; +// ZOID, fscanf is evil +// fscanf (cls.demofile, "%i\n", &cls.forcetrack); +} + +/* +==================== +CL_FinishTimeDemo + +==================== +*/ +void CL_FinishTimeDemo (void) +{ + int frames; + float time; + + cls.timedemo = false; + +// the first frame didn't count + frames = (host_framecount - cls.td_startframe) - 1; + time = realtime - cls.td_starttime; + if (!time) + time = 1; + Con_Printf ("%i frames %5.1f seconds %5.1f fps\n", frames, time, frames/time); +} + +/* +==================== +CL_TimeDemo_f + +timedemo [demoname] +==================== +*/ +void CL_TimeDemo_f (void) +{ + if (cmd_source != src_command) + return; + + if (Cmd_Argc() != 2) + { + Con_Printf ("timedemo : gets demo speeds\n"); + return; + } + + CL_PlayDemo_f (); + +// cls.td_starttime will be grabbed at the second frame of the demo, so +// all the loading time doesn't get counted + + cls.timedemo = true; + cls.td_startframe = host_framecount; + cls.td_lastframe = -1; // get a new message this frame +} + diff --git a/quakespasm/Quake/cl_input.c b/quakespasm/Quake/cl_input.c new file mode 100644 index 00000000..e3a2be66 --- /dev/null +++ b/quakespasm/Quake/cl_input.c @@ -0,0 +1,448 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// cl.input.c -- builds an intended movement command to send to the server + +// Quake is a trademark of Id Software, Inc., (c) 1996 Id Software, Inc. All +// rights reserved. + +#include "quakedef.h" + +extern cvar_t cl_maxpitch; //johnfitz -- variable pitch clamping +extern cvar_t cl_minpitch; //johnfitz -- variable pitch clamping + +/* +=============================================================================== + +KEY BUTTONS + +Continuous button event tracking is complicated by the fact that two different +input sources (say, mouse button 1 and the control key) can both press the +same button, but the button should only be released when both of the +pressing key have been released. + +When a key event issues a button command (+forward, +attack, etc), it appends +its key number as a parameter to the command so it can be matched up with +the release. + +state bit 0 is the current state of the key +state bit 1 is edge triggered on the up to down transition +state bit 2 is edge triggered on the down to up transition + +=============================================================================== +*/ + + +kbutton_t in_mlook, in_klook; +kbutton_t in_left, in_right, in_forward, in_back; +kbutton_t in_lookup, in_lookdown, in_moveleft, in_moveright; +kbutton_t in_strafe, in_speed, in_use, in_jump, in_attack; +kbutton_t in_up, in_down; + +int in_impulse; + + +void KeyDown (kbutton_t *b) +{ + int k; + char *c; + + c = Cmd_Argv(1); + if (c[0]) + k = atoi(c); + else + k = -1; // typed manually at the console for continuous down + + if (k == b->down[0] || k == b->down[1]) + return; // repeating key + + if (!b->down[0]) + b->down[0] = k; + else if (!b->down[1]) + b->down[1] = k; + else + { + Con_Printf ("Three keys down for a button!\n"); + return; + } + + if (b->state & 1) + return; // still down + b->state |= 1 + 2; // down + impulse down +} + +void KeyUp (kbutton_t *b) +{ + int k; + char *c; + + c = Cmd_Argv(1); + if (c[0]) + k = atoi(c); + else + { // typed manually at the console, assume for unsticking, so clear all + b->down[0] = b->down[1] = 0; + b->state = 4; // impulse up + return; + } + + if (b->down[0] == k) + b->down[0] = 0; + else if (b->down[1] == k) + b->down[1] = 0; + else + return; // key up without coresponding down (menu pass through) + if (b->down[0] || b->down[1]) + return; // some other key is still holding it down + + if (!(b->state & 1)) + return; // still up (this should not happen) + b->state &= ~1; // now up + b->state |= 4; // impulse up +} + +void IN_KLookDown (void) {KeyDown(&in_klook);} +void IN_KLookUp (void) {KeyUp(&in_klook);} +void IN_MLookDown (void) {KeyDown(&in_mlook);} +void IN_MLookUp (void) { +KeyUp(&in_mlook); +if ( !(in_mlook.state&1) && lookspring.value) + V_StartPitchDrift(); +} +void IN_UpDown(void) {KeyDown(&in_up);} +void IN_UpUp(void) {KeyUp(&in_up);} +void IN_DownDown(void) {KeyDown(&in_down);} +void IN_DownUp(void) {KeyUp(&in_down);} +void IN_LeftDown(void) {KeyDown(&in_left);} +void IN_LeftUp(void) {KeyUp(&in_left);} +void IN_RightDown(void) {KeyDown(&in_right);} +void IN_RightUp(void) {KeyUp(&in_right);} +void IN_ForwardDown(void) {KeyDown(&in_forward);} +void IN_ForwardUp(void) {KeyUp(&in_forward);} +void IN_BackDown(void) {KeyDown(&in_back);} +void IN_BackUp(void) {KeyUp(&in_back);} +void IN_LookupDown(void) {KeyDown(&in_lookup);} +void IN_LookupUp(void) {KeyUp(&in_lookup);} +void IN_LookdownDown(void) {KeyDown(&in_lookdown);} +void IN_LookdownUp(void) {KeyUp(&in_lookdown);} +void IN_MoveleftDown(void) {KeyDown(&in_moveleft);} +void IN_MoveleftUp(void) {KeyUp(&in_moveleft);} +void IN_MoverightDown(void) {KeyDown(&in_moveright);} +void IN_MoverightUp(void) {KeyUp(&in_moveright);} + +void IN_SpeedDown(void) {KeyDown(&in_speed);} +void IN_SpeedUp(void) {KeyUp(&in_speed);} +void IN_StrafeDown(void) {KeyDown(&in_strafe);} +void IN_StrafeUp(void) {KeyUp(&in_strafe);} + +void IN_AttackDown(void) {KeyDown(&in_attack);} +void IN_AttackUp(void) {KeyUp(&in_attack);} + +void IN_UseDown (void) {KeyDown(&in_use);} +void IN_UseUp (void) {KeyUp(&in_use);} +void IN_JumpDown (void) {KeyDown(&in_jump);} +void IN_JumpUp (void) {KeyUp(&in_jump);} + +void IN_Impulse (void) {in_impulse=Q_atoi(Cmd_Argv(1));} + +/* +=============== +CL_KeyState + +Returns 0.25 if a key was pressed and released during the frame, +0.5 if it was pressed and held +0 if held then released, and +1.0 if held for the entire time +=============== +*/ +float CL_KeyState (kbutton_t *key) +{ + float val; + qboolean impulsedown, impulseup, down; + + impulsedown = key->state & 2; + impulseup = key->state & 4; + down = key->state & 1; + val = 0; + + if (impulsedown && !impulseup) + if (down) + val = 0.5; // pressed and held this frame + else + val = 0; // I_Error (); + if (impulseup && !impulsedown) + if (down) + val = 0; // I_Error (); + else + val = 0; // released this frame + if (!impulsedown && !impulseup) + if (down) + val = 1.0; // held the entire frame + else + val = 0; // up the entire frame + if (impulsedown && impulseup) + if (down) + val = 0.75; // released and re-pressed this frame + else + val = 0.25; // pressed and released this frame + + key->state &= 1; // clear impulses + + return val; +} + + + + +//========================================================================== + +cvar_t cl_upspeed = {"cl_upspeed","200"}; +cvar_t cl_forwardspeed = {"cl_forwardspeed","200", true}; +cvar_t cl_backspeed = {"cl_backspeed","200", true}; +cvar_t cl_sidespeed = {"cl_sidespeed","350"}; + +cvar_t cl_movespeedkey = {"cl_movespeedkey","2.0"}; + +cvar_t cl_yawspeed = {"cl_yawspeed","140"}; +cvar_t cl_pitchspeed = {"cl_pitchspeed","150"}; + +cvar_t cl_anglespeedkey = {"cl_anglespeedkey","1.5"}; + + +/* +================ +CL_AdjustAngles + +Moves the local angle positions +================ +*/ +void CL_AdjustAngles (void) +{ + float speed; + float up, down; + + if (in_speed.state & 1) + speed = host_frametime * cl_anglespeedkey.value; + else + speed = host_frametime; + + if (!(in_strafe.state & 1)) + { + cl.viewangles[YAW] -= speed*cl_yawspeed.value*CL_KeyState (&in_right); + cl.viewangles[YAW] += speed*cl_yawspeed.value*CL_KeyState (&in_left); + cl.viewangles[YAW] = anglemod(cl.viewangles[YAW]); + } + if (in_klook.state & 1) + { + V_StopPitchDrift (); + cl.viewangles[PITCH] -= speed*cl_pitchspeed.value * CL_KeyState (&in_forward); + cl.viewangles[PITCH] += speed*cl_pitchspeed.value * CL_KeyState (&in_back); + } + + up = CL_KeyState (&in_lookup); + down = CL_KeyState(&in_lookdown); + + cl.viewangles[PITCH] -= speed*cl_pitchspeed.value * up; + cl.viewangles[PITCH] += speed*cl_pitchspeed.value * down; + + if (up || down) + V_StopPitchDrift (); + + //johnfitz -- variable pitch clamping + if (cl.viewangles[PITCH] > cl_maxpitch.value) + cl.viewangles[PITCH] = cl_maxpitch.value; + if (cl.viewangles[PITCH] < cl_minpitch.value) + cl.viewangles[PITCH] = cl_minpitch.value; + //johnfitz + + if (cl.viewangles[ROLL] > 50) + cl.viewangles[ROLL] = 50; + if (cl.viewangles[ROLL] < -50) + cl.viewangles[ROLL] = -50; + +} + +/* +================ +CL_BaseMove + +Send the intended movement message to the server +================ +*/ +void CL_BaseMove (usercmd_t *cmd) +{ + if (cls.signon != SIGNONS) + return; + + CL_AdjustAngles (); + + Q_memset (cmd, 0, sizeof(*cmd)); + + if (in_strafe.state & 1) + { + cmd->sidemove += cl_sidespeed.value * CL_KeyState (&in_right); + cmd->sidemove -= cl_sidespeed.value * CL_KeyState (&in_left); + } + + cmd->sidemove += cl_sidespeed.value * CL_KeyState (&in_moveright); + cmd->sidemove -= cl_sidespeed.value * CL_KeyState (&in_moveleft); + + cmd->upmove += cl_upspeed.value * CL_KeyState (&in_up); + cmd->upmove -= cl_upspeed.value * CL_KeyState (&in_down); + + if (! (in_klook.state & 1) ) + { + cmd->forwardmove += cl_forwardspeed.value * CL_KeyState (&in_forward); + cmd->forwardmove -= cl_backspeed.value * CL_KeyState (&in_back); + } + +// +// adjust for speed key +// + if (in_speed.state & 1) + { + cmd->forwardmove *= cl_movespeedkey.value; + cmd->sidemove *= cl_movespeedkey.value; + cmd->upmove *= cl_movespeedkey.value; + } +} + + + +/* +============== +CL_SendMove +============== +*/ +void CL_SendMove (usercmd_t *cmd) +{ + int i; + int bits; + sizebuf_t buf; + byte data[128]; + + buf.maxsize = 128; + buf.cursize = 0; + buf.data = data; + + cl.cmd = *cmd; + +// +// send the movement message +// + MSG_WriteByte (&buf, clc_move); + + MSG_WriteFloat (&buf, cl.mtime[0]); // so server can get ping times + + for (i=0 ; i<3 ; i++) + //johnfitz -- 16-bit angles for PROTOCOL_FITZQUAKE + if (cl.protocol == PROTOCOL_NETQUAKE) + MSG_WriteAngle (&buf, cl.viewangles[i]); + else + MSG_WriteAngle16 (&buf, cl.viewangles[i]); + //johnfitz + + MSG_WriteShort (&buf, cmd->forwardmove); + MSG_WriteShort (&buf, cmd->sidemove); + MSG_WriteShort (&buf, cmd->upmove); + +// +// send button bits +// + bits = 0; + + if ( in_attack.state & 3 ) + bits |= 1; + in_attack.state &= ~2; + + if (in_jump.state & 3) + bits |= 2; + in_jump.state &= ~2; + + MSG_WriteByte (&buf, bits); + + MSG_WriteByte (&buf, in_impulse); + in_impulse = 0; + +// +// deliver the message +// + if (cls.demoplayback) + return; + +// +// allways dump the first two message, because it may contain leftover inputs +// from the last level +// + if (++cl.movemessages <= 2) + return; + + if (NET_SendUnreliableMessage (cls.netcon, &buf) == -1) + { + Con_Printf ("CL_SendMove: lost server connection\n"); + CL_Disconnect (); + } +} + +/* +============ +CL_InitInput +============ +*/ +void CL_InitInput (void) +{ + Cmd_AddCommand ("+moveup",IN_UpDown); + Cmd_AddCommand ("-moveup",IN_UpUp); + Cmd_AddCommand ("+movedown",IN_DownDown); + Cmd_AddCommand ("-movedown",IN_DownUp); + Cmd_AddCommand ("+left",IN_LeftDown); + Cmd_AddCommand ("-left",IN_LeftUp); + Cmd_AddCommand ("+right",IN_RightDown); + Cmd_AddCommand ("-right",IN_RightUp); + Cmd_AddCommand ("+forward",IN_ForwardDown); + Cmd_AddCommand ("-forward",IN_ForwardUp); + Cmd_AddCommand ("+back",IN_BackDown); + Cmd_AddCommand ("-back",IN_BackUp); + Cmd_AddCommand ("+lookup", IN_LookupDown); + Cmd_AddCommand ("-lookup", IN_LookupUp); + Cmd_AddCommand ("+lookdown", IN_LookdownDown); + Cmd_AddCommand ("-lookdown", IN_LookdownUp); + Cmd_AddCommand ("+strafe", IN_StrafeDown); + Cmd_AddCommand ("-strafe", IN_StrafeUp); + Cmd_AddCommand ("+moveleft", IN_MoveleftDown); + Cmd_AddCommand ("-moveleft", IN_MoveleftUp); + Cmd_AddCommand ("+moveright", IN_MoverightDown); + Cmd_AddCommand ("-moveright", IN_MoverightUp); + Cmd_AddCommand ("+speed", IN_SpeedDown); + Cmd_AddCommand ("-speed", IN_SpeedUp); + Cmd_AddCommand ("+attack", IN_AttackDown); + Cmd_AddCommand ("-attack", IN_AttackUp); + Cmd_AddCommand ("+use", IN_UseDown); + Cmd_AddCommand ("-use", IN_UseUp); + Cmd_AddCommand ("+jump", IN_JumpDown); + Cmd_AddCommand ("-jump", IN_JumpUp); + Cmd_AddCommand ("impulse", IN_Impulse); + Cmd_AddCommand ("+klook", IN_KLookDown); + Cmd_AddCommand ("-klook", IN_KLookUp); + Cmd_AddCommand ("+mlook", IN_MLookDown); + Cmd_AddCommand ("-mlook", IN_MLookUp); + +} + diff --git a/quakespasm/Quake/cl_main.c b/quakespasm/Quake/cl_main.c new file mode 100644 index 00000000..3ee9772c --- /dev/null +++ b/quakespasm/Quake/cl_main.c @@ -0,0 +1,807 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// cl_main.c -- client main loop + +#include "quakedef.h" + +// we need to declare some mouse variables here, because the menu system +// references them even when on a unix system. + +// these two are not intended to be set directly +cvar_t cl_name = {"_cl_name", "player", true}; +cvar_t cl_color = {"_cl_color", "0", true}; + +cvar_t cl_shownet = {"cl_shownet","0"}; // can be 0, 1, or 2 +cvar_t cl_nolerp = {"cl_nolerp","0"}; + +cvar_t lookspring = {"lookspring","0", true}; +cvar_t lookstrafe = {"lookstrafe","0", true}; +cvar_t sensitivity = {"sensitivity","3", true}; + +cvar_t m_pitch = {"m_pitch","0.022", true}; +cvar_t m_yaw = {"m_yaw","0.022", true}; +cvar_t m_forward = {"m_forward","1", true}; +cvar_t m_side = {"m_side","0.8", true}; + +cvar_t cl_maxpitch = {"cl_maxpitch", "90", true}; //johnfitz -- variable pitch clamping +cvar_t cl_minpitch = {"cl_minpitch", "-90", true}; //johnfitz -- variable pitch clamping + +client_static_t cls; +client_state_t cl; +// FIXME: put these on hunk? +efrag_t cl_efrags[MAX_EFRAGS]; +entity_t cl_static_entities[MAX_STATIC_ENTITIES]; +lightstyle_t cl_lightstyle[MAX_LIGHTSTYLES]; +dlight_t cl_dlights[MAX_DLIGHTS]; + +entity_t *cl_entities; //johnfitz -- was a static array, now on hunk +int cl_max_edicts; //johnfitz -- only changes when new map loads + +int cl_numvisedicts; +entity_t *cl_visedicts[MAX_VISEDICTS]; + +extern cvar_t r_lerpmodels, r_lerpmove; //johnfitz + +/* +===================== +CL_ClearState + +===================== +*/ +void CL_ClearState (void) +{ + int i; + + if (!sv.active) + Host_ClearMemory (); + +// wipe the entire cl structure + memset (&cl, 0, sizeof(cl)); + + SZ_Clear (&cls.message); + +// clear other arrays + memset (cl_efrags, 0, sizeof(cl_efrags)); + memset (cl_dlights, 0, sizeof(cl_dlights)); + memset (cl_lightstyle, 0, sizeof(cl_lightstyle)); + memset (cl_temp_entities, 0, sizeof(cl_temp_entities)); + memset (cl_beams, 0, sizeof(cl_beams)); + + //johnfitz -- cl_entities is now dynamically allocated + cl_max_edicts = CLAMP (MIN_EDICTS,(int)max_edicts.value,MAX_EDICTS); + cl_entities = Hunk_AllocName (cl_max_edicts*sizeof(entity_t), "cl_entities"); + //johnfitz + +// +// allocate the efrags and chain together into a free list +// + cl.free_efrags = cl_efrags; + for (i=0 ; i>4, ((int)cl_color.value)&15)); + + MSG_WriteByte (&cls.message, clc_stringcmd); + sprintf (str, "spawn %s", cls.spawnparms); + MSG_WriteString (&cls.message, str); + break; + + case 3: + MSG_WriteByte (&cls.message, clc_stringcmd); + MSG_WriteString (&cls.message, "begin"); + Cache_Report (); // print remaining memory + break; + + case 4: + SCR_EndLoadingPlaque (); // allow normal screen updates + break; + } +} + +/* +===================== +CL_NextDemo + +Called to play the next demo in the demo loop +===================== +*/ +void CL_NextDemo (void) +{ + char str[1024]; + + if (cls.demonum == -1) + return; // don't play demos + + SCR_BeginLoadingPlaque (); + + if (!cls.demos[cls.demonum][0] || cls.demonum == MAX_DEMOS) + { + cls.demonum = 0; + if (!cls.demos[cls.demonum][0]) + { + Con_Printf ("No demos listed with startdemos\n"); + cls.demonum = -1; + return; + } + } + + sprintf (str,"playdemo %s\n", cls.demos[cls.demonum]); + Cbuf_InsertText (str); + cls.demonum++; +} + +/* +============== +CL_PrintEntities_f +============== +*/ +void CL_PrintEntities_f (void) +{ + entity_t *ent; + int i; + + for (i=0,ent=cl_entities ; imodel) + { + Con_Printf ("EMPTY\n"); + continue; + } + Con_Printf ("%s:%2i (%5.1f,%5.1f,%5.1f) [%5.1f %5.1f %5.1f]\n" + ,ent->model->name,ent->frame, ent->origin[0], ent->origin[1], ent->origin[2], ent->angles[0], ent->angles[1], ent->angles[2]); + } +} + +//johnfitz -- deleted SetPal() + +/* +=============== +CL_AllocDlight + +=============== +*/ +dlight_t *CL_AllocDlight (int key) +{ + int i; + dlight_t *dl; + +// first look for an exact key match + if (key) + { + dl = cl_dlights; + for (i=0 ; ikey == key) + { + memset (dl, 0, sizeof(*dl)); + dl->key = key; + dl->color[0] = dl->color[1] = dl->color[2] = 1; //johnfitz -- lit support via lordhavoc + return dl; + } + } + } + +// then look for anything else + dl = cl_dlights; + for (i=0 ; idie < cl.time) + { + memset (dl, 0, sizeof(*dl)); + dl->key = key; + dl->color[0] = dl->color[1] = dl->color[2] = 1; //johnfitz -- lit support via lordhavoc + return dl; + } + } + + dl = &cl_dlights[0]; + memset (dl, 0, sizeof(*dl)); + dl->key = key; + dl->color[0] = dl->color[1] = dl->color[2] = 1; //johnfitz -- lit support via lordhavoc + return dl; +} + + +/* +=============== +CL_DecayLights + +=============== +*/ +void CL_DecayLights (void) +{ + int i; + dlight_t *dl; + float time; + + time = cl.time - cl.oldtime; + + dl = cl_dlights; + for (i=0 ; idie < cl.time || !dl->radius) + continue; + + dl->radius -= time*dl->decay; + if (dl->radius < 0) + dl->radius = 0; + } +} + + +/* +=============== +CL_LerpPoint + +Determines the fraction between the last two messages that the objects +should be put at. +=============== +*/ +float CL_LerpPoint (void) +{ + float f, frac; + + f = cl.mtime[0] - cl.mtime[1]; + + if (!f || cls.timedemo || sv.active) + { + cl.time = cl.mtime[0]; + return 1; + } + + if (f > 0.1) // dropped packet, or start of demo + { + cl.mtime[1] = cl.mtime[0] - 0.1; + f = 0.1; + } + + frac = (cl.time - cl.mtime[1]) / f; + + if (frac < 0) + { + if (frac < -0.01) + cl.time = cl.mtime[1]; + frac = 0; + } + else if (frac > 1) + { + if (frac > 1.01) + cl.time = cl.mtime[0]; + frac = 1; + } + + //johnfitz -- better nolerp behavior + if (cl_nolerp.value) + return 1; + //johnfitz + + return frac; +} + +/* +=============== +CL_RelinkEntities +=============== +*/ +void CL_RelinkEntities (void) +{ + entity_t *ent; + int i, j; + float frac, f, d; + vec3_t delta; + float bobjrotate; + vec3_t oldorg; + dlight_t *dl; + +// determine partial update time + frac = CL_LerpPoint (); + + cl_numvisedicts = 0; + +// +// interpolate player info +// + for (i=0 ; i<3 ; i++) + cl.velocity[i] = cl.mvelocity[1][i] + + frac * (cl.mvelocity[0][i] - cl.mvelocity[1][i]); + + if (cls.demoplayback) + { + // interpolate the angles + for (j=0 ; j<3 ; j++) + { + d = cl.mviewangles[0][j] - cl.mviewangles[1][j]; + if (d > 180) + d -= 360; + else if (d < -180) + d += 360; + cl.viewangles[j] = cl.mviewangles[1][j] + frac*d; + } + } + + bobjrotate = anglemod(100*cl.time); + +// start on the entity after the world + for (i=1,ent=cl_entities+1 ; imodel) + { // empty slot + if (ent->forcelink) + R_RemoveEfrags (ent); // just became empty + continue; + } + +// if the object wasn't included in the last packet, remove it + if (ent->msgtime != cl.mtime[0]) + { + ent->model = NULL; + ent->lerpflags |= LERP_RESETMOVE|LERP_RESETANIM; //johnfitz -- next time this entity slot is reused, the lerp will need to be reset + continue; + } + + VectorCopy (ent->origin, oldorg); + + if (ent->forcelink) + { // the entity was not updated in the last message + // so move to the final spot + VectorCopy (ent->msg_origins[0], ent->origin); + VectorCopy (ent->msg_angles[0], ent->angles); + } + else + { // if the delta is large, assume a teleport and don't lerp + f = frac; + for (j=0 ; j<3 ; j++) + { + delta[j] = ent->msg_origins[0][j] - ent->msg_origins[1][j]; + if (delta[j] > 100 || delta[j] < -100) + { + f = 1; // assume a teleportation, not a motion + ent->lerpflags |= LERP_RESETMOVE; //johnfitz -- don't lerp teleports + } + } + + //johnfitz -- don't cl_lerp entities that will be r_lerped + if (r_lerpmove.value && (ent->lerpflags & LERP_MOVESTEP)) + f = 1; + //johnfitz + + // interpolate the origin and angles + for (j=0 ; j<3 ; j++) + { + ent->origin[j] = ent->msg_origins[1][j] + f*delta[j]; + + d = ent->msg_angles[0][j] - ent->msg_angles[1][j]; + if (d > 180) + d -= 360; + else if (d < -180) + d += 360; + ent->angles[j] = ent->msg_angles[1][j] + f*d; + } + + } + +// rotate binary objects locally + if (ent->model->flags & EF_ROTATE) + ent->angles[1] = bobjrotate; + + if (ent->effects & EF_BRIGHTFIELD) + R_EntityParticles (ent); + + if (ent->effects & EF_MUZZLEFLASH) + { + vec3_t fv, rv, uv; + + dl = CL_AllocDlight (i); + VectorCopy (ent->origin, dl->origin); + dl->origin[2] += 16; + AngleVectors (ent->angles, fv, rv, uv); + + VectorMA (dl->origin, 18, fv, dl->origin); + dl->radius = 200 + (rand()&31); + dl->minlight = 32; + dl->die = cl.time + 0.1; + + //johnfitz -- assume muzzle flash accompanied by muzzle flare, which looks bad when lerped + if (r_lerpmodels.value != 2) + { + if (ent == &cl_entities[cl.viewentity]) + cl.viewent.lerpflags |= LERP_RESETANIM|LERP_RESETANIM2; //no lerping for two frames + else + ent->lerpflags |= LERP_RESETANIM|LERP_RESETANIM2; //no lerping for two frames + } + //johnfitz + } + if (ent->effects & EF_BRIGHTLIGHT) + { + dl = CL_AllocDlight (i); + VectorCopy (ent->origin, dl->origin); + dl->origin[2] += 16; + dl->radius = 400 + (rand()&31); + dl->die = cl.time + 0.001; + } + if (ent->effects & EF_DIMLIGHT) + { + dl = CL_AllocDlight (i); + VectorCopy (ent->origin, dl->origin); + dl->radius = 200 + (rand()&31); + dl->die = cl.time + 0.001; + } + + if (ent->model->flags & EF_GIB) + R_RocketTrail (oldorg, ent->origin, 2); + else if (ent->model->flags & EF_ZOMGIB) + R_RocketTrail (oldorg, ent->origin, 4); + else if (ent->model->flags & EF_TRACER) + R_RocketTrail (oldorg, ent->origin, 3); + else if (ent->model->flags & EF_TRACER2) + R_RocketTrail (oldorg, ent->origin, 5); + else if (ent->model->flags & EF_ROCKET) + { + R_RocketTrail (oldorg, ent->origin, 0); + dl = CL_AllocDlight (i); + VectorCopy (ent->origin, dl->origin); + dl->radius = 200; + dl->die = cl.time + 0.01; + } + else if (ent->model->flags & EF_GRENADE) + R_RocketTrail (oldorg, ent->origin, 1); + else if (ent->model->flags & EF_TRACER3) + R_RocketTrail (oldorg, ent->origin, 6); + + ent->forcelink = false; + + if (i == cl.viewentity && !chase_active.value) + continue; + + if (cl_numvisedicts < MAX_VISEDICTS) + { + cl_visedicts[cl_numvisedicts] = ent; + cl_numvisedicts++; + } + } +} + + +/* +=============== +CL_ReadFromServer + +Read all incoming data from the server +=============== +*/ +int CL_ReadFromServer (void) +{ + int ret; + extern int num_temp_entities; //johnfitz + int num_beams = 0; //johnfitz + int num_dlights = 0; //johnfitz + beam_t *b; //johnfitz + dlight_t *l; //johnfitz + int i; //johnfitz + + + cl.oldtime = cl.time; + cl.time += host_frametime; + + do + { + ret = CL_GetMessage (); + if (ret == -1) + Host_Error ("CL_ReadFromServer: lost server connection"); + if (!ret) + break; + + cl.last_received_message = realtime; + CL_ParseServerMessage (); + } while (ret && cls.state == ca_connected); + + if (cl_shownet.value) + Con_Printf ("\n"); + + CL_RelinkEntities (); + CL_UpdateTEnts (); + +//johnfitz -- devstats + + //visedicts + if (cl_numvisedicts > 256 && dev_peakstats.visedicts <= 256) + Con_Warning ("%i visedicts exceeds standard limit of 256.\n", cl_numvisedicts); + dev_stats.visedicts = cl_numvisedicts; + dev_peakstats.visedicts = max(cl_numvisedicts, dev_peakstats.visedicts); + + //temp entities + if (num_temp_entities > 64 && dev_peakstats.tempents <= 64) + Con_Warning ("%i tempentities exceeds standard limit of 64.\n", num_temp_entities); + dev_stats.tempents = num_temp_entities; + dev_peakstats.tempents = max(num_temp_entities, dev_peakstats.tempents); + + //beams + for (i=0, b=cl_beams ; i< MAX_BEAMS ; i++, b++) + if (b->model && b->endtime >= cl.time) + num_beams++; + if (num_beams > 24 && dev_peakstats.beams <= 24) + Con_Warning ("%i beams exceeded standard limit of 24.\n", num_beams); + dev_stats.beams = num_beams; + dev_peakstats.beams = max(num_beams, dev_peakstats.beams); + + //dlights + for (i=0, l=cl_dlights ; idie >= cl.time && l->radius) + num_dlights++; + if (num_dlights > 32 && dev_peakstats.dlights <= 32) + Con_Warning ("%i dlights exceeded standard limit of 32.\n", num_dlights); + dev_stats.dlights = num_dlights; + dev_peakstats.dlights = max(num_dlights, dev_peakstats.dlights); + +//johnfitz + +// +// bring the links up to date +// + return 0; +} + +/* +================= +CL_SendCmd +================= +*/ +void CL_SendCmd (void) +{ + usercmd_t cmd; + + if (cls.state != ca_connected) + return; + + if (cls.signon == SIGNONS) + { + // get basic movement from keyboard + CL_BaseMove (&cmd); + + // allow mice or other external controllers to add to the move + IN_Move (&cmd); + + // send the unreliable message + CL_SendMove (&cmd); + + } + + if (cls.demoplayback) + { + SZ_Clear (&cls.message); + return; + } + +// send the reliable message + if (!cls.message.cursize) + return; // no message at all + + if (!NET_CanSendMessage (cls.netcon)) + { + Con_DPrintf ("CL_WriteToServer: can't send\n"); + return; + } + + if (NET_SendMessage (cls.netcon, &cls.message) == -1) + Host_Error ("CL_WriteToServer: lost server connection"); + + SZ_Clear (&cls.message); +} + +/* +============= +CL_Tracepos_f -- johnfitz + +display impact point of trace along VPN +============= +*/ +void CL_Tracepos_f (void) +{ + vec3_t v, w; + + VectorScale(vpn, 8192.0, v); + TraceLine(r_refdef.vieworg, v, w); + + if (Length(w) == 0) + Con_Printf ("Tracepos: trace didn't hit anything\n"); + else + Con_Printf ("Tracepos: (%i %i %i)\n", (int)w[0], (int)w[1], (int)w[2]); +} + +/* +============= +CL_Viewpos_f -- johnfitz + +display client's position and angles +============= +*/ +void CL_Viewpos_f (void) +{ +#if 0 + //camera position + Con_Printf ("Viewpos: (%i %i %i) %i %i %i\n", + (int)r_refdef.vieworg[0], + (int)r_refdef.vieworg[1], + (int)r_refdef.vieworg[2], + (int)r_refdef.viewangles[PITCH], + (int)r_refdef.viewangles[YAW], + (int)r_refdef.viewangles[ROLL]); +#else + //player position + Con_Printf ("Viewpos: (%i %i %i) %i %i %i\n", + (int)cl_entities[cl.viewentity].origin[0], + (int)cl_entities[cl.viewentity].origin[1], + (int)cl_entities[cl.viewentity].origin[2], + (int)cl.viewangles[PITCH], + (int)cl.viewangles[YAW], + (int)cl.viewangles[ROLL]); +#endif +} + +/* +================= +CL_Init +================= +*/ +void CL_Init (void) +{ + SZ_Alloc (&cls.message, 1024); + + CL_InitInput (); + CL_InitTEnts (); + + Cvar_RegisterVariable (&cl_name, NULL); + Cvar_RegisterVariable (&cl_color, NULL); + Cvar_RegisterVariable (&cl_upspeed, NULL); + Cvar_RegisterVariable (&cl_forwardspeed, NULL); + Cvar_RegisterVariable (&cl_backspeed, NULL); + Cvar_RegisterVariable (&cl_sidespeed, NULL); + Cvar_RegisterVariable (&cl_movespeedkey, NULL); + Cvar_RegisterVariable (&cl_yawspeed, NULL); + Cvar_RegisterVariable (&cl_pitchspeed, NULL); + Cvar_RegisterVariable (&cl_anglespeedkey, NULL); + Cvar_RegisterVariable (&cl_shownet, NULL); + Cvar_RegisterVariable (&cl_nolerp, NULL); + Cvar_RegisterVariable (&lookspring, NULL); + Cvar_RegisterVariable (&lookstrafe, NULL); + Cvar_RegisterVariable (&sensitivity, NULL); + + Cvar_RegisterVariable (&m_pitch, NULL); + Cvar_RegisterVariable (&m_yaw, NULL); + Cvar_RegisterVariable (&m_forward, NULL); + Cvar_RegisterVariable (&m_side, NULL); + + Cvar_RegisterVariable (&cl_maxpitch, NULL); //johnfitz -- variable pitch clamping + Cvar_RegisterVariable (&cl_minpitch, NULL); //johnfitz -- variable pitch clamping + + Cmd_AddCommand ("entities", CL_PrintEntities_f); + Cmd_AddCommand ("disconnect", CL_Disconnect_f); + Cmd_AddCommand ("record", CL_Record_f); + Cmd_AddCommand ("stop", CL_Stop_f); + Cmd_AddCommand ("playdemo", CL_PlayDemo_f); + Cmd_AddCommand ("timedemo", CL_TimeDemo_f); + + Cmd_AddCommand ("tracepos", CL_Tracepos_f); //johnfitz + Cmd_AddCommand ("viewpos", CL_Viewpos_f); //johnfitz +} + diff --git a/quakespasm/Quake/cl_parse.c b/quakespasm/Quake/cl_parse.c new file mode 100644 index 00000000..bfd95cd8 --- /dev/null +++ b/quakespasm/Quake/cl_parse.c @@ -0,0 +1,1218 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// cl_parse.c -- parse a message received from the server + +#include "quakedef.h" + +char *svc_strings[] = +{ + "svc_bad", + "svc_nop", + "svc_disconnect", + "svc_updatestat", + "svc_version", // [long] server version + "svc_setview", // [short] entity number + "svc_sound", // + "svc_time", // [float] server time + "svc_print", // [string] null terminated string + "svc_stufftext", // [string] stuffed into client's console buffer + // the string should be \n terminated + "svc_setangle", // [vec3] set the view angle to this absolute value + + "svc_serverinfo", // [long] version + // [string] signon string + // [string]..[0]model cache [string]...[0]sounds cache + // [string]..[0]item cache + "svc_lightstyle", // [byte] [string] + "svc_updatename", // [byte] [string] + "svc_updatefrags", // [byte] [short] + "svc_clientdata", // + "svc_stopsound", // + "svc_updatecolors", // [byte] [byte] + "svc_particle", // [vec3] + "svc_damage", // [byte] impact [byte] blood [vec3] from + + "svc_spawnstatic", + "OBSOLETE svc_spawnbinary", + "svc_spawnbaseline", + + "svc_temp_entity", // + "svc_setpause", + "svc_signonnum", + "svc_centerprint", + "svc_killedmonster", + "svc_foundsecret", + "svc_spawnstaticsound", + "svc_intermission", + "svc_finale", // [string] music [string] text + "svc_cdtrack", // [byte] track [byte] looptrack + "svc_sellscreen", + "svc_cutscene", +//johnfitz -- new server messages + "", // 35 + "", // 36 + "svc_skybox", // 37 // [string] skyname + "", // 38 + "", // 39 + "svc_bf", // 40 // no data + "svc_fog", // 41 // [byte] density [byte] red [byte] green [byte] blue [float] time + "svc_spawnbaseline2", //42 // support for large modelindex, large framenum, alpha, using flags + "svc_spawnstatic2", // 43 // support for large modelindex, large framenum, alpha, using flags + "svc_spawnstaticsound2", // 44 // [coord3] [short] samp [byte] vol [byte] aten + "", // 44 + "", // 45 + "", // 46 + "", // 47 + "", // 48 + "", // 49 +//johnfitz +}; + +qboolean warn_about_nehahra_protocol; //johnfitz + +extern vec3_t v_punchangles[2]; //johnfitz + +//============================================================================= + +/* +=============== +CL_EntityNum + +This error checks and tracks the total number of entities +=============== +*/ +entity_t *CL_EntityNum (int num) +{ + //johnfitz -- check minimum number too + if (num < 0) + Host_Error ("CL_EntityNum: %i is an invalid number",num); + //john + + if (num >= cl.num_entities) + { + if (num >= cl_max_edicts) //johnfitz -- no more MAX_EDICTS + Host_Error ("CL_EntityNum: %i is an invalid number",num); + while (cl.num_entities<=num) + { + cl_entities[cl.num_entities].colormap = vid.colormap; + cl_entities[cl.num_entities].lerpflags |= LERP_RESETMOVE|LERP_RESETANIM; //johnfitz + cl.num_entities++; + } + } + + return &cl_entities[num]; +} + + +/* +================== +CL_ParseStartSoundPacket +================== +*/ +void CL_ParseStartSoundPacket(void) +{ + vec3_t pos; + int channel, ent; + int sound_num; + int volume; + int field_mask; + float attenuation; + int i; + + field_mask = MSG_ReadByte(); + + if (field_mask & SND_VOLUME) + volume = MSG_ReadByte (); + else + volume = DEFAULT_SOUND_PACKET_VOLUME; + + if (field_mask & SND_ATTENUATION) + attenuation = MSG_ReadByte () / 64.0; + else + attenuation = DEFAULT_SOUND_PACKET_ATTENUATION; + + //johnfitz -- PROTOCOL_FITZQUAKE + if (field_mask & SND_LARGEENTITY) + { + ent = (unsigned short) MSG_ReadShort (); + channel = MSG_ReadByte (); + } + else + { + channel = (unsigned short) MSG_ReadShort (); + ent = channel >> 3; + channel &= 7; + } + + if (field_mask & SND_LARGESOUND) + sound_num = (unsigned short) MSG_ReadShort (); + else + sound_num = MSG_ReadByte (); + //johnfitz + + //johnfitz -- check soundnum + if (sound_num >= MAX_SOUNDS) + Host_Error ("CL_ParseStartSoundPacket: %i > MAX_SOUNDS", sound_num); + //johnfitz + + if (ent > cl_max_edicts) //johnfitz -- no more MAX_EDICTS + Host_Error ("CL_ParseStartSoundPacket: ent = %i", ent); + + for (i=0 ; i<3 ; i++) + pos[i] = MSG_ReadCoord (); + + S_StartSound (ent, channel, cl.sound_precache[sound_num], pos, volume/255.0, attenuation); +} + +/* +================== +CL_KeepaliveMessage + +When the client is taking a long time to load stuff, send keepalive messages +so the server doesn't disconnect. +================== +*/ +void CL_KeepaliveMessage (void) +{ + float time; + static float lastmsg; + int ret; + sizebuf_t old; + byte olddata[8192]; + + if (sv.active) + return; // no need if server is local + if (cls.demoplayback) + return; + +// read messages from server, should just be nops + old = net_message; + memcpy (olddata, net_message.data, net_message.cursize); + + do + { + ret = CL_GetMessage (); + switch (ret) + { + default: + Host_Error ("CL_KeepaliveMessage: CL_GetMessage failed"); + case 0: + break; // nothing waiting + case 1: + Host_Error ("CL_KeepaliveMessage: received a message"); + break; + case 2: + if (MSG_ReadByte() != svc_nop) + Host_Error ("CL_KeepaliveMessage: datagram wasn't a nop"); + break; + } + } while (ret); + + net_message = old; + memcpy (net_message.data, olddata, net_message.cursize); + +// check time + time = Sys_FloatTime (); + if (time - lastmsg < 5) + return; + lastmsg = time; + +// write out a nop + Con_Printf ("--> client to server keepalive\n"); + + MSG_WriteByte (&cls.message, clc_nop); + NET_SendMessage (cls.netcon, &cls.message); + SZ_Clear (&cls.message); +} + +/* +================== +CL_ParseServerInfo +================== +*/ +void CL_ParseServerInfo (void) +{ + char *str; + int i; + int nummodels, numsounds; + char model_precache[MAX_MODELS][MAX_QPATH]; + char sound_precache[MAX_SOUNDS][MAX_QPATH]; + + Con_DPrintf ("Serverinfo packet received.\n"); +// +// wipe the client_state_t struct +// + CL_ClearState (); + +// parse protocol version number + i = MSG_ReadLong (); + //johnfitz -- support multiple protocols + if (i != PROTOCOL_NETQUAKE && i != PROTOCOL_FITZQUAKE) { + Con_Printf ("\n"); //becuase there's no newline after serverinfo print + Host_Error ("Server returned version %i, not %i or %i\n", i, PROTOCOL_NETQUAKE, PROTOCOL_FITZQUAKE); + } + cl.protocol = i; + //johnfitz + +// parse maxclients + cl.maxclients = MSG_ReadByte (); + if (cl.maxclients < 1 || cl.maxclients > MAX_SCOREBOARD) + { + Con_Printf("Bad maxclients (%u) from server\n", cl.maxclients); + return; + } + cl.scores = Hunk_AllocName (cl.maxclients*sizeof(*cl.scores), "scores"); + +// parse gametype + cl.gametype = MSG_ReadByte (); + +// parse signon message + str = MSG_ReadString (); + strncpy (cl.levelname, str, sizeof(cl.levelname)-1); + +// seperate the printfs so the server message can have a color + Con_Printf ("\n%s\n", Con_Quakebar(40)); //johnfitz + Con_Printf ("%c%s\n", 2, str); + +//johnfitz -- tell user which protocol this is + Con_Printf ("Using protocol %i\n", i); + +// first we go through and touch all of the precache data that still +// happens to be in the cache, so precaching something else doesn't +// needlessly purge it + +// precache models + memset (cl.model_precache, 0, sizeof(cl.model_precache)); + for (nummodels=1 ; ; nummodels++) + { + str = MSG_ReadString (); + if (!str[0]) + break; + if (nummodels==MAX_MODELS) + { + Con_Printf ("Server sent too many model precaches\n"); + return; + } + strcpy (model_precache[nummodels], str); + Mod_TouchModel (str); + } + + //johnfitz -- check for excessive models + if (nummodels >= 256) + Con_Warning ("%i models exceeds standard limit of 256.\n", nummodels); + //johnfitz + +// precache sounds + memset (cl.sound_precache, 0, sizeof(cl.sound_precache)); + for (numsounds=1 ; ; numsounds++) + { + str = MSG_ReadString (); + if (!str[0]) + break; + if (numsounds==MAX_SOUNDS) + { + Con_Printf ("Server sent too many sound precaches\n"); + return; + } + strcpy (sound_precache[numsounds], str); + S_TouchSound (str); + } + + //johnfitz -- check for excessive sounds + if (numsounds >= 256) + Con_Warning ("%i sounds exceeds standard limit of 256.\n", numsounds); + //johnfitz + +// +// now we try to load everything else until a cache allocation fails +// + + for (i=1 ; imsgtime != cl.mtime[1]) + forcelink = true; // no previous frame to lerp from + else + forcelink = false; + + //johnfitz -- lerping + if (ent->msgtime + 0.2 < cl.mtime[0]) //more than 0.2 seconds since the last message (most entities think every 0.1 sec) + ent->lerpflags |= LERP_RESETANIM; //if we missed a think, we'd be lerping from the wrong frame + //johnfitz + + ent->msgtime = cl.mtime[0]; + + if (bits & U_MODEL) + { + modnum = MSG_ReadByte (); + if (modnum >= MAX_MODELS) + Host_Error ("CL_ParseModel: bad modnum"); + } + else + modnum = ent->baseline.modelindex; + + if (bits & U_FRAME) + ent->frame = MSG_ReadByte (); + else + ent->frame = ent->baseline.frame; + + if (bits & U_COLORMAP) + i = MSG_ReadByte(); + else + i = ent->baseline.colormap; + if (!i) + ent->colormap = vid.colormap; + else + { + if (i > cl.maxclients) + Sys_Error ("i >= cl.maxclients"); + ent->colormap = cl.scores[i-1].translations; + } + if (bits & U_SKIN) + skin = MSG_ReadByte(); + else + skin = ent->baseline.skin; + if (skin != ent->skinnum) { + ent->skinnum = skin; + if (num > 0 && num <= cl.maxclients) + R_TranslateNewPlayerSkin (num - 1); //johnfitz -- was R_TranslatePlayerSkin + } + if (bits & U_EFFECTS) + ent->effects = MSG_ReadByte(); + else + ent->effects = ent->baseline.effects; + +// shift the known values for interpolation + VectorCopy (ent->msg_origins[0], ent->msg_origins[1]); + VectorCopy (ent->msg_angles[0], ent->msg_angles[1]); + + if (bits & U_ORIGIN1) + ent->msg_origins[0][0] = MSG_ReadCoord (); + else + ent->msg_origins[0][0] = ent->baseline.origin[0]; + if (bits & U_ANGLE1) + ent->msg_angles[0][0] = MSG_ReadAngle(); + else + ent->msg_angles[0][0] = ent->baseline.angles[0]; + + if (bits & U_ORIGIN2) + ent->msg_origins[0][1] = MSG_ReadCoord (); + else + ent->msg_origins[0][1] = ent->baseline.origin[1]; + if (bits & U_ANGLE2) + ent->msg_angles[0][1] = MSG_ReadAngle(); + else + ent->msg_angles[0][1] = ent->baseline.angles[1]; + + if (bits & U_ORIGIN3) + ent->msg_origins[0][2] = MSG_ReadCoord (); + else + ent->msg_origins[0][2] = ent->baseline.origin[2]; + if (bits & U_ANGLE3) + ent->msg_angles[0][2] = MSG_ReadAngle(); + else + ent->msg_angles[0][2] = ent->baseline.angles[2]; + + //johnfitz -- lerping for movetype_step entities + if ( bits & U_STEP ) + { + ent->lerpflags |= LERP_MOVESTEP; + ent->forcelink = true; + } + else + ent->lerpflags &= ~LERP_MOVESTEP; + //johnfitz + + //johnfitz -- PROTOCOL_FITZQUAKE and PROTOCOL_NEHAHRA + if (cl.protocol == PROTOCOL_FITZQUAKE) + { + if (bits & U_ALPHA) + ent->alpha = MSG_ReadByte(); + else + ent->alpha = ent->baseline.alpha; + if (bits & U_FRAME2) + ent->frame = (ent->frame & 0x00FF) | (MSG_ReadByte() << 8); + if (bits & U_MODEL2) + modnum = (modnum & 0x00FF) | (MSG_ReadByte() << 8); + if (bits & U_LERPFINISH) + { + ent->lerpfinish = ent->msgtime + ((float)(MSG_ReadByte()) / 255); + ent->lerpflags |= LERP_FINISH; + } + else + ent->lerpflags &= ~LERP_FINISH; + } + else if (cl.protocol == PROTOCOL_NETQUAKE) + { + //HACK: if this bit is set, assume this is PROTOCOL_NEHAHRA + if (bits & U_TRANS) + { + float a,b; + + if (warn_about_nehahra_protocol) { + Con_Warning ("nonstandard update bit, assuming Nehahra protocol\n"); + warn_about_nehahra_protocol = false; + } + + a = MSG_ReadFloat(); + b = MSG_ReadFloat(); //alpha + if (a == 2) + MSG_ReadFloat(); //fullbright (not using this yet) + ent->alpha = ENTALPHA_ENCODE(b); + } + else + ent->alpha = ent->baseline.alpha; + } + //johnfitz + + //johnfitz -- moved here from above + model = cl.model_precache[modnum]; + if (model != ent->model) + { + ent->model = model; + // automatic animation (torches, etc) can be either all together + // or randomized + if (model) + { + if (model->synctype == ST_RAND) + ent->syncbase = (float)(rand()&0x7fff) / 0x7fff; + else + ent->syncbase = 0.0; + } + else + forcelink = true; // hack to make null model players work + if (num > 0 && num <= cl.maxclients) + R_TranslateNewPlayerSkin (num - 1); //johnfitz -- was R_TranslatePlayerSkin + + ent->lerpflags |= LERP_RESETANIM; //johnfitz -- don't lerp animation across model changes + } + //johnfitz + + if ( forcelink ) + { // didn't have an update last message + VectorCopy (ent->msg_origins[0], ent->msg_origins[1]); + VectorCopy (ent->msg_origins[0], ent->origin); + VectorCopy (ent->msg_angles[0], ent->msg_angles[1]); + VectorCopy (ent->msg_angles[0], ent->angles); + ent->forcelink = true; + } +} + +/* +================== +CL_ParseBaseline +================== +*/ +void CL_ParseBaseline (entity_t *ent, int version) //johnfitz -- added argument +{ + int i; + int bits; //johnfitz + + //johnfitz -- PROTOCOL_FITZQUAKE + bits = (version == 2) ? MSG_ReadByte() : 0; + ent->baseline.modelindex = (bits & B_LARGEMODEL) ? MSG_ReadShort() : MSG_ReadByte(); + ent->baseline.frame = (bits & B_LARGEFRAME) ? MSG_ReadShort() : MSG_ReadByte(); + //johnfitz + + ent->baseline.colormap = MSG_ReadByte(); + ent->baseline.skin = MSG_ReadByte(); + for (i=0 ; i<3 ; i++) + { + ent->baseline.origin[i] = MSG_ReadCoord (); + ent->baseline.angles[i] = MSG_ReadAngle (); + } + + ent->baseline.alpha = (bits & B_ALPHA) ? MSG_ReadByte() : ENTALPHA_DEFAULT; //johnfitz -- PROTOCOL_FITZQUAKE +} + + +/* +================== +CL_ParseClientdata + +Server information pertaining to this client only +================== +*/ +void CL_ParseClientdata (void) +{ + int i, j; + int bits; //johnfitz + + bits = (unsigned short)MSG_ReadShort (); //johnfitz -- read bits here isntead of in CL_ParseServerMessage() + + //johnfitz -- PROTOCOL_FITZQUAKE + if (bits & SU_EXTEND1) + bits |= (MSG_ReadByte() << 16); + if (bits & SU_EXTEND2) + bits |= (MSG_ReadByte() << 24); + //johnfitz + + if (bits & SU_VIEWHEIGHT) + cl.viewheight = MSG_ReadChar (); + else + cl.viewheight = DEFAULT_VIEWHEIGHT; + + if (bits & SU_IDEALPITCH) + cl.idealpitch = MSG_ReadChar (); + else + cl.idealpitch = 0; + + VectorCopy (cl.mvelocity[0], cl.mvelocity[1]); + for (i=0 ; i<3 ; i++) + { + if (bits & (SU_PUNCH1< cl.maxclients) + Sys_Error ("CL_NewTranslation: slot > cl.maxclients"); + dest = cl.scores[slot].translations; + source = vid.colormap; + memcpy (dest, vid.colormap, sizeof(cl.scores[slot].translations)); + top = cl.scores[slot].colors & 0xf0; + bottom = (cl.scores[slot].colors &15)<<4; + R_TranslatePlayerSkin (slot); + + for (i=0 ; i= MAX_STATIC_ENTITIES) + Host_Error ("Too many static entities"); + + ent = &cl_static_entities[i]; + cl.num_statics++; + CL_ParseBaseline (ent, version); //johnfitz -- added second parameter + +// copy it to the current state + + ent->model = cl.model_precache[ent->baseline.modelindex]; + ent->lerpflags |= LERP_RESETANIM; //johnfitz -- lerping + ent->frame = ent->baseline.frame; + + ent->colormap = vid.colormap; + ent->skinnum = ent->baseline.skin; + ent->effects = ent->baseline.effects; + ent->alpha = ent->baseline.alpha; //johnfitz -- alpha + + VectorCopy (ent->baseline.origin, ent->origin); + VectorCopy (ent->baseline.angles, ent->angles); + R_AddEfrags (ent); +} + +/* +=================== +CL_ParseStaticSound +=================== +*/ +void CL_ParseStaticSound (int version) //johnfitz -- added argument +{ + vec3_t org; + int sound_num, vol, atten; + int i; + + for (i=0 ; i<3 ; i++) + org[i] = MSG_ReadCoord (); + + //johnfitz -- PROTOCOL_FITZQUAKE + if (version == 2) + sound_num = MSG_ReadShort (); + else + sound_num = MSG_ReadByte (); + //johnfitz + + vol = MSG_ReadByte (); + atten = MSG_ReadByte (); + + S_StaticSound (cl.sound_precache[sound_num], org, vol, atten); +} + + +#define SHOWNET(x) if(cl_shownet.value==2)Con_Printf ("%3i:%s\n", msg_readcount-1, x); + +/* +===================== +CL_ParseServerMessage +===================== +*/ +void CL_ParseServerMessage (void) +{ + int cmd; + int i; + char *str; //johnfitz + int total, j, lastcmd; //johnfitz + +// +// if recording demos, copy the message out +// + if (cl_shownet.value == 1) + Con_Printf ("%i ",net_message.cursize); + else if (cl_shownet.value == 2) + Con_Printf ("------------------\n"); + + cl.onground = false; // unless the server says otherwise +// +// parse the message +// + MSG_BeginReading (); + + while (1) + { + if (msg_badread) + Host_Error ("CL_ParseServerMessage: Bad server message"); + + cmd = MSG_ReadByte (); + + if (cmd == -1) + { + SHOWNET("END OF MESSAGE"); + return; // end of message + } + + // if the high bit of the command byte is set, it is a fast update + if (cmd & U_SIGNAL) //johnfitz -- was 128, changed for clarity + { + SHOWNET("fast update"); + CL_ParseUpdate (cmd&127); + continue; + } + + SHOWNET(svc_strings[cmd]); + + // other commands + switch (cmd) + { + default: + Host_Error ("Illegible server message, previous was %s\n", svc_strings[lastcmd]); //johnfitz -- added svc_strings[lastcmd] + break; + + case svc_nop: +// Con_Printf ("svc_nop\n"); + break; + + case svc_time: + cl.mtime[1] = cl.mtime[0]; + cl.mtime[0] = MSG_ReadFloat (); + break; + + case svc_clientdata: + CL_ParseClientdata (); //johnfitz -- removed bits parameter, we will read this inside CL_ParseClientdata() + break; + + case svc_version: + i = MSG_ReadLong (); + //johnfitz -- support multiple protocols + if (i != PROTOCOL_NETQUAKE && i != PROTOCOL_FITZQUAKE) + Host_Error ("Server returned version %i, not %i or %i\n", i, PROTOCOL_NETQUAKE, PROTOCOL_FITZQUAKE); + cl.protocol = i; + //johnfitz + break; + + case svc_disconnect: + Host_EndGame ("Server disconnected\n"); + + case svc_print: + Con_Printf ("%s", MSG_ReadString ()); + break; + + case svc_centerprint: + //johnfitz -- log centerprints to console + str = MSG_ReadString (); + SCR_CenterPrint (str); + Con_LogCenterPrint (str); + //johnfitz + break; + + case svc_stufftext: + Cbuf_AddText (MSG_ReadString ()); + break; + + case svc_damage: + V_ParseDamage (); + break; + + case svc_serverinfo: + CL_ParseServerInfo (); + vid.recalc_refdef = true; // leave intermission full screen + break; + + case svc_setangle: + for (i=0 ; i<3 ; i++) + cl.viewangles[i] = MSG_ReadAngle (); + break; + + case svc_setview: + cl.viewentity = MSG_ReadShort (); + break; + + case svc_lightstyle: + i = MSG_ReadByte (); + if (i >= MAX_LIGHTSTYLES) + Sys_Error ("svc_lightstyle > MAX_LIGHTSTYLES"); + Q_strcpy (cl_lightstyle[i].map, MSG_ReadString()); + cl_lightstyle[i].length = Q_strlen(cl_lightstyle[i].map); + //johnfitz -- save extra info + if (cl_lightstyle[i].length) + { + total = 0; + cl_lightstyle[i].peak = 'a'; + for (j=0; j>3, i&7); + break; + + case svc_updatename: + Sbar_Changed (); + i = MSG_ReadByte (); + if (i >= cl.maxclients) + Host_Error ("CL_ParseServerMessage: svc_updatename > MAX_SCOREBOARD"); + strcpy (cl.scores[i].name, MSG_ReadString ()); + break; + + case svc_updatefrags: + Sbar_Changed (); + i = MSG_ReadByte (); + if (i >= cl.maxclients) + Host_Error ("CL_ParseServerMessage: svc_updatefrags > MAX_SCOREBOARD"); + cl.scores[i].frags = MSG_ReadShort (); + break; + + case svc_updatecolors: + Sbar_Changed (); + i = MSG_ReadByte (); + if (i >= cl.maxclients) + Host_Error ("CL_ParseServerMessage: svc_updatecolors > MAX_SCOREBOARD"); + cl.scores[i].colors = MSG_ReadByte (); + CL_NewTranslation (i); + break; + + case svc_particle: + R_ParseParticleEffect (); + break; + + case svc_spawnbaseline: + i = MSG_ReadShort (); + // must use CL_EntityNum() to force cl.num_entities up + CL_ParseBaseline (CL_EntityNum(i), 1); // johnfitz -- added second parameter + break; + + case svc_spawnstatic: + CL_ParseStatic (1); //johnfitz -- added parameter + break; + + case svc_temp_entity: + CL_ParseTEnt (); + break; + + case svc_setpause: + { + cl.paused = MSG_ReadByte (); + + if (cl.paused) + { + CDAudio_Pause (); + } + else + { + CDAudio_Resume (); + } + } + break; + + case svc_signonnum: + i = MSG_ReadByte (); + if (i <= cls.signon) + Host_Error ("Received signon %i when at %i", i, cls.signon); + cls.signon = i; + //johnfitz -- if signonnum==2, signon packet has been fully parsed, so check for excessive static ents and efrags + if (i == 2) + { + if (cl.num_statics > 128) + Con_Warning ("%i static entities exceeds standard limit of 128.\n", cl.num_statics); + R_CheckEfrags (); + } + //johnfitz + CL_SignonReply (); + break; + + case svc_killedmonster: + cl.stats[STAT_MONSTERS]++; + break; + + case svc_foundsecret: + cl.stats[STAT_SECRETS]++; + break; + + case svc_updatestat: + i = MSG_ReadByte (); + if (i < 0 || i >= MAX_CL_STATS) + Sys_Error ("svc_updatestat: %i is invalid", i); + cl.stats[i] = MSG_ReadLong ();; + break; + + case svc_spawnstaticsound: + CL_ParseStaticSound (1); //johnfitz -- added parameter + break; + + case svc_cdtrack: + cl.cdtrack = MSG_ReadByte (); + cl.looptrack = MSG_ReadByte (); + if ( (cls.demoplayback || cls.demorecording) && (cls.forcetrack != -1) ) + CDAudio_Play ((byte)cls.forcetrack, true); + else + CDAudio_Play ((byte)cl.cdtrack, true); + break; + + case svc_intermission: + cl.intermission = 1; + cl.completed_time = cl.time; + vid.recalc_refdef = true; // go to full screen + break; + + case svc_finale: + cl.intermission = 2; + cl.completed_time = cl.time; + vid.recalc_refdef = true; // go to full screen + //johnfitz -- log centerprints to console + str = MSG_ReadString (); + SCR_CenterPrint (str); + Con_LogCenterPrint (str); + //johnfitz + break; + + case svc_cutscene: + cl.intermission = 3; + cl.completed_time = cl.time; + vid.recalc_refdef = true; // go to full screen + //johnfitz -- log centerprints to console + str = MSG_ReadString (); + SCR_CenterPrint (str); + Con_LogCenterPrint (str); + //johnfitz + break; + + case svc_sellscreen: + Cmd_ExecuteString ("help", src_command); + break; + + //johnfitz -- new svc types + case svc_skybox: + Sky_LoadSkyBox (MSG_ReadString()); + break; + + case svc_bf: + Cmd_ExecuteString ("bf", src_command); + break; + + case svc_fog: + Fog_ParseServerMessage (); + break; + + case svc_spawnbaseline2: //PROTOCOL_FITZQUAKE + i = MSG_ReadShort (); + // must use CL_EntityNum() to force cl.num_entities up + CL_ParseBaseline (CL_EntityNum(i), 2); + break; + + case svc_spawnstatic2: //PROTOCOL_FITZQUAKE + CL_ParseStatic (2); + break; + + case svc_spawnstaticsound2: //PROTOCOL_FITZQUAKE + CL_ParseStaticSound (2); + break; + //johnfitz + } + + lastcmd = cmd; //johnfitz + } +} diff --git a/quakespasm/Quake/cl_tent.c b/quakespasm/Quake/cl_tent.c new file mode 100644 index 00000000..ea63497d --- /dev/null +++ b/quakespasm/Quake/cl_tent.c @@ -0,0 +1,364 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// cl_tent.c -- client side temporary entities + +#include "quakedef.h" + +int num_temp_entities; +entity_t cl_temp_entities[MAX_TEMP_ENTITIES]; +beam_t cl_beams[MAX_BEAMS]; + +sfx_t *cl_sfx_wizhit; +sfx_t *cl_sfx_knighthit; +sfx_t *cl_sfx_tink1; +sfx_t *cl_sfx_ric1; +sfx_t *cl_sfx_ric2; +sfx_t *cl_sfx_ric3; +sfx_t *cl_sfx_r_exp3; + +/* +================= +CL_ParseTEnt +================= +*/ +void CL_InitTEnts (void) +{ + cl_sfx_wizhit = S_PrecacheSound ("wizard/hit.wav"); + cl_sfx_knighthit = S_PrecacheSound ("hknight/hit.wav"); + cl_sfx_tink1 = S_PrecacheSound ("weapons/tink1.wav"); + cl_sfx_ric1 = S_PrecacheSound ("weapons/ric1.wav"); + cl_sfx_ric2 = S_PrecacheSound ("weapons/ric2.wav"); + cl_sfx_ric3 = S_PrecacheSound ("weapons/ric3.wav"); + cl_sfx_r_exp3 = S_PrecacheSound ("weapons/r_exp3.wav"); +} + +/* +================= +CL_ParseBeam +================= +*/ +void CL_ParseBeam (model_t *m) +{ + int ent; + vec3_t start, end; + beam_t *b; + int i; + + ent = MSG_ReadShort (); + + start[0] = MSG_ReadCoord (); + start[1] = MSG_ReadCoord (); + start[2] = MSG_ReadCoord (); + + end[0] = MSG_ReadCoord (); + end[1] = MSG_ReadCoord (); + end[2] = MSG_ReadCoord (); + +// override any beam with the same entity + for (i=0, b=cl_beams ; i< MAX_BEAMS ; i++, b++) + if (b->entity == ent) + { + b->entity = ent; + b->model = m; + b->endtime = cl.time + 0.2; + VectorCopy (start, b->start); + VectorCopy (end, b->end); + return; + } + +// find a free beam + for (i=0, b=cl_beams ; i< MAX_BEAMS ; i++, b++) + { + if (!b->model || b->endtime < cl.time) + { + b->entity = ent; + b->model = m; + b->endtime = cl.time + 0.2; + VectorCopy (start, b->start); + VectorCopy (end, b->end); + return; + } + } + + //johnfitz -- less spammy overflow message + if (!dev_overflows.beams || dev_overflows.beams + CONSOLE_RESPAM_TIME < realtime ) + { + Con_Printf ("Beam list overflow!\n"); + dev_overflows.beams = realtime; + } + //johnfitz +} + +/* +================= +CL_ParseTEnt +================= +*/ +void CL_ParseTEnt (void) +{ + int type; + vec3_t pos; + dlight_t *dl; + int rnd; + int colorStart, colorLength; + + type = MSG_ReadByte (); + switch (type) + { + case TE_WIZSPIKE: // spike hitting wall + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + R_RunParticleEffect (pos, vec3_origin, 20, 30); + S_StartSound (-1, 0, cl_sfx_wizhit, pos, 1, 1); + break; + + case TE_KNIGHTSPIKE: // spike hitting wall + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + R_RunParticleEffect (pos, vec3_origin, 226, 20); + S_StartSound (-1, 0, cl_sfx_knighthit, pos, 1, 1); + break; + + case TE_SPIKE: // spike hitting wall + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); +#ifdef GLTEST + Test_Spawn (pos); +#else + R_RunParticleEffect (pos, vec3_origin, 0, 10); +#endif + if ( rand() % 5 ) + S_StartSound (-1, 0, cl_sfx_tink1, pos, 1, 1); + else + { + rnd = rand() & 3; + if (rnd == 1) + S_StartSound (-1, 0, cl_sfx_ric1, pos, 1, 1); + else if (rnd == 2) + S_StartSound (-1, 0, cl_sfx_ric2, pos, 1, 1); + else + S_StartSound (-1, 0, cl_sfx_ric3, pos, 1, 1); + } + break; + case TE_SUPERSPIKE: // super spike hitting wall + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + R_RunParticleEffect (pos, vec3_origin, 0, 20); + + if ( rand() % 5 ) + S_StartSound (-1, 0, cl_sfx_tink1, pos, 1, 1); + else + { + rnd = rand() & 3; + if (rnd == 1) + S_StartSound (-1, 0, cl_sfx_ric1, pos, 1, 1); + else if (rnd == 2) + S_StartSound (-1, 0, cl_sfx_ric2, pos, 1, 1); + else + S_StartSound (-1, 0, cl_sfx_ric3, pos, 1, 1); + } + break; + + case TE_GUNSHOT: // bullet hitting wall + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + R_RunParticleEffect (pos, vec3_origin, 0, 20); + break; + + case TE_EXPLOSION: // rocket explosion + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + R_ParticleExplosion (pos); + dl = CL_AllocDlight (0); + VectorCopy (pos, dl->origin); + dl->radius = 350; + dl->die = cl.time + 0.5; + dl->decay = 300; + S_StartSound (-1, 0, cl_sfx_r_exp3, pos, 1, 1); + break; + + case TE_TAREXPLOSION: // tarbaby explosion + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + R_BlobExplosion (pos); + + S_StartSound (-1, 0, cl_sfx_r_exp3, pos, 1, 1); + break; + + case TE_LIGHTNING1: // lightning bolts + CL_ParseBeam (Mod_ForName("progs/bolt.mdl", true)); + break; + + case TE_LIGHTNING2: // lightning bolts + CL_ParseBeam (Mod_ForName("progs/bolt2.mdl", true)); + break; + + case TE_LIGHTNING3: // lightning bolts + CL_ParseBeam (Mod_ForName("progs/bolt3.mdl", true)); + break; + +// PGM 01/21/97 + case TE_BEAM: // grappling hook beam + CL_ParseBeam (Mod_ForName("progs/beam.mdl", true)); + break; +// PGM 01/21/97 + + case TE_LAVASPLASH: + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + R_LavaSplash (pos); + break; + + case TE_TELEPORT: + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + R_TeleportSplash (pos); + break; + + case TE_EXPLOSION2: // color mapped explosion + pos[0] = MSG_ReadCoord (); + pos[1] = MSG_ReadCoord (); + pos[2] = MSG_ReadCoord (); + colorStart = MSG_ReadByte (); + colorLength = MSG_ReadByte (); + R_ParticleExplosion2 (pos, colorStart, colorLength); + dl = CL_AllocDlight (0); + VectorCopy (pos, dl->origin); + dl->radius = 350; + dl->die = cl.time + 0.5; + dl->decay = 300; + S_StartSound (-1, 0, cl_sfx_r_exp3, pos, 1, 1); + break; + + default: + Sys_Error ("CL_ParseTEnt: bad type"); + } +} + + +/* +================= +CL_NewTempEntity +================= +*/ +entity_t *CL_NewTempEntity (void) +{ + entity_t *ent; + + if (cl_numvisedicts == MAX_VISEDICTS) + return NULL; + if (num_temp_entities == MAX_TEMP_ENTITIES) + return NULL; + ent = &cl_temp_entities[num_temp_entities]; + memset (ent, 0, sizeof(*ent)); + num_temp_entities++; + cl_visedicts[cl_numvisedicts] = ent; + cl_numvisedicts++; + + ent->colormap = vid.colormap; + return ent; +} + + +/* +================= +CL_UpdateTEnts +================= +*/ +void CL_UpdateTEnts (void) +{ + int i, j; //johnfitz -- use j instead of using i twice, so we don't corrupt memory + beam_t *b; + vec3_t dist, org; + float d; + entity_t *ent; + float yaw, pitch; + float forward; + + num_temp_entities = 0; + + srand ((int) (cl.time * 1000)); //johnfitz -- freeze beams when paused + +// update lightning + for (i=0, b=cl_beams ; i< MAX_BEAMS ; i++, b++) + { + if (!b->model || b->endtime < cl.time) + continue; + + // if coming from the player, update the start position + if (b->entity == cl.viewentity) + { + VectorCopy (cl_entities[cl.viewentity].origin, b->start); + } + + // calculate pitch and yaw + VectorSubtract (b->end, b->start, dist); + + if (dist[1] == 0 && dist[0] == 0) + { + yaw = 0; + if (dist[2] > 0) + pitch = 90; + else + pitch = 270; + } + else + { + yaw = (int) (atan2(dist[1], dist[0]) * 180 / M_PI); + if (yaw < 0) + yaw += 360; + + forward = sqrt (dist[0]*dist[0] + dist[1]*dist[1]); + pitch = (int) (atan2(dist[2], forward) * 180 / M_PI); + if (pitch < 0) + pitch += 360; + } + + // add new entities for the lightning + VectorCopy (b->start, org); + d = VectorNormalize(dist); + while (d > 0) + { + ent = CL_NewTempEntity (); + if (!ent) + return; + VectorCopy (org, ent->origin); + ent->model = b->model; + ent->angles[0] = pitch; + ent->angles[1] = yaw; + ent->angles[2] = rand()%360; + + //johnfitz -- use j instead of using i twice, so we don't corrupt memory + for (j=0 ; j<3 ; j++) + org[j] += dist[j]*30; + d -= 30; + } + } +} diff --git a/quakespasm/Quake/client.h b/quakespasm/Quake/client.h new file mode 100644 index 00000000..ff217d39 --- /dev/null +++ b/quakespasm/Quake/client.h @@ -0,0 +1,369 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// client.h + +typedef struct +{ + vec3_t viewangles; + +// intended velocities + float forwardmove; + float sidemove; + float upmove; +} usercmd_t; + +typedef struct +{ + int length; + char map[MAX_STYLESTRING]; + char average; //johnfitz + char peak; //johnfitz +} lightstyle_t; + +typedef struct +{ + char name[MAX_SCOREBOARDNAME]; + float entertime; + int frags; + int colors; // two 4 bit fields + byte translations[VID_GRADES*256]; +} scoreboard_t; + +typedef struct +{ + int destcolor[3]; + int percent; // 0-256 +} cshift_t; + +#define CSHIFT_CONTENTS 0 +#define CSHIFT_DAMAGE 1 +#define CSHIFT_BONUS 2 +#define CSHIFT_POWERUP 3 +#define NUM_CSHIFTS 4 + +#define NAME_LENGTH 64 + + +// +// client_state_t should hold all pieces of the client state +// + +#define SIGNONS 4 // signon messages to receive before connected + +#define MAX_DLIGHTS 64 //johnfitz -- was 32 +typedef struct +{ + vec3_t origin; + float radius; + float die; // stop lighting after this time + float decay; // drop this each second + float minlight; // don't add when contributing less + int key; + vec3_t color; //johnfitz -- lit support via lordhavoc +} dlight_t; + + +#define MAX_BEAMS 32 //johnfitz -- was 24 +typedef struct +{ + int entity; + struct model_s *model; + float endtime; + vec3_t start, end; +} beam_t; + +#define MAX_EFRAGS 2048 //johnfitz -- was 640 + +#define MAX_MAPSTRING 2048 +#define MAX_DEMOS 8 +#define MAX_DEMONAME 16 + +typedef enum { +ca_dedicated, // a dedicated server with no ability to start a client +ca_disconnected, // full screen console with no connection +ca_connected // valid netcon, talking to a server +} cactive_t; + +// +// the client_static_t structure is persistant through an arbitrary number +// of server connections +// +typedef struct +{ + cactive_t state; + +// personalization data sent to server + char mapstring[MAX_QPATH]; + char spawnparms[MAX_MAPSTRING]; // to restart a level + +// demo loop control + int demonum; // -1 = don't play demos + char demos[MAX_DEMOS][MAX_DEMONAME]; // when not playing + +// demo recording info must be here, because record is started before +// entering a map (and clearing client_state_t) + qboolean demorecording; + qboolean demoplayback; + qboolean timedemo; + int forcetrack; // -1 = use normal cd track + FILE *demofile; + int td_lastframe; // to meter out one message a frame + int td_startframe; // host_framecount at start + float td_starttime; // realtime at second frame of timedemo + + +// connection information + int signon; // 0 to SIGNONS + struct qsocket_s *netcon; + sizebuf_t message; // writing buffer to send to server + +} client_static_t; + +extern client_static_t cls; + +// +// the client_state_t structure is wiped completely at every +// server signon +// +typedef struct +{ + int movemessages; // since connecting to this server + // throw out the first couple, so the player + // doesn't accidentally do something the + // first frame + usercmd_t cmd; // last command sent to the server + +// information for local display + int stats[MAX_CL_STATS]; // health, etc + int items; // inventory bit flags + float item_gettime[32]; // cl.time of aquiring item, for blinking + float faceanimtime; // use anim frame if cl.time < this + + cshift_t cshifts[NUM_CSHIFTS]; // color shifts for damage, powerups + cshift_t prev_cshifts[NUM_CSHIFTS]; // and content types + +// the client maintains its own idea of view angles, which are +// sent to the server each frame. The server sets punchangle when +// the view is temporarliy offset, and an angle reset commands at the start +// of each level and after teleporting. + vec3_t mviewangles[2]; // during demo playback viewangles is lerped + // between these + vec3_t viewangles; + + vec3_t mvelocity[2]; // update by server, used for lean+bob + // (0 is newest) + vec3_t velocity; // lerped between mvelocity[0] and [1] + + vec3_t punchangle; // temporary offset + +// pitch drifting vars + float idealpitch; + float pitchvel; + qboolean nodrift; + float driftmove; + double laststop; + + float viewheight; + float crouch; // local amount for smoothing stepups + + qboolean paused; // send over by server + qboolean onground; + qboolean inwater; + + int intermission; // don't change view angle, full screen, etc + int completed_time; // latched at intermission start + + double mtime[2]; // the timestamp of last two messages + double time; // clients view of time, should be between + // servertime and oldservertime to generate + // a lerp point for other data + double oldtime; // previous cl.time, time-oldtime is used + // to decay light values and smooth step ups + + + float last_received_message; // (realtime) for net trouble icon + +// +// information that is static for the entire time connected to a server +// + struct model_s *model_precache[MAX_MODELS]; + struct sfx_s *sound_precache[MAX_SOUNDS]; + + char levelname[128]; // for display on solo scoreboard //johnfitz -- was 40. + int viewentity; // cl_entitites[cl.viewentity] = player + int maxclients; + int gametype; + +// refresh related state + struct model_s *worldmodel; // cl_entitites[0].model + struct efrag_s *free_efrags; + int num_entities; // held in cl_entities array + int num_statics; // held in cl_staticentities array + entity_t viewent; // the gun model + + int cdtrack, looptrack; // cd audio + +// frag scoreboard + scoreboard_t *scores; // [cl.maxclients] + + unsigned protocol; //johnfitz +} client_state_t; + + +// +// cvars +// +extern cvar_t cl_name; +extern cvar_t cl_color; + +extern cvar_t cl_upspeed; +extern cvar_t cl_forwardspeed; +extern cvar_t cl_backspeed; +extern cvar_t cl_sidespeed; + +extern cvar_t cl_movespeedkey; + +extern cvar_t cl_yawspeed; +extern cvar_t cl_pitchspeed; + +extern cvar_t cl_anglespeedkey; + +extern cvar_t cl_autofire; + +extern cvar_t cl_shownet; +extern cvar_t cl_nolerp; + +extern cvar_t cl_pitchdriftspeed; +extern cvar_t lookspring; +extern cvar_t lookstrafe; +extern cvar_t sensitivity; + +extern cvar_t m_pitch; +extern cvar_t m_yaw; +extern cvar_t m_forward; +extern cvar_t m_side; + + +#define MAX_TEMP_ENTITIES 256 //johnfitz -- was 64 +#define MAX_STATIC_ENTITIES 512 //johnfitz -- was 128 +#define MAX_VISEDICTS 1024 //johnfitz -- was 256 + +extern client_state_t cl; + +// FIXME, allocate dynamically +extern efrag_t cl_efrags[MAX_EFRAGS]; +extern entity_t cl_static_entities[MAX_STATIC_ENTITIES]; +extern lightstyle_t cl_lightstyle[MAX_LIGHTSTYLES]; +extern dlight_t cl_dlights[MAX_DLIGHTS]; +extern entity_t cl_temp_entities[MAX_TEMP_ENTITIES]; +extern beam_t cl_beams[MAX_BEAMS]; +extern entity_t *cl_visedicts[MAX_VISEDICTS]; +extern int cl_numvisedicts; + +extern entity_t *cl_entities; //johnfitz -- was a static array, now on hunk +extern int cl_max_edicts; //johnfitz -- only changes when new map loads + +//============================================================================= + +// +// cl_main +// +dlight_t *CL_AllocDlight (int key); +void CL_DecayLights (void); + +void CL_Init (void); + +void CL_EstablishConnection (char *host); +void CL_Signon1 (void); +void CL_Signon2 (void); +void CL_Signon3 (void); +void CL_Signon4 (void); + +void CL_Disconnect (void); +void CL_Disconnect_f (void); +void CL_NextDemo (void); + +// +// cl_input +// +typedef struct +{ + int down[2]; // key nums holding it down + int state; // low bit is down state +} kbutton_t; + +extern kbutton_t in_mlook, in_klook; +extern kbutton_t in_strafe; +extern kbutton_t in_speed; + +void CL_InitInput (void); +void CL_SendCmd (void); +void CL_SendMove (usercmd_t *cmd); + +void CL_ParseTEnt (void); +void CL_UpdateTEnts (void); + +void CL_ClearState (void); + + +int CL_ReadFromServer (void); +void CL_WriteToServer (usercmd_t *cmd); +void CL_BaseMove (usercmd_t *cmd); + + +float CL_KeyState (kbutton_t *key); +char *Key_KeynumToString (int keynum); + +// +// cl_demo.c +// +void CL_StopPlayback (void); +int CL_GetMessage (void); + +void CL_Stop_f (void); +void CL_Record_f (void); +void CL_PlayDemo_f (void); +void CL_TimeDemo_f (void); + +// +// cl_parse.c +// +void CL_ParseServerMessage (void); +void CL_NewTranslation (int slot); + +// +// view +// +void V_StartPitchDrift (void); +void V_StopPitchDrift (void); + +void V_RenderView (void); +//void V_UpdatePalette (void); //johnfitz +void V_Register (void); +void V_ParseDamage (void); +void V_SetContentsColor (int contents); + + +// +// cl_tent +// +void CL_InitTEnts (void); +void CL_SignonReply (void); diff --git a/quakespasm/Quake/cmd.c b/quakespasm/Quake/cmd.c new file mode 100644 index 00000000..4115638f --- /dev/null +++ b/quakespasm/Quake/cmd.c @@ -0,0 +1,797 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 -- Quake script command processing module + +#include "quakedef.h" + +void Cmd_ForwardToServer (void); + +#define MAX_ALIAS_NAME 32 + +#define CMDLINE_LENGTH 256 //johnfitz -- mirrored in common.c + +typedef struct cmdalias_s +{ + struct cmdalias_s *next; + char name[MAX_ALIAS_NAME]; + char *value; +} cmdalias_t; + +cmdalias_t *cmd_alias; + +int trashtest; +int *trashspot; + +qboolean cmd_wait; + +//============================================================================= + +/* +============ +Cmd_Wait_f + +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" +============ +*/ +void Cmd_Wait_f (void) +{ + cmd_wait = true; +} + +/* +============================================================================= + + COMMAND BUFFER + +============================================================================= +*/ + +sizebuf_t cmd_text; + +/* +============ +Cbuf_Init +============ +*/ +void Cbuf_Init (void) +{ + SZ_Alloc (&cmd_text, 8192); // space for commands and script files +} + + +/* +============ +Cbuf_AddText + +Adds command text at the end of the buffer +============ +*/ +void Cbuf_AddText (char *text) +{ + int l; + + l = Q_strlen (text); + + if (cmd_text.cursize + l >= cmd_text.maxsize) + { + Con_Printf ("Cbuf_AddText: overflow\n"); + return; + } + + SZ_Write (&cmd_text, text, Q_strlen (text)); +} + + +/* +============ +Cbuf_InsertText + +Adds command text immediately after the current command +Adds a \n to the text +FIXME: actually change the command buffer to do less copying +============ +*/ +void Cbuf_InsertText (char *text) +{ + char *temp; + int templen; + +// copy off any commands still remaining in the exec buffer + templen = cmd_text.cursize; + if (templen) + { + temp = Z_Malloc (templen); + Q_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); + } +} + +/* +============ +Cbuf_Execute +============ +*/ +void Cbuf_Execute (void) +{ + int i; + char *text; + char line[1024]; + int quotes; + + 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') + break; + } + + + memcpy (line, text, i); + line[i] = 0; + +// 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; + Q_memcpy (text, text+i, cmd_text.cursize); + } + +// execute the command line + Cmd_ExecuteString (line, src_command); + + if (cmd_wait) + { // skip out while text still remains in buffer, leaving it + // for next frame + cmd_wait = false; + break; + } + } +} + +/* +============================================================================== + + SCRIPT COMMANDS + +============================================================================== +*/ + +/* +=============== +Cmd_StuffCmds_f -- johnfitz -- rewritten to read the "cmdline" cvar, for use with dynamic mod loading + +Adds command line parameters as script statements +Commands lead with a +, and continue until a - or another + +quake +prog jctest.qp +cmd amlev1 +quake -nosound +cmd amlev1 +=============== +*/ +void Cmd_StuffCmds_f (void) +{ + extern cvar_t cmdline; + char cmds[CMDLINE_LENGTH]; + int i, j, plus; + + plus = true; + j = 0; + for (i=0; cmdline.string[i]; i++) + { + if (cmdline.string[i] == '+') + { + plus = true; + if (j > 0) + { + cmds[j-1] = ';'; + cmds[j++] = ' '; + } + } + else if (cmdline.string[i] == '-' && + (i==0 || cmdline.string[i-1] == ' ')) //johnfitz -- allow hypenated map names with +map + plus = false; + else if (plus) + cmds[j++] = cmdline.string[i]; + } + cmds[j] = 0; + + Cbuf_InsertText (cmds); +} + + +/* +=============== +Cmd_Exec_f +=============== +*/ +void Cmd_Exec_f (void) +{ + char *f; + int mark; + + if (Cmd_Argc () != 2) + { + Con_Printf ("exec : execute a script file\n"); + return; + } + + mark = Hunk_LowMark (); + f = (char *)COM_LoadHunkFile (Cmd_Argv(1)); + if (!f) + { + Con_Printf ("couldn't exec %s\n",Cmd_Argv(1)); + return; + } + Con_Printf ("execing %s\n",Cmd_Argv(1)); + + Cbuf_InsertText (f); + Hunk_FreeToLowMark (mark); +} + + +/* +=============== +Cmd_Echo_f + +Just prints the rest of the line to the console +=============== +*/ +void Cmd_Echo_f (void) +{ + int i; + + for (i=1 ; inext, i++) + Con_SafePrintf (" %s: %s", a->name, a->value); + if (i) + Con_SafePrintf ("%i alias command(s)\n", i); + else + Con_SafePrintf ("no alias commands found\n"); + break; + case 2: //output current alias string + for (a = cmd_alias ; a ; a=a->next) + if (!strcmp(Cmd_Argv(1), a->name)) + Con_Printf (" %s: %s", a->name, a->value); + break; + default: //set alias string + s = Cmd_Argv(1); + if (strlen(s) >= MAX_ALIAS_NAME) + { + Con_Printf ("Alias name is too long\n"); + return; + } + + // if the alias allready exists, reuse it + for (a = cmd_alias ; a ; a=a->next) + { + if (!strcmp(s, a->name)) + { + Z_Free (a->value); + break; + } + } + + if (!a) + { + a = Z_Malloc (sizeof(cmdalias_t)); + a->next = cmd_alias; + cmd_alias = a; + } + strcpy (a->name, s); + + // copy the rest of the command line + cmd[0] = 0; // start out with a null string + c = Cmd_Argc(); + for (i=2 ; i< c ; i++) + { + strcat (cmd, Cmd_Argv(i)); + if (i != c) + strcat (cmd, " "); + } + strcat (cmd, "\n"); + + a->value = CopyString (cmd); + break; + } +} + +/* +=============== +Cmd_Unalias_f -- johnfitz +=============== +*/ +void Cmd_Unalias_f (void) +{ + cmdalias_t *a, *prev; + + switch (Cmd_Argc()) + { + default: + case 1: + Con_Printf("unalias : delete alias\n"); + break; + case 2: + for (prev = a = cmd_alias; a; a = a->next) + { + if (!strcmp(Cmd_Argv(1), a->name)) + { + prev->next = a->next; + Z_Free (a->value); + Z_Free (a); + prev = a; + return; + } + prev = a; + } + break; + } +} + +/* +=============== +Cmd_Unaliasall_f -- johnfitz +=============== +*/ +void Cmd_Unaliasall_f (void) +{ + cmdalias_t *blah; + + while (cmd_alias) + { + blah = cmd_alias->next; + Z_Free(cmd_alias->value); + Z_Free(cmd_alias); + cmd_alias = blah; + } +} + +/* +============================================================================= + + COMMAND EXECUTION + +============================================================================= +*/ + +typedef struct cmd_function_s +{ + struct cmd_function_s *next; + char *name; + xcommand_t function; +} cmd_function_t; + + +#define MAX_ARGS 80 + +static int cmd_argc; +static char *cmd_argv[MAX_ARGS]; +static char *cmd_null_string = ""; +static char *cmd_args = NULL; + +cmd_source_t cmd_source; + +//johnfitz -- better tab completion +//static cmd_function_t *cmd_functions; // possible commands to execute +cmd_function_t *cmd_functions; // possible commands to execute +//johnfitz + +/* +============ +Cmd_List_f -- johnfitz +============ +*/ +void Cmd_List_f (void) +{ + cmd_function_t *cmd; + char *partial; + int len, count; + + if (Cmd_Argc() > 1) + { + partial = Cmd_Argv (1); + len = Q_strlen(partial); + } + else + { + partial = NULL; + len = 0; + } + + count=0; + for (cmd=cmd_functions ; cmd ; cmd=cmd->next) + { + if (partial && Q_strncmp (partial,cmd->name, len)) + { + continue; + } + Con_SafePrintf (" %s\n", cmd->name); + count++; + } + + Con_SafePrintf ("%i commands", count); + if (partial) + { + Con_SafePrintf (" beginning with \"%s\"", partial); + } + Con_SafePrintf ("\n"); +} + +/* +============ +Cmd_Init +============ +*/ +void Cmd_Init (void) +{ + Cmd_AddCommand ("cmdlist", Cmd_List_f); //johnfitz + Cmd_AddCommand ("unalias", Cmd_Unalias_f); //johnfitz + Cmd_AddCommand ("unaliasall", Cmd_Unaliasall_f); //johnfitz + + Cmd_AddCommand ("stuffcmds",Cmd_StuffCmds_f); + Cmd_AddCommand ("exec",Cmd_Exec_f); + Cmd_AddCommand ("echo",Cmd_Echo_f); + Cmd_AddCommand ("alias",Cmd_Alias_f); + Cmd_AddCommand ("cmd", Cmd_ForwardToServer); + Cmd_AddCommand ("wait", Cmd_Wait_f); +} + +/* +============ +Cmd_Argc +============ +*/ +int Cmd_Argc (void) +{ + return cmd_argc; +} + +/* +============ +Cmd_Argv +============ +*/ +char *Cmd_Argv (int arg) +{ + if ( (unsigned)arg >= cmd_argc ) + return cmd_null_string; + return cmd_argv[arg]; +} + +/* +============ +Cmd_Args +============ +*/ +char *Cmd_Args (void) +{ + return cmd_args; +} + + +/* +============ +Cmd_TokenizeString + +Parses the given string into command line tokens. +============ +*/ +void Cmd_TokenizeString (char *text) +{ + int i; + +// clear the args from the last string + for (i=0 ; inext) + { + if (!Q_strcmp (cmd_name, cmd->name)) + { + Con_Printf ("Cmd_AddCommand: %s already defined\n", cmd_name); + return; + } + } + + cmd = Hunk_Alloc (sizeof(cmd_function_t)); + cmd->name = cmd_name; + cmd->function = function; + + //johnfitz -- insert each entry in alphabetical order + if (cmd_functions == NULL || strcmp(cmd->name, cmd_functions->name) < 0) //insert at front + { + cmd->next = cmd_functions; + cmd_functions = cmd; + } + else //insert later + { + prev = cmd_functions; + cursor = cmd_functions->next; + while ((cursor != NULL) && (strcmp(cmd->name, cursor->name) > 0)) + { + prev = cursor; + cursor = cursor->next; + } + cmd->next = prev->next; + prev->next = cmd; + } + //johnfitz +} + +/* +============ +Cmd_Exists +============ +*/ +qboolean Cmd_Exists (char *cmd_name) +{ + cmd_function_t *cmd; + + for (cmd=cmd_functions ; cmd ; cmd=cmd->next) + { + if (!Q_strcmp (cmd_name,cmd->name)) + return true; + } + + return false; +} + + + +/* +============ +Cmd_CompleteCommand +============ +*/ +char *Cmd_CompleteCommand (char *partial) +{ + cmd_function_t *cmd; + int len; + + len = Q_strlen(partial); + + if (!len) + return NULL; + +// check functions + for (cmd=cmd_functions ; cmd ; cmd=cmd->next) + if (!Q_strncmp (partial,cmd->name, len)) + return cmd->name; + + return NULL; +} + +/* +============ +Cmd_ExecuteString + +A complete command line has been parsed, so try to execute it +FIXME: lookupnoadd the token to speed search? +============ +*/ +void Cmd_ExecuteString (char *text, cmd_source_t src) +{ + cmd_function_t *cmd; + cmdalias_t *a; + + cmd_source = src; + Cmd_TokenizeString (text); + +// execute the command line + if (!Cmd_Argc()) + return; // no tokens + +// check functions + for (cmd=cmd_functions ; cmd ; cmd=cmd->next) + { + if (!Q_strcasecmp (cmd_argv[0],cmd->name)) + { + cmd->function (); + return; + } + } + +// check alias + for (a=cmd_alias ; a ; a=a->next) + { + if (!Q_strcasecmp (cmd_argv[0], a->name)) + { + Cbuf_InsertText (a->value); + return; + } + } + +// check cvars + if (!Cvar_Command ()) + Con_Printf ("Unknown command \"%s\"\n", Cmd_Argv(0)); + +} + + +/* +=================== +Cmd_ForwardToServer + +Sends the entire command line over to the server +=================== +*/ +void Cmd_ForwardToServer (void) +{ + if (cls.state != ca_connected) + { + Con_Printf ("Can't \"%s\", not connected\n", Cmd_Argv(0)); + return; + } + + if (cls.demoplayback) + return; // not really connected + + MSG_WriteByte (&cls.message, clc_stringcmd); + if (Q_strcasecmp(Cmd_Argv(0), "cmd") != 0) + { + SZ_Print (&cls.message, Cmd_Argv(0)); + SZ_Print (&cls.message, " "); + } + if (Cmd_Argc() > 1) + SZ_Print (&cls.message, Cmd_Args()); + else + SZ_Print (&cls.message, "\n"); +} + + +/* +================ +Cmd_CheckParm + +Returns the position (1 to argc-1) in the command's argument list +where the given parameter apears, or 0 if not present +================ +*/ + +int Cmd_CheckParm (char *parm) +{ + int i; + + if (!parm) + Sys_Error ("Cmd_CheckParm: NULL"); + + for (i = 1; i < Cmd_Argc (); i++) + if (! Q_strcasecmp (parm, Cmd_Argv (i))) + return i; + + return 0; +} diff --git a/quakespasm/Quake/cmd.h b/quakespasm/Quake/cmd.h new file mode 100644 index 00000000..a495c633 --- /dev/null +++ b/quakespasm/Quake/cmd.h @@ -0,0 +1,121 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 buffer and command execution + +//=========================================================================== + +/* + +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 quake.rc\n"); Cbuf_Execute (); + +*/ + +void Cbuf_Init (void); +// allocates an initial text buffer that will grow as needed + +void Cbuf_AddText (char *text); +// as new commands are generated from the console or keybindings, +// the text is added to the end of the command buffer. + +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. + +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! + +//=========================================================================== + +/* + +Command execution takes a null terminated string, breaks it into tokens, +then searches for a command or variable that matches the first token. + +Commands can come from three sources, but the handler functions may choose +to dissallow the action or forward it to a remote server if the source is +not apropriate. + +*/ + +typedef void (*xcommand_t) (void); + +typedef enum +{ + src_client, // came in over a net connection as a clc_stringcmd + // host_client will be valid during this state. + src_command // from the command buffer +} cmd_source_t; + +extern cmd_source_t cmd_source; + +void Cmd_Init (void); + +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 + +qboolean Cmd_Exists (char *cmd_name); +// used by the cvar code to check for cvar / command name overlap + +char *Cmd_CompleteCommand (char *partial); +// attempts to match a partial command for automatic command line completion +// returns NULL if nothing fits + +int Cmd_Argc (void); +char *Cmd_Argv (int arg); +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 allways safe. + +int Cmd_CheckParm (char *parm); +// Returns the position (1 to argc-1) in the command's argument list +// where the given parameter apears, or 0 if not present + +void Cmd_TokenizeString (char *text); +// Takes a null terminated string. Does not need to be /n terminated. +// breaks the string up into arg tokens. + +void Cmd_ExecuteString (char *text, cmd_source_t src); +// Parses a single line of text into arguments and tries to execute it. +// The text can come from the command buffer, a remote client, or stdin. + +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. + +void Cmd_Print (char *text); +// used by command functions to send output to either the graphics console or +// passed as a print message to the client + diff --git a/quakespasm/Quake/common.c b/quakespasm/Quake/common.c new file mode 100644 index 00000000..1da41e35 --- /dev/null +++ b/quakespasm/Quake/common.c @@ -0,0 +1,1886 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 + +#include "quakedef.h" + +#define NUM_SAFE_ARGVS 7 + +static char *largv[MAX_NUM_ARGVS + NUM_SAFE_ARGVS + 1]; +static char *argvdummy = " "; + +static char *safeargvs[NUM_SAFE_ARGVS] = + {"-stdvid", "-nolan", "-nosound", "-nocdaudio", "-nojoy", "-nomouse", "-dibonly"}; + +cvar_t registered = {"registered","0"}; +cvar_t cmdline = {"cmdline","", false, true}; + +qboolean com_modified; // set true if using non-id files + +int com_nummissionpacks; //johnfitz + +qboolean proghack; + +int static_registered = 1; // only for startup check, then set + +qboolean msg_suppress_1 = 0; + +void COM_InitFilesystem (void); + +// if a packfile directory differs from this, it is assumed to be hacked +#define PAK0_COUNT 339 +#define PAK0_CRC 32981 + +char com_token[1024]; +int com_argc; +char **com_argv; + +#define CMDLINE_LENGTH 256 //johnfitz -- mirrored in cmd.c +char com_cmdline[CMDLINE_LENGTH]; + +qboolean standard_quake = true, rogue, hipnotic; + +// this graphic needs to be in the pak file to use registered features +unsigned short pop[] = +{ + 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 +,0x0000,0x0000,0x6600,0x0000,0x0000,0x0000,0x6600,0x0000 +,0x0000,0x0066,0x0000,0x0000,0x0000,0x0000,0x0067,0x0000 +,0x0000,0x6665,0x0000,0x0000,0x0000,0x0000,0x0065,0x6600 +,0x0063,0x6561,0x0000,0x0000,0x0000,0x0000,0x0061,0x6563 +,0x0064,0x6561,0x0000,0x0000,0x0000,0x0000,0x0061,0x6564 +,0x0064,0x6564,0x0000,0x6469,0x6969,0x6400,0x0064,0x6564 +,0x0063,0x6568,0x6200,0x0064,0x6864,0x0000,0x6268,0x6563 +,0x0000,0x6567,0x6963,0x0064,0x6764,0x0063,0x6967,0x6500 +,0x0000,0x6266,0x6769,0x6a68,0x6768,0x6a69,0x6766,0x6200 +,0x0000,0x0062,0x6566,0x6666,0x6666,0x6666,0x6562,0x0000 +,0x0000,0x0000,0x0062,0x6364,0x6664,0x6362,0x0000,0x0000 +,0x0000,0x0000,0x0000,0x0062,0x6662,0x0000,0x0000,0x0000 +,0x0000,0x0000,0x0000,0x0061,0x6661,0x0000,0x0000,0x0000 +,0x0000,0x0000,0x0000,0x0000,0x6500,0x0000,0x0000,0x0000 +,0x0000,0x0000,0x0000,0x0000,0x6400,0x0000,0x0000,0x0000 +}; + +/* + + +All of Quake's data access is through a hierchal 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 quake.exe 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 +filesystem initialization. + +The "game directory" is the first tree on the search path and directory that all +generated files (savegames, screenshots, 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 quake is executing. This is a precacution +against having a malicious server instruct clients to write files over areas they +shouldn't. + +The "cache directory" is only used during development to save network bandwidth, +especially over ISDN / T1 lines. If there is a cache directory specified, when +a file is found by the normal search path, it will be mirrored into the cache +directory, then opened there. + +FIXME: +The file "parms.txt" will be read out of the game directory and appended to the +current command line arguments to allow different games to initialize startup +parms differently. This could be used to add a "-sspeed 22050" for the high +quality sound edition. Because they are added at the end, they will not +override an explicit setting on the original command line. + +*/ + +//============================================================================ + + +// ClearLink is used for new headnodes +void ClearLink (link_t *l) +{ + l->prev = l->next = l; +} + +void RemoveLink (link_t *l) +{ + l->next->prev = l->prev; + l->prev->next = l->next; +} + +void InsertLinkBefore (link_t *l, link_t *before) +{ + l->next = before; + l->prev = before->prev; + l->prev->next = l; + l->next->prev = l; +} +void InsertLinkAfter (link_t *l, link_t *after) +{ + l->next = after->next; + l->prev = after; + l->prev->next = l; + l->next->prev = l; +} + +/* +============================================================================ + + LIBRARY REPLACEMENT FUNCTIONS + +============================================================================ +*/ + +void Q_memset (void *dest, int fill, int count) +{ + int i; + + if ( (((long)dest | count) & 3) == 0) + { + count >>= 2; + fill = fill | (fill<<8) | (fill<<16) | (fill<<24); + for (i=0 ; i>=2; + for (i=0 ; i= 'a' && c1 <= 'z') + c1 -= ('a' - 'A'); + if (c2 >= 'a' && c2 <= 'z') + c2 -= ('a' - 'A'); + if (c1 != c2) + return -1; // strings not equal + } + if (!c1) + return 0; // strings are equal +// s1++; +// s2++; + } + + return -1; +} + +int Q_strcasecmp (char *s1, char *s2) +{ + return Q_strncasecmp (s1, s2, 99999); +} + +int Q_atoi (char *str) +{ + int val; + int sign; + int c; + + if (*str == '-') + { + sign = -1; + str++; + } + else + sign = 1; + + val = 0; + +// +// check for hex +// + if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X') ) + { + str += 2; + while (1) + { + c = *str++; + if (c >= '0' && c <= '9') + val = (val<<4) + c - '0'; + else if (c >= 'a' && c <= 'f') + val = (val<<4) + c - 'a' + 10; + else if (c >= 'A' && c <= 'F') + val = (val<<4) + c - 'A' + 10; + else + return val*sign; + } + } + +// +// check for character +// + if (str[0] == '\'') + { + return sign * str[1]; + } + +// +// assume decimal +// + while (1) + { + c = *str++; + if (c <'0' || c > '9') + return val*sign; + val = val*10 + c - '0'; + } + + return 0; +} + + +float Q_atof (char *str) +{ + double val; + int sign; + int c; + int decimal, total; + + if (*str == '-') + { + sign = -1; + str++; + } + else + sign = 1; + + val = 0; + +// +// check for hex +// + if (str[0] == '0' && (str[1] == 'x' || str[1] == 'X') ) + { + str += 2; + while (1) + { + c = *str++; + if (c >= '0' && c <= '9') + val = (val*16) + c - '0'; + else if (c >= 'a' && c <= 'f') + val = (val*16) + c - 'a' + 10; + else if (c >= 'A' && c <= 'F') + val = (val*16) + c - 'A' + 10; + else + return val*sign; + } + } + +// +// check for character +// + if (str[0] == '\'') + { + return sign * str[1]; + } + +// +// assume decimal +// + decimal = -1; + total = 0; + while (1) + { + c = *str++; + if (c == '.') + { + decimal = total; + continue; + } + if (c <'0' || c > '9') + break; + val = val*10 + c - '0'; + total++; + } + + if (decimal == -1) + return val*sign; + while (total > decimal) + { + val /= 10; + total--; + } + + return val*sign; +} + +/* +============================================================================ + + BYTE ORDER FUNCTIONS + +============================================================================ +*/ + +qboolean bigendien; + +short (*BigShort) (short l); +short (*LittleShort) (short l); +int (*BigLong) (int l); +int (*LittleLong) (int l); +float (*BigFloat) (float l); +float (*LittleFloat) (float l); + +short ShortSwap (short l) +{ + byte b1,b2; + + b1 = l&255; + b2 = (l>>8)&255; + + return (b1<<8) + b2; +} + +short ShortNoSwap (short l) +{ + return l; +} + +int LongSwap (int l) +{ + byte b1,b2,b3,b4; + + b1 = l&255; + b2 = (l>>8)&255; + b3 = (l>>16)&255; + b4 = (l>>24)&255; + + return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4; +} + +int LongNoSwap (int l) +{ + return l; +} + +float FloatSwap (float f) +{ + union + { + float f; + byte 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; +} + +float FloatNoSwap (float f) +{ + return f; +} + +/* +============================================================================== + + MESSAGE IO FUNCTIONS + +Handles byte ordering and avoids alignment errors +============================================================================== +*/ + +// +// writing functions +// + +void MSG_WriteChar (sizebuf_t *sb, int c) +{ + byte *buf; + +#ifdef PARANOID + if (c < -128 || c > 127) + Sys_Error ("MSG_WriteChar: range error"); +#endif + + buf = SZ_GetSpace (sb, 1); + buf[0] = c; +} + +void MSG_WriteByte (sizebuf_t *sb, int c) +{ + byte *buf; + +#ifdef PARANOID + if (c < 0 || c > 255) + Sys_Error ("MSG_WriteByte: range error"); +#endif + + buf = SZ_GetSpace (sb, 1); + buf[0] = c; +} + +void MSG_WriteShort (sizebuf_t *sb, int c) +{ + byte *buf; + +#ifdef PARANOID + if (c < ((short)0x8000) || c > (short)0x7fff) + Sys_Error ("MSG_WriteShort: range error"); +#endif + + buf = SZ_GetSpace (sb, 2); + buf[0] = c&0xff; + buf[1] = c>>8; +} + +void MSG_WriteLong (sizebuf_t *sb, int c) +{ + byte *buf; + + buf = SZ_GetSpace (sb, 4); + buf[0] = c&0xff; + buf[1] = (c>>8)&0xff; + buf[2] = (c>>16)&0xff; + buf[3] = c>>24; +} + +void MSG_WriteFloat (sizebuf_t *sb, float f) +{ + union + { + float f; + int l; + } dat; + + + dat.f = f; + dat.l = LittleLong (dat.l); + + SZ_Write (sb, &dat.l, 4); +} + +void MSG_WriteString (sizebuf_t *sb, char *s) +{ + if (!s) + SZ_Write (sb, "", 1); + else + SZ_Write (sb, s, Q_strlen(s)+1); +} + +//johnfitz -- original behavior, 13.3 fixed point coords, max range +-4096 +void MSG_WriteCoord16 (sizebuf_t *sb, float f) +{ + MSG_WriteShort (sb, Q_rint(f*8)); +} + +//johnfitz -- 16.8 fixed point coords, max range +-32768 +void MSG_WriteCoord24 (sizebuf_t *sb, float f) +{ + MSG_WriteShort (sb, f); + MSG_WriteByte (sb, (int)(f*255)%255); +} + +//johnfitz -- 32-bit float coords +void MSG_WriteCoord32f (sizebuf_t *sb, float f) +{ + MSG_WriteFloat (sb, f); +} + +void MSG_WriteCoord (sizebuf_t *sb, float f) +{ + MSG_WriteCoord16 (sb, f); +} + +void MSG_WriteAngle (sizebuf_t *sb, float f) +{ + MSG_WriteByte (sb, Q_rint(f * 256.0 / 360.0) & 255); //johnfitz -- use Q_rint instead of (int) +} + +//johnfitz -- for PROTOCOL_FITZQUAKE +void MSG_WriteAngle16 (sizebuf_t *sb, float f) +{ + MSG_WriteShort (sb, Q_rint(f * 65536.0 / 360.0) & 65535); +} +//johnfitz + +// +// reading functions +// +int msg_readcount; +qboolean msg_badread; + +void MSG_BeginReading (void) +{ + msg_readcount = 0; + msg_badread = false; +} + +// returns -1 and sets msg_badread if no more characters are available +int MSG_ReadChar (void) +{ + int c; + + if (msg_readcount+1 > net_message.cursize) + { + msg_badread = true; + return -1; + } + + c = (signed char)net_message.data[msg_readcount]; + msg_readcount++; + + return c; +} + +int MSG_ReadByte (void) +{ + int c; + + if (msg_readcount+1 > net_message.cursize) + { + msg_badread = true; + return -1; + } + + c = (unsigned char)net_message.data[msg_readcount]; + msg_readcount++; + + return c; +} + +int MSG_ReadShort (void) +{ + int c; + + if (msg_readcount+2 > net_message.cursize) + { + msg_badread = true; + return -1; + } + + c = (short)(net_message.data[msg_readcount] + + (net_message.data[msg_readcount+1]<<8)); + + msg_readcount += 2; + + return c; +} + +int MSG_ReadLong (void) +{ + int c; + + if (msg_readcount+4 > net_message.cursize) + { + msg_badread = true; + return -1; + } + + c = net_message.data[msg_readcount] + + (net_message.data[msg_readcount+1]<<8) + + (net_message.data[msg_readcount+2]<<16) + + (net_message.data[msg_readcount+3]<<24); + + msg_readcount += 4; + + return c; +} + +float MSG_ReadFloat (void) +{ + union + { + byte b[4]; + float f; + int l; + } dat; + + dat.b[0] = net_message.data[msg_readcount]; + dat.b[1] = net_message.data[msg_readcount+1]; + dat.b[2] = net_message.data[msg_readcount+2]; + dat.b[3] = net_message.data[msg_readcount+3]; + msg_readcount += 4; + + dat.l = LittleLong (dat.l); + + return dat.f; +} + +char *MSG_ReadString (void) +{ + static char string[2048]; + int l,c; + + l = 0; + do + { + c = MSG_ReadChar (); + if (c == -1 || c == 0) + break; + string[l] = c; + l++; + } while (l < sizeof(string)-1); + + string[l] = 0; + + return string; +} + +//johnfitz -- original behavior, 13.3 fixed point coords, max range +-4096 +float MSG_ReadCoord16 (void) +{ + return MSG_ReadShort() * (1.0/8); +} + +//johnfitz -- 16.8 fixed point coords, max range +-32768 +float MSG_ReadCoord24 (void) +{ + return MSG_ReadShort() + MSG_ReadByte() * (1.0/255); +} + +//johnfitz -- 32-bit float coords +float MSG_ReadCoord32f (void) +{ + return MSG_ReadFloat(); +} + +float MSG_ReadCoord (void) +{ + return MSG_ReadCoord16(); +} + +float MSG_ReadAngle (void) +{ + return MSG_ReadChar() * (360.0/256); +} + +//johnfitz -- for PROTOCOL_FITZQUAKE +float MSG_ReadAngle16 (void) +{ + return MSG_ReadShort() * (360.0 / 65536); +} +//johnfitz + + + +//=========================================================================== + +void SZ_Alloc (sizebuf_t *buf, int startsize) +{ + if (startsize < 256) + startsize = 256; + buf->data = Hunk_AllocName (startsize, "sizebuf"); + buf->maxsize = startsize; + buf->cursize = 0; +} + + +void SZ_Free (sizebuf_t *buf) +{ +// Z_Free (buf->data); +// buf->data = NULL; +// buf->maxsize = 0; + buf->cursize = 0; +} + +void SZ_Clear (sizebuf_t *buf) +{ + buf->cursize = 0; +} + +void *SZ_GetSpace (sizebuf_t *buf, int length) +{ + void *data; + + if (buf->cursize + length > buf->maxsize) + { + if (!buf->allowoverflow) + Sys_Error ("SZ_GetSpace: overflow without allowoverflow set"); + + if (length > buf->maxsize) + Sys_Error ("SZ_GetSpace: %i is > full buffer size", length); + + buf->overflowed = true; + Con_Printf ("SZ_GetSpace: overflow"); + SZ_Clear (buf); + } + + data = buf->data + buf->cursize; + buf->cursize += length; + + return data; +} + +void SZ_Write (sizebuf_t *buf, void *data, int length) +{ + Q_memcpy (SZ_GetSpace(buf,length),data,length); +} + +void SZ_Print (sizebuf_t *buf, char *data) +{ + int len; + + len = Q_strlen(data)+1; + +// byte * cast to keep VC++ happy + if (buf->data[buf->cursize-1]) + Q_memcpy ((byte *)SZ_GetSpace(buf, len),data,len); // no trailing 0 + else + Q_memcpy ((byte *)SZ_GetSpace(buf, len-1)-1,data,len); // write over trailing 0 +} + + +//============================================================================ + + +/* +============ +COM_SkipPath +============ +*/ +char *COM_SkipPath (char *pathname) +{ + char *last; + + last = pathname; + while (*pathname) + { + if (*pathname=='/') + last = pathname+1; + pathname++; + } + return last; +} + +/* +============ +COM_StripExtension +============ +*/ +void COM_StripExtension (char *in, char *out) +{ + while (*in && *in != '.') + *out++ = *in++; + *out = 0; +} + +/* +============ +COM_FileExtension +============ +*/ +char *COM_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; + return exten; +} + +/* +============ +COM_FileBase +============ +*/ +void COM_FileBase (char *in, char *out) +{ + char *s, *s2; + + s = in + strlen(in) - 1; + + while (s != in && *s != '.') + s--; + + for (s2 = s ; *s2 && *s2 != '/' ; s2--) + ; + + if (s-s2 < 2) + strcpy (out,"?model?"); + else + { + s--; + strncpy (out,s2+1, s-s2); + out[s-s2] = 0; + } +} + + +/* +================== +COM_DefaultExtension +================== +*/ +void COM_DefaultExtension (char *path, char *extension) +{ + char *src; +// +// if path doesn't have a .EXT, append extension +// (extension should include the .) +// + src = path + strlen(path) - 1; + + while (*src != '/' && src != path) + { + if (*src == '.') + return; // it has an extension + src--; + } + + strcat (path, extension); +} + + +/* +============== +COM_Parse + +Parse a token out of a string +============== +*/ +char *COM_Parse (char *data) +{ + int c; + int len; + + len = 0; + com_token[0] = 0; + + if (!data) + return NULL; + +// skip whitespace +skipwhite: + while ( (c = *data) <= ' ') + { + if (c == 0) + return NULL; // end of file; + 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; + return data; + } + com_token[len] = c; + len++; + } + } + +// parse single characters + if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'' || c==':') + { + com_token[len] = c; + len++; + com_token[len] = 0; + return data+1; + } + +// parse a regular word + do + { + com_token[len] = c; + data++; + len++; + c = *data; + if (c=='{' || c=='}'|| c==')'|| c=='(' || c=='\'' || c==':') + break; + } while (c>32); + + com_token[len] = 0; + return data; +} + + +/* +================ +COM_CheckParm + +Returns the position (1 to argc-1) in the program's argument list +where the given parameter apears, or 0 if not present +================ +*/ +int COM_CheckParm (char *parm) +{ + int i; + + for (i=1 ; inext) + { + if (s->pack) + { + Con_Printf ("%s (%i files)\n", s->pack->filename, s->pack->numfiles); + } + else + Con_Printf ("%s\n", s->filename); + } +} + +/* +============ +COM_WriteFile + +The filename will be prefixed by the current game directory +============ +*/ +void COM_WriteFile (char *filename, void *data, int len) +{ + int handle; + char name[MAX_OSPATH]; + + Sys_mkdir (com_gamedir); //johnfitz -- if we've switched to a nonexistant gamedir, create it now so we don't crash + + sprintf (name, "%s/%s", com_gamedir, filename); + + handle = Sys_FileOpenWrite (name); + if (handle == -1) + { + Sys_Printf ("COM_WriteFile: failed on %s\n", name); + return; + } + + Sys_Printf ("COM_WriteFile: %s\n", name); + Sys_FileWrite (handle, data, len); + Sys_FileClose (handle); +} + +/* +============ +COM_CreatePath +============ +*/ +void COM_CreatePath (char *path) +{ + char *ofs; + + for (ofs = path+1 ; *ofs ; ofs++) + { + if (*ofs == '/') + { // create the directory + *ofs = 0; + Sys_mkdir (path); + *ofs = '/'; + } + } +} + +/* +=========== +COM_CopyFile + +Copies a file over from the net to the local cache, creating any directories +needed. This is for the convenience of developers using ISDN from home. +=========== +*/ +void COM_CopyFile (char *netpath, char *cachepath) +{ + int in, out; + int remaining, count; + char buf[4096]; + + remaining = Sys_FileOpenRead (netpath, &in); + COM_CreatePath (cachepath); // create directories up to the cache file + out = Sys_FileOpenWrite (cachepath); + + while (remaining) + { + if (remaining < sizeof(buf)) + count = remaining; + else + count = sizeof(buf); + Sys_FileRead (in, buf, count); + Sys_FileWrite (out, buf, count); + remaining -= count; + } + + Sys_FileClose (in); + Sys_FileClose (out); +} + +/* +=========== +COM_FindFile + +Finds the file in the search path. +Sets com_filesize and one of handle or file +=========== +*/ +int COM_FindFile (char *filename, int *handle, FILE **file) +{ + searchpath_t *search; + char netpath[MAX_OSPATH]; + char cachepath[MAX_OSPATH]; + pack_t *pak; + int i; + int findtime, cachetime; + + if (file && handle) + Sys_Error ("COM_FindFile: both handle and file set"); + if (!file && !handle) + Sys_Error ("COM_FindFile: neither handle or file set"); + +// +// search through the path, one element at a time +// + search = com_searchpaths; + if (proghack) + { // gross hack to use quake 1 progs with quake 2 maps + if (!strcmp(filename, "progs.dat")) + search = search->next; + } + + for ( ; search ; search = search->next) + { + // is the element a pak file? + if (search->pack) + { + // look through all the pak file elements + pak = search->pack; + for (i=0 ; inumfiles ; i++) + if (!strcmp (pak->files[i].name, filename)) + { // found it! + Sys_Printf ("PackFile: %s : %s\n",pak->filename, filename); + if (handle) + { + *handle = pak->handle; + Sys_FileSeek (pak->handle, pak->files[i].filepos); + } + else + { // open a new file on the pakfile + *file = fopen (pak->filename, "rb"); + if (*file) + fseek (*file, pak->files[i].filepos, SEEK_SET); + } + com_filesize = pak->files[i].filelen; + return com_filesize; + } + } + else + { + // check a file in the directory tree + if (!static_registered) + { // if not a registered version, don't ever go beyond base + if ( strchr (filename, '/') || strchr (filename,'\\')) + continue; + } + + sprintf (netpath, "%s/%s",search->filename, filename); + + findtime = Sys_FileTime (netpath); + if (findtime == -1) + continue; + + // see if the file needs to be updated in the cache + if (!com_cachedir[0]) + strcpy (cachepath, netpath); + else + { +#if defined(_WIN32) + if ((strlen(netpath) < 2) || (netpath[1] != ':')) + sprintf (cachepath,"%s%s", com_cachedir, netpath); + else + sprintf (cachepath,"%s%s", com_cachedir, netpath+2); +#else + sprintf (cachepath,"%s%s", com_cachedir, netpath); +#endif + + cachetime = Sys_FileTime (cachepath); + + if (cachetime < findtime) + COM_CopyFile (netpath, cachepath); + strcpy (netpath, cachepath); + } + + Sys_Printf ("FindFile: %s\n",netpath); + com_filesize = Sys_FileOpenRead (netpath, &i); + if (handle) + *handle = i; + else + { + Sys_FileClose (i); + *file = fopen (netpath, "rb"); + } + return com_filesize; + } + + } + + Sys_Printf ("FindFile: can't find %s\n", filename); + + if (handle) + *handle = -1; + else + *file = NULL; + com_filesize = -1; + return -1; +} + + +/* +=========== +COM_OpenFile + +filename never has a leading slash, but may contain directory walks +returns a handle and a length +it may actually be inside a pak file +=========== +*/ +int COM_OpenFile (char *filename, int *handle) +{ + return COM_FindFile (filename, handle, NULL); +} + +/* +=========== +COM_FOpenFile + +If the requested file is inside a packfile, a new FILE * will be opened +into the file. +=========== +*/ +int COM_FOpenFile (char *filename, FILE **file) +{ + return COM_FindFile (filename, NULL, file); +} + +/* +============ +COM_CloseFile + +If it is a pak file handle, don't really close it +============ +*/ +void COM_CloseFile (int h) +{ + searchpath_t *s; + + for (s = com_searchpaths ; s ; s=s->next) + if (s->pack && s->pack->handle == h) + return; + + Sys_FileClose (h); +} + + +/* +============ +COM_LoadFile + +Filename are reletive to the quake directory. +Allways appends a 0 byte. +============ +*/ +cache_user_t *loadcache; +byte *loadbuf; +int loadsize; +byte *COM_LoadFile (char *path, int usehunk) +{ + int h; + byte *buf; + char base[32]; + int len; + + buf = NULL; // quiet compiler warning + +// look for it in the filesystem or pack files + len = COM_OpenFile (path, &h); + if (h == -1) + return NULL; + +// extract the filename base name for hunk tag + COM_FileBase (path, base); + + if (usehunk == 1) + buf = Hunk_AllocName (len+1, base); + else if (usehunk == 2) + buf = Hunk_TempAlloc (len+1); + else if (usehunk == 0) + buf = Z_Malloc (len+1); + else if (usehunk == 3) + buf = Cache_Alloc (loadcache, len+1, base); + else if (usehunk == 4) + { + if (len+1 > loadsize) + buf = Hunk_TempAlloc (len+1); + else + buf = loadbuf; + } + else + Sys_Error ("COM_LoadFile: bad usehunk"); + + if (!buf) + Sys_Error ("COM_LoadFile: not enough space for %s", path); + + ((byte *)buf)[len] = 0; + + Draw_BeginDisc (); + Sys_FileRead (h, buf, len); + COM_CloseFile (h); + + return buf; +} + +byte *COM_LoadHunkFile (char *path) +{ + return COM_LoadFile (path, 1); +} + +byte *COM_LoadTempFile (char *path) +{ + return COM_LoadFile (path, 2); +} + +void COM_LoadCacheFile (char *path, struct cache_user_s *cu) +{ + loadcache = cu; + COM_LoadFile (path, 3); +} + +// uses temp hunk if larger than bufsize +byte *COM_LoadStackFile (char *path, void *buffer, int bufsize) +{ + byte *buf; + + loadbuf = (byte *)buffer; + loadsize = bufsize; + buf = COM_LoadFile (path, 4); + + return buf; +} + +/* +================= +COM_LoadPackFile -- johnfitz -- modified based on topaz's tutorial + +Takes an explicit (not game tree related) path to a pak file. + +Loads the header and directory, adding the files at the beginning +of the list so they override previous pack files. +================= +*/ +pack_t *COM_LoadPackFile (char *packfile) +{ + dpackheader_t header; + int i; + packfile_t *newfiles; + int numpackfiles; + pack_t *pack; + int packhandle; + dpackfile_t info[MAX_FILES_IN_PACK]; + unsigned short crc; + + if (Sys_FileOpenRead (packfile, &packhandle) == -1) + return NULL; + Sys_FileRead (packhandle, (void *)&header, sizeof(header)); + if (header.id[0] != 'P' || header.id[1] != 'A' || header.id[2] != 'C' || header.id[3] != 'K') + Sys_Error ("%s is not a packfile", packfile); + header.dirofs = LittleLong (header.dirofs); + header.dirlen = LittleLong (header.dirlen); + + numpackfiles = header.dirlen / sizeof(dpackfile_t); + + if (numpackfiles > MAX_FILES_IN_PACK) + Sys_Error ("%s has %i files", packfile, numpackfiles); + + if (numpackfiles != PAK0_COUNT) + com_modified = true; // not the original file + + //johnfitz -- dynamic gamedir loading + //Hunk_AllocName (numpackfiles * sizeof(packfile_t), "packfile"); + newfiles = Z_Malloc(numpackfiles * sizeof(packfile_t)); + //johnfitz + + Sys_FileSeek (packhandle, header.dirofs); + Sys_FileRead (packhandle, (void *)info, header.dirlen); + + // crc the directory to check for modifications + CRC_Init (&crc); + for (i = 0; i < header.dirlen ; i++) + CRC_ProcessByte (&crc, ((byte *)info)[i]); + if (crc != PAK0_CRC) + com_modified = true; + + // parse the directory + for (i = 0; i < numpackfiles ; i++) + { + strcpy (newfiles[i].name, info[i].name); + newfiles[i].filepos = LittleLong(info[i].filepos); + newfiles[i].filelen = LittleLong(info[i].filelen); + } + + //johnfitz -- dynamic gamedir loading + //pack = Hunk_Alloc (sizeof (pack_t)); + pack = Z_Malloc (sizeof (pack_t)); + //johnfitz + + strcpy (pack->filename, packfile); + pack->handle = packhandle; + pack->numfiles = numpackfiles; + pack->files = newfiles; + + //Con_Printf ("Added packfile %s (%i files)\n", packfile, numpackfiles); + return pack; +} + +/* +================= +COM_AddGameDirectory -- johnfitz -- modified based on topaz's tutorial +================= +*/ +void COM_AddGameDirectory (char *dir) +{ + int i; + searchpath_t *search; + pack_t *pak; + char pakfile[MAX_OSPATH]; + + strcpy (com_gamedir, dir); + + // add the directory to the search path + search = Z_Malloc(sizeof(searchpath_t)); + strcpy (search->filename, dir); + search->next = com_searchpaths; + com_searchpaths = search; + + // add any pak files in the format pak0.pak pak1.pak, ... + for (i = 0; ; i++) + { + sprintf (pakfile, "%s/pak%i.pak", dir, i); + pak = COM_LoadPackFile (pakfile); + if (!pak) + break; + search = Z_Malloc(sizeof(searchpath_t)); + search->pack = pak; + search->next = com_searchpaths; + com_searchpaths = search; + } +} + +/* +================= +COM_InitFilesystem +================= +*/ +void COM_InitFilesystem () //johnfitz -- modified based on topaz's tutorial +{ + int i, j; + char basedir[MAX_OSPATH]; + searchpath_t *search; + + i = COM_CheckParm ("-basedir"); + if (i && i < com_argc-1) + strcpy (basedir, com_argv[i+1]); + else + strcpy (basedir, host_parms.basedir); + + j = strlen (basedir); + if (j > 0) + { + if ((basedir[j-1] == '\\') || (basedir[j-1] == '/')) + basedir[j-1] = 0; + } + + i = COM_CheckParm ("-cachedir"); + if (i && i < com_argc-1) + { + if (com_argv[i+1][0] == '-') + com_cachedir[0] = 0; + else + strcpy (com_cachedir, com_argv[i+1]); + } + else if (host_parms.cachedir) + strcpy (com_cachedir, host_parms.cachedir); + else + com_cachedir[0] = 0; + + // start up with GAMENAME by default (id1) + COM_AddGameDirectory (va("%s/"GAMENAME, basedir) ); + strcpy (com_gamedir, va("%s/"GAMENAME, basedir)); + + //johnfitz -- track number of mission packs added + //since we don't want to allow the "game" command to strip them away + com_nummissionpacks = 0; + if (COM_CheckParm ("-rogue")) + { + COM_AddGameDirectory (va("%s/rogue", basedir) ); + com_nummissionpacks++; + } + if (COM_CheckParm ("-hipnotic")) + { + COM_AddGameDirectory (va("%s/hipnotic", basedir) ); + com_nummissionpacks++; + } + if (COM_CheckParm ("-quoth")) + { + COM_AddGameDirectory (va("%s/quoth", basedir) ); + com_nummissionpacks++; + } + //johnfitz + + i = COM_CheckParm ("-game"); + if (i && i < com_argc-1) + { + com_modified = true; + COM_AddGameDirectory (va("%s/%s", basedir, com_argv[i+1])); + } + + i = COM_CheckParm ("-path"); + if (i) + { + com_modified = true; + com_searchpaths = NULL; + while (++i < com_argc) + { + if (!com_argv[i] || com_argv[i][0] == '+' || com_argv[i][0] == '-') + break; + search = Hunk_Alloc (sizeof(searchpath_t)); + if (!strcmp(COM_FileExtension(com_argv[i]), "pak") ) + { + search->pack = COM_LoadPackFile (com_argv[i]); + if (!search->pack) + Sys_Error ("Couldn't load packfile: %s", com_argv[i]); + } + else + strcpy (search->filename, com_argv[i]); + search->next = com_searchpaths; + com_searchpaths = search; + } + } + + if (COM_CheckParm ("-proghack")) + proghack = true; +} + + diff --git a/quakespasm/Quake/common.h b/quakespasm/Quake/common.h new file mode 100644 index 00000000..88c85e17 --- /dev/null +++ b/quakespasm/Quake/common.h @@ -0,0 +1,186 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// comndef.h -- general definitions + +#if !defined BYTE_DEFINED +typedef unsigned char byte; +#define BYTE_DEFINED 1 +#endif + +#undef true +#undef false + +typedef enum {false, true} qboolean; + +//============================================================================ + +typedef struct sizebuf_s +{ + qboolean allowoverflow; // if false, do a Sys_Error + qboolean overflowed; // set to true if the buffer size failed + byte *data; + int maxsize; + int cursize; +} sizebuf_t; + +void SZ_Alloc (sizebuf_t *buf, int startsize); +void SZ_Free (sizebuf_t *buf); +void SZ_Clear (sizebuf_t *buf); +void *SZ_GetSpace (sizebuf_t *buf, int length); +void SZ_Write (sizebuf_t *buf, void *data, int length); +void SZ_Print (sizebuf_t *buf, char *data); // strcats onto the sizebuf + +//============================================================================ + +typedef struct link_s +{ + struct link_s *prev, *next; +} link_t; + + +void ClearLink (link_t *l); +void RemoveLink (link_t *l); +void InsertLinkBefore (link_t *l, link_t *before); +void InsertLinkAfter (link_t *l, link_t *after); + +// (type *)STRUCT_FROM_LINK(link_t *link, type, member) +// ent = STRUCT_FROM_LINK(link,entity_t,order) +// FIXME: remove this mess! +#define STRUCT_FROM_LINK(l,t,m) ((t *)((byte *)l - (int)&(((t *)0)->m))) + +//============================================================================ + +#ifndef NULL +#define NULL ((void *)0) +#endif + +#define Q_MAXCHAR ((char)0x7f) +#define Q_MAXSHORT ((short)0x7fff) +#define Q_MAXINT ((int)0x7fffffff) +#define Q_MAXLONG ((int)0x7fffffff) +#define Q_MAXFLOAT ((int)0x7fffffff) + +#define Q_MINCHAR ((char)0x80) +#define Q_MINSHORT ((short)0x8000) +#define Q_MININT ((int)0x80000000) +#define Q_MINLONG ((int)0x80000000) +#define Q_MINFLOAT ((int)0x7fffffff) + +//============================================================================ + +extern qboolean bigendien; + +extern short (*BigShort) (short l); +extern short (*LittleShort) (short l); +extern int (*BigLong) (int l); +extern int (*LittleLong) (int l); +extern float (*BigFloat) (float l); +extern float (*LittleFloat) (float l); + +//============================================================================ + +void MSG_WriteChar (sizebuf_t *sb, int c); +void MSG_WriteByte (sizebuf_t *sb, int c); +void MSG_WriteShort (sizebuf_t *sb, int c); +void MSG_WriteLong (sizebuf_t *sb, int c); +void MSG_WriteFloat (sizebuf_t *sb, float f); +void MSG_WriteString (sizebuf_t *sb, char *s); +void MSG_WriteCoord (sizebuf_t *sb, float f); +void MSG_WriteAngle (sizebuf_t *sb, float f); +void MSG_WriteAngle16 (sizebuf_t *sb, float f); //johnfitz + +extern int msg_readcount; +extern qboolean msg_badread; // set if a read goes beyond end of message + +void MSG_BeginReading (void); +int MSG_ReadChar (void); +int MSG_ReadByte (void); +int MSG_ReadShort (void); +int MSG_ReadLong (void); +float MSG_ReadFloat (void); +char *MSG_ReadString (void); + +float MSG_ReadCoord (void); +float MSG_ReadAngle (void); +float MSG_ReadAngle16 (void); //johnfitz + +//============================================================================ + +void Q_memset (void *dest, int fill, int count); +void Q_memcpy (void *dest, void *src, int count); +int Q_memcmp (void *m1, void *m2, int count); +void Q_strcpy (char *dest, char *src); +void Q_strncpy (char *dest, char *src, int count); +int Q_strlen (char *str); +char *Q_strrchr (char *s, char c); +void Q_strcat (char *dest, char *src); +int Q_strcmp (char *s1, char *s2); +int Q_strncmp (char *s1, char *s2, int count); +int Q_strcasecmp (char *s1, char *s2); +int Q_strncasecmp (char *s1, char *s2, int n); +int Q_atoi (char *str); +float Q_atof (char *str); + +//============================================================================ + +extern char com_token[1024]; +extern qboolean com_eof; + +char *COM_Parse (char *data); + + +extern int com_argc; +extern char **com_argv; + +int COM_CheckParm (char *parm); +void COM_Init (char *path); +void COM_InitArgv (int argc, char **argv); + +char *COM_SkipPath (char *pathname); +void COM_StripExtension (char *in, char *out); +void COM_FileBase (char *in, char *out); +void COM_DefaultExtension (char *path, char *extension); + +char *va(char *format, ...); +// does a varargs printf into a temp buffer + + +//============================================================================ + +extern int com_filesize; +struct cache_user_s; + +extern char com_gamedir[MAX_OSPATH]; + +void COM_WriteFile (char *filename, void *data, int len); +int COM_OpenFile (char *filename, int *hndl); +int COM_FOpenFile (char *filename, FILE **file); +void COM_CloseFile (int h); + +byte *COM_LoadStackFile (char *path, void *buffer, int bufsize); +byte *COM_LoadTempFile (char *path); +byte *COM_LoadHunkFile (char *path); +void COM_LoadCacheFile (char *path, struct cache_user_s *cu); + + +extern struct cvar_s registered; + +extern qboolean standard_quake, rogue, hipnotic; diff --git a/quakespasm/Quake/console.c b/quakespasm/Quake/console.c new file mode 100644 index 00000000..7c8dfb53 --- /dev/null +++ b/quakespasm/Quake/console.c @@ -0,0 +1,1124 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 + +#ifdef NeXT +#include +#endif +#ifndef _MSC_VER +#include +#endif +#include +#include "quakedef.h" + +int con_linewidth; + +float con_cursorspeed = 4; + +#define CON_TEXTSIZE 65536 //johnfitz -- new default size +#define CON_MINSIZE 16384 //johnfitz -- old default, now the minimum size +int con_buffersize; //johnfitz -- user can now override default + +qboolean con_forcedup; // because no entities to refresh + +int con_totallines; // total lines in console scrollback +int con_backscroll; // lines up from bottom to display +int con_current; // where next message will be printed +int con_x; // offset in current line for next print +char *con_text=0; + +cvar_t con_notifytime = {"con_notifytime","3"}; //seconds +cvar_t con_logcenterprint = {"con_logcenterprint", "1"}; //johnfitz + +char con_lastcenterstring[1024]; //johnfitz + +#define NUM_CON_TIMES 4 +float con_times[NUM_CON_TIMES]; // realtime time the line was generated + // for transparent notify lines + +int con_vislines; + +qboolean con_debuglog; + +#define MAXCMDLINE 256 +extern char key_lines[32][MAXCMDLINE]; +extern int edit_line; +extern int key_linepos; + +qboolean con_initialized; + +extern void M_Menu_Main_f (void); + +/* +================ +Con_Quakebar -- johnfitz -- returns a bar of the desired length, but never wider than the console + +includes a newline, unless len >= con_linewidth. +================ +*/ +char *Con_Quakebar (int len) +{ + static char bar[42]; + int i; + + len = min(len, sizeof(bar) - 2); + len = min(len, con_linewidth); + + bar[0] = '\35'; + for (i = 1; i < len - 1; i++) + bar[i] = '\36'; + bar[len-1] = '\37'; + + if (len < con_linewidth) + { + bar[len] = '\n'; + bar[len+1] = 0; + } + else + bar[len] = 0; + + return bar; +} + +/* +================ +Con_ToggleConsole_f +================ +*/ +void Con_ToggleConsole_f (void) +{ + extern int history_line; //johnfitz + + if (key_dest == key_console) + { + if (cls.state == ca_connected) + { + IN_Activate(); + key_dest = key_game; + key_lines[edit_line][1] = 0; // clear any typing + key_linepos = 1; + con_backscroll = 0; //johnfitz -- toggleconsole should return you to the bottom of the scrollback + history_line = edit_line; //johnfitz -- it should also return you to the bottom of the command history + } + else + { + M_Menu_Main_f (); + } + } + else + { + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_console; + } + + SCR_EndLoadingPlaque (); + memset (con_times, 0, sizeof(con_times)); +} + +/* +================ +Con_Clear_f +================ +*/ +void Con_Clear_f (void) +{ + if (con_text) + Q_memset (con_text, ' ', con_buffersize); //johnfitz -- con_buffersize replaces CON_TEXTSIZE + con_backscroll = 0; //johnfitz -- if console is empty, being scrolled up is confusing +} + +/* +================ +Con_Dump_f -- johnfitz -- adapted from quake2 source +================ +*/ +void Con_Dump_f (void) +{ + int l, x; + char *line; + FILE *f; + char buffer[1024]; + char name[MAX_OSPATH]; + +#if 1 + //johnfitz -- there is a security risk in writing files with an arbitrary filename. so, + //until stuffcmd is crippled to alleviate this risk, just force the default filename. + sprintf (name, "%s/condump.txt", com_gamedir); +#else + if (Cmd_Argc() > 2) + { + Con_Printf ("usage: condump \n"); + return; + } + + if (Cmd_Argc() > 1) + { + if (strstr(Cmd_Argv(1), "..")) + { + Con_Printf ("Relative pathnames are not allowed.\n"); + return; + } + sprintf (name, "%s/%s", com_gamedir, Cmd_Argv(1)); + COM_DefaultExtension (name, ".txt"); + } + else + sprintf (name, "%s/condump.txt", com_gamedir); +#endif + + COM_CreatePath (name); + f = fopen (name, "w"); + if (!f) + { + Con_Printf ("ERROR: couldn't open file.\n", name); + return; + } + + // skip initial empty lines + for (l = con_current - con_totallines + 1 ; l <= con_current ; l++) + { + line = con_text + (l%con_totallines)*con_linewidth; + for (x=0 ; x=0 ; x--) + { + if (buffer[x] == ' ') + buffer[x] = 0; + else + break; + } + for (x=0; buffer[x]; x++) + buffer[x] &= 0x7f; + + fprintf (f, "%s\n", buffer); + } + + fclose (f); + Con_Printf ("Dumped console text to %s.\n", name); +} + +/* +================ +Con_ClearNotify +================ +*/ +void Con_ClearNotify (void) +{ + int i; + + for (i=0 ; i> 3) - 2; //johnfitz -- use vid.conwidth instead of vid.width + + if (width == con_linewidth) + return; + + oldwidth = con_linewidth; + con_linewidth = width; + oldtotallines = con_totallines; + con_totallines = con_buffersize / con_linewidth; //johnfitz -- con_buffersize replaces CON_TEXTSIZE + numlines = oldtotallines; + + if (con_totallines < numlines) + numlines = con_totallines; + + numchars = oldwidth; + + if (con_linewidth < numchars) + numchars = con_linewidth; + + mark = Hunk_LowMark (); //johnfitz + tbuf = Hunk_Alloc (con_buffersize); //johnfitz + + Q_memcpy (tbuf, con_text, con_buffersize);//johnfitz -- con_buffersize replaces CON_TEXTSIZE + Q_memset (con_text, ' ', con_buffersize);//johnfitz -- con_buffersize replaces CON_TEXTSIZE + + for (i=0 ; i con_totallines - (glheight>>3) - 1) + con_backscroll = con_totallines - (glheight>>3) - 1; + //johnfitz + + con_x = 0; + con_current++; + Q_memset (&con_text[(con_current%con_totallines)*con_linewidth] + , ' ', con_linewidth); +} + +/* +================ +Con_Print + +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 notify window will pop up. +================ +*/ +void Con_Print (char *txt) +{ + int y; + int c, l; + static int cr; + int mask; + + //con_backscroll = 0; //johnfitz -- better console scrolling + + if (txt[0] == 1) + { + mask = 128; // go to colored text + S_LocalSound ("misc/talk.wav"); + // play talk wav + txt++; + } + else if (txt[0] == 2) + { + mask = 128; // go to colored text + txt++; + } + else + mask = 0; + + + while ( (c = *txt) ) + { + // count word length + for (l=0 ; l< con_linewidth ; l++) + if ( txt[l] <= ' ') + break; + + // word wrap + if (l != con_linewidth && (con_x + l > 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] = realtime; + } + + 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_x++; + if (con_x >= con_linewidth) + con_x = 0; + break; + } + + } +} + + +/* +================ +Con_DebugLog +================ +*/ +void Con_DebugLog(char *file, char *fmt, ...) +{ + va_list argptr; + static char data[1024]; + int fd; + + va_start(argptr, fmt); + vsprintf(data, fmt, argptr); + va_end(argptr); + fd = open(file, O_WRONLY | O_CREAT | O_APPEND, 0666); + write(fd, data, strlen(data)); + close(fd); +} + + +/* +================ +Con_Printf + +Handles cursor positioning, line wrapping, etc +================ +*/ +#define MAXPRINTMSG 4096 +// FIXME: make a buffer size safe vsprintf? +void Con_Printf (char *fmt, ...) +{ + va_list argptr; + char msg[MAXPRINTMSG]; + static qboolean inupdate; + + va_start (argptr,fmt); + vsprintf (msg,fmt,argptr); + va_end (argptr); + +// also echo to debugging console + Sys_Printf ("%s", msg); + +// log all messages to file + if (con_debuglog) + Con_DebugLog(va("%s/qconsole.log",com_gamedir), "%s", msg); + + if (!con_initialized) + return; + + if (cls.state == ca_dedicated) + return; // no graphics mode + +// write it to the scrollable buffer + Con_Print (msg); + +// update the screen if the console is displayed + if (cls.signon != SIGNONS && !scr_disabled_for_loading ) + { + // protect against infinite loop if something in SCR_UpdateScreen calls + // Con_Printd + if (!inupdate) + { + inupdate = true; + SCR_UpdateScreen (); + inupdate = false; + } + } +} + +/* +================ +Con_Warning -- johnfitz -- prints a warning to the console +================ +*/ +void Con_Warning (char *fmt, ...) +{ + va_list argptr; + char msg[MAXPRINTMSG]; + + va_start (argptr,fmt); + vsprintf (msg,fmt,argptr); + va_end (argptr); + + Con_SafePrintf ("\x02Warning: "); + Con_Printf ("%s", msg); +} + +/* +================ +Con_DPrintf + +A Con_Printf that only shows up if the "developer" cvar is set +================ +*/ +void Con_DPrintf (char *fmt, ...) +{ + va_list argptr; + char msg[MAXPRINTMSG]; + + if (!developer.value) + return; // don't confuse non-developers with techie stuff... + + va_start (argptr,fmt); + vsprintf (msg,fmt,argptr); + va_end (argptr); + + Con_SafePrintf ("%s", msg); //johnfitz -- was Con_Printf +} + +/* +================ +Con_DPrintf2 -- johnfitz -- only prints if "developer" >= 2 + +currently not used +================ +*/ +void Con_DPrintf2 (char *fmt, ...) +{ + va_list argptr; + char msg[MAXPRINTMSG]; + + if (developer.value >= 2) + { + va_start (argptr,fmt); + vsprintf (msg,fmt,argptr); + va_end (argptr); + + Con_Printf ("%s", msg); + } +} + + +/* +================== +Con_SafePrintf + +Okay to call even when the screen can't be updated +================== +*/ +void Con_SafePrintf (char *fmt, ...) +{ + va_list argptr; + char msg[1024]; + int temp; + + va_start (argptr,fmt); + vsprintf (msg,fmt,argptr); + va_end (argptr); + + temp = scr_disabled_for_loading; + scr_disabled_for_loading = true; + Con_Printf ("%s", msg); + scr_disabled_for_loading = temp; +} + +/* +================ +Con_CenterPrintf -- johnfitz -- pad each line with spaces to make it appear centered +================ +*/ +void Con_CenterPrintf (int linewidth, char *fmt, ...) +{ + va_list argptr; + char msg[MAXPRINTMSG]; //the original message + char line[MAXPRINTMSG]; //one line from the message + char spaces[21]; //buffer for spaces + char *src, *dst; + int len, s; + + va_start (argptr,fmt); + vsprintf (msg,fmt,argptr); + va_end (argptr); + + linewidth = min (linewidth, con_linewidth); + for (src = msg; *src; ) + { + dst = line; + while (*src && *src != '\n') + *dst++ = *src++; + *dst = 0; + if (*src == '\n') + src++; + + len = strlen(line); + if (len < linewidth) + { + s = (linewidth-len)/2; + memset (spaces, ' ', s); + spaces[s] = 0; + Con_Printf ("%s%s\n", spaces, line); + } + else + Con_Printf ("%s\n", line); + } +} + +/* +================== +Con_LogCenterPrint -- johnfitz -- echo centerprint message to the console +================== +*/ +void Con_LogCenterPrint (char *str) +{ + if (!strcmp(str, con_lastcenterstring)) + return; //ignore duplicates + + if (cl.gametype == GAME_DEATHMATCH && con_logcenterprint.value != 2) + return; //don't log in deathmatch + + strcpy(con_lastcenterstring, str); + + if (con_logcenterprint.value) + { + Con_Printf (Con_Quakebar(40)); + Con_CenterPrintf (40, "%s\n", str); + Con_Printf (Con_Quakebar(40)); + Con_ClearNotify (); + } +} + +/* +============================================================================== + + TAB COMPLETION + +============================================================================== +*/ + +//johnfitz -- tab completion stuff +//unique defs +char key_tabpartial[MAXCMDLINE]; +typedef struct tab_s +{ + char *name; + char *type; + struct tab_s *next; + struct tab_s *prev; +} tab_t; +tab_t *tablist; + +//defs from elsewhere +extern qboolean keydown[256]; +typedef struct cmd_function_s +{ + struct cmd_function_s *next; + char *name; + xcommand_t function; +} cmd_function_t; +extern cmd_function_t *cmd_functions; +#define MAX_ALIAS_NAME 32 +typedef struct cmdalias_s +{ + struct cmdalias_s *next; + char name[MAX_ALIAS_NAME]; + char *value; +} cmdalias_t; +extern cmdalias_t *cmd_alias; + +/* +============ +AddToTabList -- johnfitz + +tablist is a doubly-linked loop, alphabetized by name +============ +*/ +void AddToTabList (char *name, char *type) +{ + tab_t *t,*insert; + + t = Hunk_Alloc(sizeof(tab_t)); + t->name = name; + t->type = type; + + if (!tablist) //create list + { + tablist = t; + t->next = t; + t->prev = t; + } + else if (strcmp(name, tablist->name) < 0) //insert at front + { + t->next = tablist; + t->prev = tablist->prev; + t->next->prev = t; + t->prev->next = t; + tablist = t; + } + else //insert later + { + insert = tablist; + do + { + if (strcmp(name, insert->name) < 0) + break; + insert = insert->next; + } while (insert != tablist); + + t->next = insert; + t->prev = insert->prev; + t->next->prev = t; + t->prev->next = t; + } +} + +/* +============ +BuildTabList -- johnfitz +============ +*/ +void BuildTabList (char *partial) +{ + cmdalias_t *alias; + cvar_t *cvar; + cmd_function_t *cmd; + int len; + + tablist = NULL; + len = strlen(partial); + + for (cvar=cvar_vars ; cvar ; cvar=cvar->next) + if (!Q_strncmp (partial, cvar->name, len)) + AddToTabList (cvar->name, "cvar"); + + for (cmd=cmd_functions ; cmd ; cmd=cmd->next) + if (!Q_strncmp (partial,cmd->name, len)) + AddToTabList (cmd->name, "command"); + + for (alias=cmd_alias ; alias ; alias=alias->next) + if (!Q_strncmp (partial, alias->name, len)) + AddToTabList (alias->name, "alias"); +} + +/* +============ +Con_TabComplete -- johnfitz +============ +*/ +void Con_TabComplete (void) +{ + char partial[MAXCMDLINE]; + char *match; + static char *c; + tab_t *t; + int mark, i; + +// if editline is empty, return + if (key_lines[edit_line][1] == 0) + return; + +// get partial string (space -> cursor) + if (!Q_strlen(key_tabpartial)) //first time through, find new insert point. (Otherwise, use previous.) + { + //work back from cursor until you find a space, quote, semicolon, or prompt + c = key_lines[edit_line] + key_linepos - 1; //start one space left of cursor + while (*c!=' ' && *c!='\"' && *c!=';' && c!=key_lines[edit_line]) + c--; + c++; //start 1 char after the seperator we just found + } + for (i = 0; c + i < key_lines[edit_line] + key_linepos; i++) + partial[i] = c[i]; + partial[i] = 0; + +//if partial is empty, return + if (partial[0] == 0) + return; + +//trim trailing space becuase it screws up string comparisons + if (i > 0 && partial[i-1] == ' ') + partial[i-1] = 0; + +// find a match + mark = Hunk_LowMark(); + if (!Q_strlen(key_tabpartial)) //first time through + { + Q_strcpy (key_tabpartial, partial); + BuildTabList (key_tabpartial); + + if (!tablist) + return; + + //print list + t = tablist; + do + { + Con_SafePrintf(" %s (%s)\n", t->name, t->type); + t = t->next; + } while (t != tablist); + + //get first match + match = tablist->name; + } + else + { + BuildTabList (key_tabpartial); + + if (!tablist) + return; + + //find current match -- can't save a pointer because the list will be rebuilt each time + t = tablist; + do + { + if (!Q_strcmp(t->name, partial)) + break; + t = t->next; + } while (t != tablist); + + //use prev or next to find next match + match = keydown[K_SHIFT] ? t->prev->name : t->next->name; + } + Hunk_FreeToLowMark(mark); //it's okay to free it here becuase match is a pointer to persistent data + +// insert new match into edit line + Q_strcpy (partial, match); //first copy match string + Q_strcat (partial, key_lines[edit_line] + key_linepos); //then add chars after cursor + Q_strcpy (c, partial); //now copy all of this into edit line + key_linepos = c - key_lines[edit_line] + Q_strlen(match); //set new cursor position + +// if cursor is at end of string, let's append a space to make life easier + if (key_lines[edit_line][key_linepos] == 0) + { + key_lines[edit_line][key_linepos] = ' '; + key_linepos++; + key_lines[edit_line][key_linepos] = 0; + } +} + +/* +============================================================================== + +DRAWING + +============================================================================== +*/ + +/* +================ +Con_DrawNotify + +Draws the last few lines of output transparently over the game top +================ +*/ +void Con_DrawNotify (void) +{ + int x, v; + char *text; + int i; + float time; + extern char chat_buffer[]; + + GL_SetCanvas (CANVAS_CONSOLE); //johnfitz + v = vid.conheight; //johnfitz + + for (i= con_current-NUM_CON_TIMES+1 ; i<=con_current ; i++) + { + if (i < 0) + continue; + time = con_times[i % NUM_CON_TIMES]; + if (time == 0) + continue; + time = realtime - time; + if (time > con_notifytime.value) + continue; + text = con_text + (i % con_totallines)*con_linewidth; + + clearnotify = 0; + + for (x = 0 ; x < con_linewidth ; x++) + Draw_Character ( (x+1)<<3, v, text[x]); + + v += 8; + + scr_tileclear_updates = 0; //johnfitz + } + + + if (key_dest == key_message) + { + char *say_prompt; //johnfitz + + clearnotify = 0; + + x = 0; + + //johnfitz -- distinguish say and say_team + if (team_message) + say_prompt = "say_team:"; + else + say_prompt = "say:"; + //johnfitz + + Draw_String (8, v, say_prompt); //johnfitz + + while(chat_buffer[x]) + { + Draw_Character ( (x+strlen(say_prompt)+2)<<3, v, chat_buffer[x]); //johnfitz + x++; + } + Draw_Character ( (x+strlen(say_prompt)+2)<<3, v, 10+((int)(realtime*con_cursorspeed)&1)); //johnfitz + v += 8; + + scr_tileclear_updates = 0; //johnfitz + } +} + +/* +================ +Con_DrawInput -- johnfitz -- modified to allow insert editing + +The input line scrolls horizontally if typing goes beyond the right edge +================ +*/ +void Con_DrawInput (void) +{ + extern qpic_t *pic_ovr, *pic_ins; //johnfitz -- new cursor handling + extern double key_blinktime; + extern int key_insert; + int i, len; + char c[256], *text; + + if (key_dest != key_console && !con_forcedup) + return; // don't draw anything + + text = strcpy(c, key_lines[edit_line]); + +// pad with one space so we can draw one past the string (in case the cursor is there) + len = strlen(key_lines[edit_line]); + text[len] = ' '; + text[len+1] = 0; + +// prestep if horizontally scrolling + if (key_linepos >= con_linewidth) + text += 1 + key_linepos - con_linewidth; + +// draw input string + for (i=0; i <= strlen(text) - 1; i++) //only write enough letters to go from *text to cursor + Draw_Character ((i+1)<<3, vid.conheight - 16, text[i]); + +// johnfitz -- new cursor handling + if (!((int)((realtime-key_blinktime)*con_cursorspeed) & 1)) + Draw_Pic ((key_linepos+1)<<3, vid.conheight - 16, key_insert ? pic_ins : pic_ovr); +} + +/* +================ +Con_DrawConsole -- johnfitz -- heavy revision + +Draws the console with the solid background +The typing input line at the bottom should only be drawn if typing is allowed +================ +*/ +void Con_DrawConsole (int lines, qboolean drawinput) +{ + int i, x, y, j, sb, rows; + char ver[32]; + char *text; + + if (lines <= 0) + return; + + con_vislines = lines * vid.conheight / glheight; + GL_SetCanvas (CANVAS_CONSOLE); + +// draw the background + Draw_ConsoleBackground (); + +// draw the buffer text + rows = (con_vislines+7)/8; + y = vid.conheight - rows*8; + rows -= 2; //for input and version lines + sb = (con_backscroll) ? 2 : 0; + + for (i = con_current - rows + 1 ; i <= con_current - sb ; i++, y+=8) + { + j = i - con_backscroll; + if (j<0) + j = 0; + text = con_text + (j % con_totallines)*con_linewidth; + + for (x=0 ; x> 8) ^ data]; +} + +unsigned short CRC_Value(unsigned short crcvalue) +{ + return crcvalue ^ CRC_XOR_VALUE; +} + +//johnfitz -- texture crc +unsigned short CRC_Block (byte *start, int count) +{ + unsigned short crc; + + CRC_Init (&crc); + while (count--) + crc = (crc << 8) ^ crctable[(crc >> 8) ^ *start++]; + + return crc; +} diff --git a/quakespasm/Quake/crc.h b/quakespasm/Quake/crc.h new file mode 100644 index 00000000..10cceddf --- /dev/null +++ b/quakespasm/Quake/crc.h @@ -0,0 +1,26 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +/* crc.h */ + +void CRC_Init(unsigned short *crcvalue); +void CRC_ProcessByte(unsigned short *crcvalue, byte data); +unsigned short CRC_Value(unsigned short crcvalue); +unsigned short CRC_Block (byte *start, int count); //johnfitz -- texture crc diff --git a/quakespasm/Quake/cvar.c b/quakespasm/Quake/cvar.c new file mode 100644 index 00000000..b6c1587d --- /dev/null +++ b/quakespasm/Quake/cvar.c @@ -0,0 +1,481 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 + +#include "quakedef.h" + +cvar_t *cvar_vars; +char *cvar_null_string = ""; + +//============================================================================== +// +// USER COMMANDS +// +//============================================================================== + +void Cvar_Reset (char *name); //johnfitz + +/* +============ +Cvar_List_f -- johnfitz +============ +*/ +void Cvar_List_f (void) +{ + cvar_t *cvar; + char *partial; + int len, count; + + if (Cmd_Argc() > 1) + { + partial = Cmd_Argv (1); + len = Q_strlen(partial); + } + else + { + partial = NULL; + len = 0; + } + + count=0; + for (cvar=cvar_vars ; cvar ; cvar=cvar->next) + { + if (partial && Q_strncmp (partial,cvar->name, len)) + { + continue; + } + Con_SafePrintf ("%s%s %s \"%s\"\n", + cvar->archive ? "*" : " ", + cvar->server ? "s" : " ", + cvar->name, + cvar->string); + count++; + } + + Con_SafePrintf ("%i cvars", count); + if (partial) + { + Con_SafePrintf (" beginning with \"%s\"", partial); + } + Con_SafePrintf ("\n"); +} + +/* +============ +Cvar_Inc_f -- johnfitz +============ +*/ +void Cvar_Inc_f (void) +{ + switch (Cmd_Argc()) + { + default: + case 1: + Con_Printf("inc [amount] : increment cvar\n"); + break; + case 2: + Cvar_SetValue (Cmd_Argv(1), Cvar_VariableValue(Cmd_Argv(1)) + 1); + break; + case 3: + Cvar_SetValue (Cmd_Argv(1), Cvar_VariableValue(Cmd_Argv(1)) + Q_atof(Cmd_Argv(2))); + break; + } +} + +/* +============ +Cvar_Toggle_f -- johnfitz +============ +*/ +void Cvar_Toggle_f (void) +{ + switch (Cmd_Argc()) + { + default: + case 1: + Con_Printf("toggle : toggle cvar\n"); + break; + case 2: + if (Cvar_VariableValue(Cmd_Argv(1))) + Cvar_Set (Cmd_Argv(1), "0"); + else + Cvar_Set (Cmd_Argv(1), "1"); + break; + } +} + +/* +============ +Cvar_Cycle_f -- johnfitz +============ +*/ +void Cvar_Cycle_f (void) +{ + int i; + + if (Cmd_Argc() < 3) + { + Con_Printf("cycle : cycle cvar through a list of values\n"); + return; + } + + //loop through the args until you find one that matches the current cvar value. + //yes, this will get stuck on a list that contains the same value twice. + //it's not worth dealing with, and i'm not even sure it can be dealt with. + + for (i=2;i : reset cvar to default\n"); + break; + case 2: + Cvar_Reset (Cmd_Argv(1)); + break; + } +} + +/* +============ +Cvar_ResetAll_f -- johnfitz +============ +*/ +void Cvar_ResetAll_f (void) +{ + cvar_t *var; + + for (var = cvar_vars; var; var = var->next) + Cvar_Reset (var->name); +} + +//============================================================================== +// +// INIT +// +//============================================================================== + +/* +============ +Cvar_Init -- johnfitz +============ +*/ + +void Cvar_Init (void) +{ + Cmd_AddCommand ("cvarlist", Cvar_List_f); + Cmd_AddCommand ("toggle", Cvar_Toggle_f); + Cmd_AddCommand ("cycle", Cvar_Cycle_f); + Cmd_AddCommand ("inc", Cvar_Inc_f); + Cmd_AddCommand ("reset", Cvar_Reset_f); + Cmd_AddCommand ("resetall", Cvar_ResetAll_f); +} + +//============================================================================== +// +// CVAR FUNCTIONS +// +//============================================================================== + +/* +============ +Cvar_FindVar +============ +*/ +cvar_t *Cvar_FindVar (char *var_name) +{ + cvar_t *var; + + for (var=cvar_vars ; var ; var=var->next) + if (!Q_strcmp (var_name, var->name)) + return var; + + return NULL; +} + +/* +============ +Cvar_VariableValue +============ +*/ +float Cvar_VariableValue (char *var_name) +{ + cvar_t *var; + + var = Cvar_FindVar (var_name); + if (!var) + return 0; + return Q_atof (var->string); +} + + +/* +============ +Cvar_VariableString +============ +*/ +char *Cvar_VariableString (char *var_name) +{ + cvar_t *var; + + var = Cvar_FindVar (var_name); + if (!var) + return cvar_null_string; + return var->string; +} + + +/* +============ +Cvar_CompleteVariable +============ +*/ +char *Cvar_CompleteVariable (char *partial) +{ + cvar_t *cvar; + int len; + + len = Q_strlen(partial); + + if (!len) + return NULL; + +// check functions + for (cvar=cvar_vars ; cvar ; cvar=cvar->next) + if (!Q_strncmp (partial,cvar->name, len)) + return cvar->name; + + return NULL; +} + +/* +============ +Cvar_Reset -- johnfitz +============ +*/ +void Cvar_Reset (char *name) +{ + cvar_t *var; + + var = Cvar_FindVar (name); + if (!var) + Con_Printf ("variable \"%s\" not found\n", name); + else + Cvar_Set (var->name, var->default_string); +} + +/* +============ +Cvar_Set +============ +*/ +void Cvar_Set (char *var_name, char *value) +{ + cvar_t *var; + qboolean changed; + + var = Cvar_FindVar (var_name); + if (!var) + { // there is an error in C code if this happens + Con_Printf ("Cvar_Set: variable %s not found\n", var_name); + return; + } + + changed = Q_strcmp(var->string, value); + + Z_Free (var->string); // free the old value string + + var->string = Z_Malloc (Q_strlen(value)+1); + Q_strcpy (var->string, value); + var->value = Q_atof (var->string); + + //johnfitz -- during initialization, update default too + if (!host_initialized) + { + Z_Free (var->default_string); + var->default_string = Z_Malloc (Q_strlen(value)+1); + Q_strcpy (var->default_string, value); + } + //johnfitz + + if (var->server && changed) + { + if (sv.active) + SV_BroadcastPrintf ("\"%s\" changed to \"%s\"\n", var->name, var->string); + } + + //johnfitz + if(var->callback && changed) + var->callback(); + //johnfitz +} + +/* +============ +Cvar_SetValue +============ +*/ +void Cvar_SetValue (char *var_name, float value) +{ + char val[32]; + + sprintf (val, "%f",value); + Cvar_Set (var_name, val); +} + +/* +============ +Cvar_RegisterVariable + +Adds a freestanding variable to the variable list. +============ +*/ +void Cvar_RegisterVariable (cvar_t *variable, void *function) +{ + char *oldstr; + cvar_t *cursor,*prev; //johnfitz -- sorted list insert + +// first check to see if it has allready been defined + if (Cvar_FindVar (variable->name)) + { + Con_Printf ("Can't register variable %s, allready defined\n", variable->name); + return; + } + +// check for overlap with a command + if (Cmd_Exists (variable->name)) + { + Con_Printf ("Cvar_RegisterVariable: %s is a command\n", variable->name); + return; + } + +// copy the value off, because future sets will Z_Free it + oldstr = variable->string; + variable->string = Z_Malloc (Q_strlen(variable->string)+1); + Q_strcpy (variable->string, oldstr); + variable->value = Q_atof (variable->string); + + //johnfitz -- save initial value for "reset" command + variable->default_string = Z_Malloc (Q_strlen(variable->string)+1); + Q_strcpy (variable->default_string, oldstr); + //johnfitz + +// link the variable in + + //johnfitz -- insert each entry in alphabetical order + if (cvar_vars == NULL || strcmp(variable->name, cvar_vars->name) < 0) //insert at front + { + variable->next = cvar_vars; + cvar_vars = variable; + } + else //insert later + { + prev = cvar_vars; + cursor = cvar_vars->next; + while (cursor && (strcmp(variable->name, cursor->name) > 0)) + { + prev = cursor; + cursor = cursor->next; + } + variable->next = prev->next; + prev->next = variable; + } + //johnfitz + + variable->callback = function; //johnfitz +} + +/* +============ +Cvar_Command + +Handles variable inspection and changing from the console +============ +*/ +qboolean 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) + { + Con_Printf ("\"%s\" is \"%s\"\n", v->name, v->string); + return true; + } + + Cvar_Set (v->name, Cmd_Argv(1)); + return true; +} + + +/* +============ +Cvar_WriteVariables + +Writes lines containing "set variable value" for all variables +with the archive flag set to true. +============ +*/ +void Cvar_WriteVariables (FILE *f) +{ + cvar_t *var; + + for (var = cvar_vars ; var ; var = var->next) + if (var->archive) + fprintf (f, "%s \"%s\"\n", var->name, var->string); +} + diff --git a/quakespasm/Quake/cvar.h b/quakespasm/Quake/cvar.h new file mode 100644 index 00000000..7964b6e7 --- /dev/null +++ b/quakespasm/Quake/cvar.h @@ -0,0 +1,100 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 + +/* + +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. + +it is sufficient to initialize a cvar_t with just the first two fields, or +you can add a ,true flag for variables that you want saved to the configuration +file when the game is quit: + +cvar_t r_draworder = {"r_draworder","1"}; +cvar_t scr_screensize = {"screensize","1",true}; + +Cvars must be registered before use, or they will have a 0 value instead of the float interpretation of the string. Generally, all cvar_t declarations should be registered in the apropriate init function before any console commands are executed: +Cvar_RegisterVariable (&host_framerate); + + +C code usually just references a cvar in place: +if ( r_draworder.value ) + +It could optionally ask for the value to be looked up for a string name: +if (Cvar_VariableValue ("r_draworder")) + +Interpreted prog code can access cvars with the cvar(name) or +cvar_set (name, value) internal functions: +teamplay = cvar("teamplay"); +cvar_set ("registered", "1"); + +The user can access cvars from the console in two ways: +r_draworder prints the current value +r_draworder 0 sets the current value to 0 +Cvars are restricted from having the same names as commands to keep this +interface from being ambiguous. +*/ + +typedef struct cvar_s +{ + char *name; + char *string; + qboolean archive; // set to true to cause it to be saved to vars.rc + qboolean server; // notifies players when changed + float value; + struct cvar_s *next; + char *default_string; //johnfitz -- remember defaults for reset function + void (*callback) (void); //johnfitz +} cvar_t; + +void Cvar_RegisterVariable (cvar_t *variable, void *function); //johnfitz -- cvar callback +// registers a cvar that allready has the name, string, and optionally the +// archive elements set. + +void Cvar_Set (char *var_name, char *value); +// equivelant to " " typed at the console + +void Cvar_SetValue (char *var_name, float value); +// expands value to a string and calls Cvar_Set + +float Cvar_VariableValue (char *var_name); +// returns 0 if not defined or non numeric + +char *Cvar_VariableString (char *var_name); +// returns an empty string if not defined + +char *Cvar_CompleteVariable (char *partial); +// attempts to match a partial variable name for command line completion +// returns NULL if nothing fits + +qboolean 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) + +void Cvar_WriteVariables (FILE *f); +// Writes lines containing "set variable value" for all variables +// with the archive flag set to true. + +cvar_t *Cvar_FindVar (char *var_name); + +extern cvar_t *cvar_vars; diff --git a/quakespasm/Quake/d_ifacea.h b/quakespasm/Quake/d_ifacea.h new file mode 100644 index 00000000..407416ab --- /dev/null +++ b/quakespasm/Quake/d_ifacea.h @@ -0,0 +1,99 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// +// d_ifacea.h +// +// Include file for asm driver interface. +// + +// +// !!! note that this file must match the corresponding C structures in +// d_iface.h at all times !!! +// + +// !!! if this is changed, it must be changed in r_shared.h too !!! +#define ALIAS_ONSEAM 0x0020 + +// !!! if this is changed, it must be changed in d_iface.h too !!! +#define TURB_TEX_SIZE 64 // base turbulent texture size + +// !!! if this is changed, it must be changed in d_iface.h too !!! +#define CYCLE 128 + +// !!! if this is changed, it must be changed in r_shared.h too !!! +#define MAXHEIGHT 1024 + +// !!! if this is changed, it must be changed in quakedef.h too !!! +#define CACHE_SIZE 32 // used to align key data structures + +// particle_t structure +// !!! if this is changed, it must be changed in d_iface.h too !!! +// driver-usable fields +#define pt_org 0 +#define pt_color 12 +// drivers never touch the following fields +#define pt_next 16 +#define pt_vel 20 +#define pt_ramp 32 +#define pt_die 36 +#define pt_type 40 +#define pt_size 44 + +#define PARTICLE_Z_CLIP 8.0 + +// finalvert_t structure +// !!! if this is changed, it must be changed in d_iface.h too !!! +#define fv_v 0 // !!! if this is moved, cases where the !!! + // !!! address of this field is pushed in !!! + // !!! d_polysa.s must be changed !!! +#define fv_flags 24 +#define fv_reserved 28 +#define fv_size 32 +#define fv_shift 5 + + +// stvert_t structure +// !!! if this is changed, it must be changed in modelgen.h too !!! +#define stv_onseam 0 +#define stv_s 4 +#define stv_t 8 +#define stv_size 12 + + +// trivertx_t structure +// !!! if this is changed, it must be changed in modelgen.h too !!! +#define tv_v 0 +#define tv_lightnormalindex 3 +#define tv_size 4 + +// affinetridesc_t structure +// !!! if this is changed, it must be changed in d_iface.h too !!! +#define atd_pskin 0 +#define atd_pskindesc 4 +#define atd_skinwidth 8 +#define atd_skinheight 12 +#define atd_ptriangles 16 +#define atd_pfinalverts 20 +#define atd_numtriangles 24 +#define atd_drawtype 28 +#define atd_seamfixupX16 32 +#define atd_size 36 + diff --git a/quakespasm/Quake/draw.h b/quakespasm/Quake/draw.h new file mode 100644 index 00000000..66b4e244 --- /dev/null +++ b/quakespasm/Quake/draw.h @@ -0,0 +1,41 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ + +// draw.h -- these are the only functions outside the refresh allowed +// to touch the vid buffer + +extern qpic_t *draw_disc; // also used on sbar + +void Draw_Init (void); +void Draw_Character (int x, int y, int num); +void Draw_DebugChar (char num); +void Draw_Pic (int x, int y, qpic_t *pic); +void Draw_TransPicTranslate (int x, int y, qpic_t *pic, int top, int bottom); //johnfitz -- more parameters +void Draw_ConsoleBackground (void); //johnfitz -- removed parameter int lines +void Draw_BeginDisc (void); +void Draw_TileClear (int x, int y, int w, int h); +void Draw_Fill (int x, int y, int w, int h, int c, float alpha); //johnfitz -- added alpha +void Draw_FadeScreen (void); +void Draw_String (int x, int y, char *str); +qpic_t *Draw_PicFromWad (char *name); +qpic_t *Draw_CachePic (char *path); + +//void GL_SetCanvas (canvastype newcanvas); //johnfitz diff --git a/quakespasm/Quake/gl_draw.c b/quakespasm/Quake/gl_draw.c new file mode 100644 index 00000000..0b63062d --- /dev/null +++ b/quakespasm/Quake/gl_draw.c @@ -0,0 +1,810 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ + +// draw.c -- 2d drawing + +#include "quakedef.h" + +//extern unsigned char d_15to8table[65536]; //johnfitz -- never used + +cvar_t scr_conalpha = {"scr_conalpha", "1"}; //johnfitz + +qpic_t *draw_disc; +qpic_t *draw_backtile; + +gltexture_t *char_texture; //johnfitz +qpic_t *pic_ovr, *pic_ins; //johnfitz -- new cursor handling +qpic_t *pic_nul; //johnfitz -- for missing gfx, don't crash + +//johnfitz -- new pics +byte pic_ovr_data[8][8] = +{ + {255,255,255,255,255,255,255,255}, + {255, 15, 15, 15, 15, 15, 15,255}, + {255, 15, 15, 15, 15, 15, 15, 2}, + {255, 15, 15, 15, 15, 15, 15, 2}, + {255, 15, 15, 15, 15, 15, 15, 2}, + {255, 15, 15, 15, 15, 15, 15, 2}, + {255, 15, 15, 15, 15, 15, 15, 2}, + {255,255, 2, 2, 2, 2, 2, 2}, +}; + +byte pic_ins_data[9][8] = +{ + { 15, 15,255,255,255,255,255,255}, + { 15, 15, 2,255,255,255,255,255}, + { 15, 15, 2,255,255,255,255,255}, + { 15, 15, 2,255,255,255,255,255}, + { 15, 15, 2,255,255,255,255,255}, + { 15, 15, 2,255,255,255,255,255}, + { 15, 15, 2,255,255,255,255,255}, + { 15, 15, 2,255,255,255,255,255}, + {255, 2, 2,255,255,255,255,255}, +}; + +byte pic_nul_data[8][8] = +{ + {252,252,252,252, 0, 0, 0, 0}, + {252,252,252,252, 0, 0, 0, 0}, + {252,252,252,252, 0, 0, 0, 0}, + {252,252,252,252, 0, 0, 0, 0}, + { 0, 0, 0, 0,252,252,252,252}, + { 0, 0, 0, 0,252,252,252,252}, + { 0, 0, 0, 0,252,252,252,252}, + { 0, 0, 0, 0,252,252,252,252}, +}; + +byte pic_stipple_data[8][8] = +{ + {255, 0, 0, 0,255, 0, 0, 0}, + { 0, 0,255, 0, 0, 0,255, 0}, + {255, 0, 0, 0,255, 0, 0, 0}, + { 0, 0,255, 0, 0, 0,255, 0}, + {255, 0, 0, 0,255, 0, 0, 0}, + { 0, 0,255, 0, 0, 0,255, 0}, + {255, 0, 0, 0,255, 0, 0, 0}, + { 0, 0,255, 0, 0, 0,255, 0}, +}; + +byte pic_crosshair_data[8][8] = +{ + {255,255,255,255,255,255,255,255}, + {255,255,255, 8, 9,255,255,255}, + {255,255,255, 6, 8, 2,255,255}, + {255, 6, 8, 8, 6, 8, 8,255}, + {255,255, 2, 8, 8, 2, 2, 2}, + {255,255,255, 7, 8, 2,255,255}, + {255,255,255,255, 2, 2,255,255}, + {255,255,255,255,255,255,255,255}, +}; +//johnfitz + +typedef struct +{ + gltexture_t *gltexture; + float sl, tl, sh, th; +} glpic_t; + +canvastype currentcanvas = CANVAS_NONE; //johnfitz -- for GL_SetCanvas + +//============================================================================== +// +// PIC CACHING +// +//============================================================================== + +typedef struct cachepic_s +{ + char name[MAX_QPATH]; + qpic_t pic; + byte padding[32]; // for appended glpic +} cachepic_t; + +#define MAX_CACHED_PICS 128 +cachepic_t menu_cachepics[MAX_CACHED_PICS]; +int menu_numcachepics; + +byte menuplyr_pixels[4096]; + +// scrap allocation +// Allocate all the little status bar obejcts into a single texture +// to crutch up stupid hardware / drivers + +#define MAX_SCRAPS 2 +#define BLOCK_WIDTH 256 +#define BLOCK_HEIGHT 256 + +int scrap_allocated[MAX_SCRAPS][BLOCK_WIDTH]; +byte scrap_texels[MAX_SCRAPS][BLOCK_WIDTH*BLOCK_HEIGHT]; //johnfitz -- removed *4 after BLOCK_HEIGHT +qboolean scrap_dirty; +gltexture_t *scrap_textures[MAX_SCRAPS]; //johnfitz + +/* +================ +Scrap_AllocBlock + +returns an index into scrap_texnums[] and the position inside it +================ +*/ +int Scrap_AllocBlock (int w, int h, int *x, int *y) +{ + int i, j; + int best, best2; + //int bestx; unused -- kristian + int texnum; + + for (texnum=0 ; texnum= best) + break; + if (scrap_allocated[texnum][i+j] > best2) + best2 = scrap_allocated[texnum][i+j]; + } + if (j == w) + { // this is a valid spot + *x = i; + *y = best = best2; + } + } + + if (best + h > BLOCK_HEIGHT) + continue; + + for (i=0 ; idata; + + // load little ones into the scrap + if (p->width < 64 && p->height < 64) + { + int x, y; + int i, j, k; + int texnum; + + texnum = Scrap_AllocBlock (p->width, p->height, &x, &y); + scrap_dirty = true; + k = 0; + for (i=0 ; iheight ; i++) + for (j=0 ; jwidth ; j++, k++) + scrap_texels[texnum][(y+i)*BLOCK_WIDTH + x + j] = p->data[k]; + gl->gltexture = scrap_textures[texnum]; //johnfitz -- changed to an array + //johnfitz -- no longer go from 0.01 to 0.99 + gl->sl = x/(float)BLOCK_WIDTH; + gl->sh = (x+p->width)/(float)BLOCK_WIDTH; + gl->tl = y/(float)BLOCK_WIDTH; + gl->th = (y+p->height)/(float)BLOCK_WIDTH; + } + else + { + char texturename[64]; //johnfitz + sprintf (texturename, "%s:%s", WADFILENAME, name); //johnfitz + + offset = (unsigned)p - (unsigned)wad_base + sizeof(int)*2; //johnfitz + + gl->gltexture = TexMgr_LoadImage (NULL, texturename, p->width, p->height, SRC_INDEXED, p->data, WADFILENAME, + offset, TEXPREF_ALPHA | TEXPREF_PAD | TEXPREF_NOPICMIP); //johnfitz -- TexMgr + gl->sl = 0; + gl->sh = (float)p->width/(float)TexMgr_PadConditional(p->width); //johnfitz + gl->tl = 0; + gl->th = (float)p->height/(float)TexMgr_PadConditional(p->height); //johnfitz + } + + return p; +} + +/* +================ +Draw_CachePic +================ +*/ +qpic_t *Draw_CachePic (char *path) +{ + cachepic_t *pic; + int i; + qpic_t *dat; + glpic_t *gl; + + for (pic=menu_cachepics, i=0 ; iname)) + return &pic->pic; + + if (menu_numcachepics == MAX_CACHED_PICS) + Sys_Error ("menu_numcachepics == MAX_CACHED_PICS"); + menu_numcachepics++; + strcpy (pic->name, path); + +// +// load the pic from disk +// + dat = (qpic_t *)COM_LoadTempFile (path); + if (!dat) + Sys_Error ("Draw_CachePic: failed to load %s", path); + SwapPic (dat); + + // HACK HACK HACK --- we need to keep the bytes for + // the translatable player picture just for the menu + // configuration dialog + if (!strcmp (path, "gfx/menuplyr.lmp")) + memcpy (menuplyr_pixels, dat->data, dat->width*dat->height); + + pic->pic.width = dat->width; + pic->pic.height = dat->height; + + gl = (glpic_t *)pic->pic.data; + gl->gltexture = TexMgr_LoadImage (NULL, path, dat->width, dat->height, SRC_INDEXED, dat->data, path, + sizeof(int)*2, TEXPREF_ALPHA | TEXPREF_PAD | TEXPREF_NOPICMIP); //johnfitz -- TexMgr + gl->sl = 0; + gl->sh = (float)dat->width/(float)TexMgr_PadConditional(dat->width); //johnfitz + gl->tl = 0; + gl->th = (float)dat->height/(float)TexMgr_PadConditional(dat->height); //johnfitz + + return &pic->pic; +} + +/* +================ +Draw_MakePic -- johnfitz -- generate pics from internal data +================ +*/ +qpic_t *Draw_MakePic (char *name, int width, int height, byte *data) +{ + int flags = TEXPREF_NEAREST | TEXPREF_ALPHA | TEXPREF_PERSIST | TEXPREF_NOPICMIP | TEXPREF_PAD; + qpic_t *pic; + glpic_t *gl; + + pic = Hunk_Alloc (sizeof(qpic_t) - 4 + sizeof (glpic_t)); + pic->width = width; + pic->height = height; + + gl = (glpic_t *)pic->data; + gl->gltexture = TexMgr_LoadImage (NULL, name, width, height, SRC_INDEXED, data, "", (unsigned)data, flags); + gl->sl = 0; + gl->sh = (float)width/(float)TexMgr_PadConditional(width); + gl->tl = 0; + gl->th = (float)height/(float)TexMgr_PadConditional(height); + + return pic; +} + +//============================================================================== +// +// INIT +// +//============================================================================== + +/* +=============== +Draw_LoadPics -- johnfitz +=============== +*/ +void Draw_LoadPics (void) +{ + byte *data; + unsigned offset; + + data = W_GetLumpName ("conchars"); + if (!data) Sys_Error ("Draw_LoadPics: couldn't load conchars"); + offset = (unsigned)data - (unsigned)wad_base; + char_texture = TexMgr_LoadImage (NULL, WADFILENAME":conchars", 128, 128, SRC_INDEXED, data, + WADFILENAME, offset, TEXPREF_ALPHA | TEXPREF_NEAREST | TEXPREF_NOPICMIP | TEXPREF_CONCHARS); + + draw_disc = Draw_PicFromWad ("disc"); + draw_backtile = Draw_PicFromWad ("backtile"); +} + +/* +=============== +Draw_NewGame -- johnfitz +=============== +*/ +void Draw_NewGame (void) +{ + //gltexture_t *glt; unused -- kristian + cachepic_t *pic; + int i; + + // empty scrap and reallocate gltextures + memset(&scrap_allocated, 0, sizeof(scrap_allocated)); + memset(&scrap_texels, 255, sizeof(scrap_texels)); + Scrap_Upload (); //creates 2 empty gltextures + + // reload wad pics + W_LoadWadFile (); //johnfitz -- filename is now hard-coded for honesty + Draw_LoadPics (); + SCR_LoadPics (); + Sbar_LoadPics (); + + // empty lmp cache + for (pic = menu_cachepics, i = 0; i < menu_numcachepics; pic++, i++) + pic->name[0] = 0; + menu_numcachepics = 0; +} + +/* +=============== +Draw_Init -- johnfitz -- rewritten +=============== +*/ +void Draw_Init (void) +{ + Cvar_RegisterVariable (&scr_conalpha, NULL); + + // clear scrap and allocate gltextures + memset(&scrap_allocated, 0, sizeof(scrap_allocated)); + memset(&scrap_texels, 255, sizeof(scrap_texels)); + Scrap_Upload (); //creates 2 empty textures + + // create internal pics + pic_ins = Draw_MakePic ("ins", 8, 9, &pic_ins_data[0][0]); + pic_ovr = Draw_MakePic ("ovr", 8, 8, &pic_ovr_data[0][0]); + pic_nul = Draw_MakePic ("nul", 8, 8, &pic_nul_data[0][0]); + + // load game pics + Draw_LoadPics (); +} + +//============================================================================== +// +// 2D DRAWING +// +//============================================================================== + +/* +================ +Draw_CharacterQuad -- johnfitz -- seperate function to spit out verts +================ +*/ +void Draw_CharacterQuad (int x, int y, char num) +{ + int row, col; + float frow, fcol, size; + + row = num>>4; + col = num&15; + + frow = row*0.0625; + fcol = col*0.0625; + size = 0.0625; + + glTexCoord2f (fcol, frow); + glVertex2f (x, y); + glTexCoord2f (fcol + size, frow); + glVertex2f (x+8, y); + glTexCoord2f (fcol + size, frow + size); + glVertex2f (x+8, y+8); + glTexCoord2f (fcol, frow + size); + glVertex2f (x, y+8); +} + +/* +================ +Draw_Character -- johnfitz -- modified to call Draw_CharacterQuad +================ +*/ +void Draw_Character (int x, int y, int num) +{ + if (y <= -8) + return; // totally off screen + + num &= 255; + + if (num == 32) + return; //don't waste verts on spaces + + GL_Bind (char_texture); + glBegin (GL_QUADS); + + Draw_CharacterQuad (x, y, (char) num); + + glEnd (); +} + +/* +================ +Draw_String -- johnfitz -- modified to call Draw_CharacterQuad +================ +*/ +void Draw_String (int x, int y, char *str) +{ + if (y <= -8) + return; // totally off screen + + GL_Bind (char_texture); + glBegin (GL_QUADS); + + while (*str) + { + if (*str != 32) //don't waste verts on spaces + Draw_CharacterQuad (x, y, *str); + str++; + x += 8; + } + + glEnd (); +} + +/* +============= +Draw_Pic -- johnfitz -- modified +============= +*/ +void Draw_Pic (int x, int y, qpic_t *pic) +{ + glpic_t *gl; + + if (scrap_dirty) + Scrap_Upload (); + gl = (glpic_t *)pic->data; + GL_Bind (gl->gltexture); + glBegin (GL_QUADS); + glTexCoord2f (gl->sl, gl->tl); + glVertex2f (x, y); + glTexCoord2f (gl->sh, gl->tl); + glVertex2f (x+pic->width, y); + glTexCoord2f (gl->sh, gl->th); + glVertex2f (x+pic->width, y+pic->height); + glTexCoord2f (gl->sl, gl->th); + glVertex2f (x, y+pic->height); + glEnd (); +} + +/* +============= +Draw_TransPicTranslate -- johnfitz -- rewritten to use texmgr to do translation + +Only used for the player color selection menu +============= +*/ +void Draw_TransPicTranslate (int x, int y, qpic_t *pic, int top, int bottom) +{ + static int oldtop = -2; + static int oldbottom = -2; + gltexture_t *glt; + + if (top != oldtop || bottom != oldbottom) + { + oldtop = top; + oldbottom = bottom; + glt = ((glpic_t *)pic->data)->gltexture; + TexMgr_ReloadImage (glt, top, bottom); + } + Draw_Pic (x, y, pic); +} + +/* +================ +Draw_ConsoleBackground -- johnfitz -- rewritten +================ +*/ +void Draw_ConsoleBackground (void) +{ + qpic_t *pic; + float alpha; + + pic = Draw_CachePic ("gfx/conback.lmp"); + pic->width = vid.conwidth; + pic->height = vid.conheight; + + alpha = (con_forcedup) ? 1.0 : scr_conalpha.value; + +// GL_SetCanvas (CANVAS_CONSOLE); //in case this is called from weird places + + if (alpha > 0.0) + { + if (alpha < 1.0) + { + glEnable (GL_BLEND); + glColor4f (1,1,1,alpha); + glDisable (GL_ALPHA_TEST); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + } + + Draw_Pic (0, 0, pic); + + if (alpha < 1.0) + { + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glEnable (GL_ALPHA_TEST); + glDisable (GL_BLEND); + glColor4f (1,1,1,1); + } + } +} + + +/* +============= +Draw_TileClear + +This repeats a 64*64 tile graphic to fill the screen around a sized down +refresh window. +============= +*/ +void Draw_TileClear (int x, int y, int w, int h) +{ + glpic_t *gl; + + gl = (glpic_t *)draw_backtile->data; + + glColor3f (1,1,1); + GL_Bind (gl->gltexture); + glBegin (GL_QUADS); + glTexCoord2f (x/64.0, y/64.0); + glVertex2f (x, y); + glTexCoord2f ( (x+w)/64.0, y/64.0); + glVertex2f (x+w, y); + glTexCoord2f ( (x+w)/64.0, (y+h)/64.0); + glVertex2f (x+w, y+h); + glTexCoord2f ( x/64.0, (y+h)/64.0 ); + glVertex2f (x, y+h); + glEnd (); +} + +/* +============= +Draw_Fill + +Fills a box of pixels with a single color +============= +*/ +void Draw_Fill (int x, int y, int w, int h, int c, float alpha) //johnfitz -- added alpha +{ + byte *pal = (byte *)d_8to24table; //johnfitz -- use d_8to24table instead of host_basepal + + glDisable (GL_TEXTURE_2D); + glEnable (GL_BLEND); //johnfitz -- for alpha + glDisable (GL_ALPHA_TEST); //johnfitz -- for alpha + glColor4f (pal[c*4]/255.0, pal[c*4+1]/255.0, pal[c*4+2]/255.0, alpha); //johnfitz -- added alpha + + glBegin (GL_QUADS); + glVertex2f (x,y); + glVertex2f (x+w, y); + glVertex2f (x+w, y+h); + glVertex2f (x, y+h); + glEnd (); + + glColor3f (1,1,1); + glDisable (GL_BLEND); //johnfitz -- for alpha + glEnable (GL_ALPHA_TEST); //johnfitz -- for alpha + glEnable (GL_TEXTURE_2D); +} + +/* +================ +Draw_FadeScreen -- johnfitz -- revised +================ +*/ +void Draw_FadeScreen (void) +{ + GL_SetCanvas (CANVAS_DEFAULT); + + glEnable (GL_BLEND); + glDisable (GL_ALPHA_TEST); + glDisable (GL_TEXTURE_2D); + glColor4f (0, 0, 0, 0.5); + glBegin (GL_QUADS); + + glVertex2f (0,0); + glVertex2f (glwidth, 0); + glVertex2f (glwidth, glheight); + glVertex2f (0, glheight); + + glEnd (); + glColor4f (1,1,1,1); + glEnable (GL_TEXTURE_2D); + glEnable (GL_ALPHA_TEST); + glDisable (GL_BLEND); + + Sbar_Changed(); +} + +/* +================ +Draw_BeginDisc + +Draws the little blue disc in the corner of the screen. +Call before beginning any disc IO. +================ +*/ +void Draw_BeginDisc (void) +{ + int viewport[4]; //johnfitz + canvastype oldcanvas; //johnfitz + + if (!draw_disc) + return; + + //johnfitz -- intel video workarounds from Baker + if (isIntelVideo) + return; + //johnfitz + + //johnfitz -- canvas and matrix stuff + glGetIntegerv (GL_VIEWPORT, viewport); + glMatrixMode(GL_PROJECTION); + glPushMatrix (); + glMatrixMode(GL_MODELVIEW); + glPushMatrix (); + oldcanvas = currentcanvas; + GL_SetCanvas (CANVAS_TOPRIGHT); + currentcanvas = oldcanvas; // a bit of a hack, since GL_SetCanvas doesn't know we are going to pop the stack + //johnfitz + + glDrawBuffer (GL_FRONT); + Draw_Pic (320 - 24, 0, draw_disc); + glDrawBuffer (GL_BACK); + + //johnfitz -- restore everything so that 3d rendering isn't fucked up + glMatrixMode(GL_PROJECTION); + glPopMatrix (); + glMatrixMode(GL_MODELVIEW); + glPopMatrix (); + glViewport (viewport[0], viewport[1], viewport[2], viewport[3]); + //johnfitz +} + +/* +================ +GL_SetCanvas -- johnfitz -- support various canvas types +================ +*/ +void GL_SetCanvas (canvastype newcanvas) +{ + extern vrect_t scr_vrect; + float s, w; + int lines; + + if (newcanvas == currentcanvas) + return; + + currentcanvas = newcanvas; + + glMatrixMode(GL_PROJECTION); + glLoadIdentity (); + + switch(newcanvas) + { + case CANVAS_DEFAULT: + glOrtho (0, glwidth, glheight, 0, -99999, 99999); + glViewport (glx, gly, glwidth, glheight); + break; + case CANVAS_CONSOLE: + lines = vid.conheight - (scr_con_current * vid.conheight / glheight); + glOrtho (0, vid.conwidth, vid.conheight + lines, lines, -99999, 99999); + glViewport (glx, gly, glwidth, glheight); + break; + case CANVAS_MENU: + s = min ((float)glwidth / 320.0, (float)glheight / 200.0); + s = CLAMP (1.0, scr_menuscale.value, s); + glOrtho (0, 320, 200, 0, -99999, 99999); + glViewport (glx + (glwidth - 320*s) / 2, gly + (glheight - 200*s) / 2, 320*s, 200*s); + break; + case CANVAS_SBAR: + s = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); + if (cl.gametype == GAME_DEATHMATCH) + { + glOrtho (0, glwidth / s, 48, 0, -99999, 99999); + glViewport (glx, gly, glwidth, 48*s); + } + else + { + glOrtho (0, 320, 48, 0, -99999, 99999); + glViewport (glx + (glwidth - 320*s) / 2, gly, 320*s, 48*s); + } + break; + case CANVAS_WARPIMAGE: + glOrtho (0, 128, 0, 128, -99999, 99999); + glViewport (glx, gly+glheight-gl_warpimagesize, gl_warpimagesize, gl_warpimagesize); + break; + case CANVAS_CROSSHAIR: //0,0 is center of viewport + s = CLAMP (1.0, scr_crosshaircale.value, 10.0); + glOrtho (scr_vrect.width/-2/s, scr_vrect.width/2/s, scr_vrect.height/2/s, scr_vrect.height/-2/s, -99999, 99999); + glViewport (scr_vrect.x, glheight - scr_vrect.y - scr_vrect.height, scr_vrect.width & ~1, scr_vrect.height & ~1); + break; + case CANVAS_BOTTOMLEFT: //used by devstats + s = (float)glwidth/vid.conwidth; //use console scale + glOrtho (0, 320, 200, 0, -99999, 99999); + glViewport (glx, gly, 320*s, 200*s); + break; + case CANVAS_BOTTOMRIGHT: //used by fps/clock + s = (float)glwidth/vid.conwidth; //use console scale + glOrtho (0, 320, 200, 0, -99999, 99999); + glViewport (glx+glwidth-320*s, gly, 320*s, 200*s); + break; + case CANVAS_TOPRIGHT: //used by disc + s = 1; + glOrtho (0, 320, 200, 0, -99999, 99999); + glViewport (glx+glwidth-320*s, gly+glheight-200*s, 320*s, 200*s); + break; + default: + Sys_Error ("GL_SetCanvas: bad canvas type"); + } + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity (); +} + +/* +================ +GL_Set2D -- johnfitz -- rewritten +================ +*/ +void GL_Set2D (void) +{ + currentcanvas = -1; + GL_SetCanvas (CANVAS_DEFAULT); + + glDisable (GL_DEPTH_TEST); + glDisable (GL_CULL_FACE); + glDisable (GL_BLEND); + glEnable (GL_ALPHA_TEST); + glColor4f (1,1,1,1); +} diff --git a/quakespasm/Quake/gl_fog.c b/quakespasm/Quake/gl_fog.c new file mode 100644 index 00000000..38cea5d4 --- /dev/null +++ b/quakespasm/Quake/gl_fog.c @@ -0,0 +1,386 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. +*/ +//gl_fog.c -- global and volumetric fog + +#include "quakedef.h" + +//============================================================================== +// +// GLOBAL FOG +// +//============================================================================== + +float fog_density; +float fog_red; +float fog_green; +float fog_blue; + +float old_density; +float old_red; +float old_green; +float old_blue; + +float fade_time; //duration of fade +float fade_done; //time when fade will be done + +/* +============= +Fog_Update + +update internal variables +============= +*/ +void Fog_Update (float density, float red, float green, float blue, float time) +{ + //save previous settings for fade + if (time > 0) + { + //check for a fade in progress + if (fade_done > cl.time) + { + float f;//, d; unused -- kristian + + f = (fade_done - cl.time) / fade_time; + old_density = f * old_density + (1.0 - f) * fog_density; + old_red = f * old_red + (1.0 - f) * fog_red; + old_green = f * old_green + (1.0 - f) * fog_green; + old_blue = f * old_blue + (1.0 - f) * fog_blue; + } + else + { + old_density = fog_density; + old_red = fog_red; + old_green = fog_green; + old_blue = fog_blue; + } + } + + fog_density = density; + fog_red = red; + fog_green = green; + fog_blue = blue; + fade_time = time; + fade_done = cl.time + time; +} + +/* +============= +Fog_ParseServerMessage + +handle an SVC_FOG message from server +============= +*/ +void Fog_ParseServerMessage (void) +{ + float density, red, green, blue, time; + + density = MSG_ReadByte() / 255.0; + red = MSG_ReadByte() / 255.0; + green = MSG_ReadByte() / 255.0; + blue = MSG_ReadByte() / 255.0; + time = max(0.0, MSG_ReadShort() / 100.0); + + Fog_Update (density, red, green, blue, time); +} + +/* +============= +Fog_FogCommand_f + +handle the 'fog' console command +============= +*/ +void Fog_FogCommand_f (void) +{ + switch (Cmd_Argc()) + { + default: + case 1: + Con_Printf("usage:\n"); + Con_Printf(" fog \n"); + Con_Printf(" fog \n"); + Con_Printf(" fog \n"); + Con_Printf("current values:\n"); + Con_Printf(" \"density\" is \"%f\"\n", fog_density); + Con_Printf(" \"red\" is \"%f\"\n", fog_red); + Con_Printf(" \"green\" is \"%f\"\n", fog_green); + Con_Printf(" \"blue\" is \"%f\"\n", fog_blue); + break; + case 2: + Fog_Update(max(0.0, atof(Cmd_Argv(1))), + fog_red, + fog_green, + fog_blue, + 0.0); + break; + case 3: //TEST + Fog_Update(max(0.0, atof(Cmd_Argv(1))), + fog_red, + fog_green, + fog_blue, + atof(Cmd_Argv(2))); + break; + case 4: + Fog_Update(fog_density, + CLAMP(0.0, atof(Cmd_Argv(1)), 1.0), + CLAMP(0.0, atof(Cmd_Argv(2)), 1.0), + CLAMP(0.0, atof(Cmd_Argv(3)), 1.0), + 0.0); + break; + case 5: + Fog_Update(fmax(0.0, atof(Cmd_Argv(1))), + CLAMP(0.0, atof(Cmd_Argv(2)), 1.0), + CLAMP(0.0, atof(Cmd_Argv(3)), 1.0), + CLAMP(0.0, atof(Cmd_Argv(4)), 1.0), + 0.0); + break; + case 6: //TEST + Fog_Update(fmax(0.0, atof(Cmd_Argv(1))), + CLAMP(0.0, atof(Cmd_Argv(2)), 1.0), + CLAMP(0.0, atof(Cmd_Argv(3)), 1.0), + CLAMP(0.0, atof(Cmd_Argv(4)), 1.0), + atof(Cmd_Argv(5))); + break; + } +} + +/* +============= +Fog_ParseWorldspawn + +called at map load +============= +*/ +void Fog_ParseWorldspawn (void) +{ + char key[128], value[4096]; + char *data; + + //initially no fog + fog_density = 0.0; + old_density = 0.0; + fade_time = 0.0; + fade_done = 0.0; + + data = COM_Parse(cl.worldmodel->entities); + if (!data) + return; // error + if (com_token[0] != '{') + return; // error + while (1) + { + data = COM_Parse(data); + if (!data) + return; // error + if (com_token[0] == '}') + break; // end of worldspawn + if (com_token[0] == '_') + strcpy(key, com_token + 1); + else + strcpy(key, com_token); + while (key[strlen(key)-1] == ' ') // remove trailing spaces + key[strlen(key)-1] = 0; + data = COM_Parse(data); + if (!data) + return; // error + strcpy(value, com_token); + + if (!strcmp("fog", key)) + { + sscanf(value, "%f %f %f %f", &fog_density, &fog_red, &fog_green, &fog_blue); + } + } +} + +/* +============= +Fog_GetColor + +calculates fog color for this frame, taking into account fade times +============= +*/ +float *Fog_GetColor (void) +{ + static float c[4]; + float f; + int i; + + if (fade_done > cl.time) + { + f = (fade_done - cl.time) / fade_time; + c[0] = f * old_red + (1.0 - f) * fog_red; + c[1] = f * old_green + (1.0 - f) * fog_green; + c[2] = f * old_blue + (1.0 - f) * fog_blue; + c[3] = 1.0; + } + else + { + c[0] = fog_red; + c[1] = fog_green; + c[2] = fog_blue; + c[3] = 1.0; + } + + //find closest 24-bit RGB value, so solid-colored sky can match the fog perfectly + for (i=0;i<3;i++) + c[i] = (float)(Q_rint(c[i] * 255)) / 255.0f; + + return c; +} + +/* +============= +Fog_GetDensity + +returns current density of fog +============= +*/ +float Fog_GetDensity (void) +{ + float f; + + if (fade_done > cl.time) + { + f = (fade_done - cl.time) / fade_time; + return f * old_density + (1.0 - f) * fog_density; + } + else + return fog_density; +} + +/* +============= +Fog_SetupFrame + +called at the beginning of each frame +============= +*/ +void Fog_SetupFrame (void) +{ + glFogfv(GL_FOG_COLOR, Fog_GetColor()); + glFogf(GL_FOG_DENSITY, Fog_GetDensity() / 64.0); +} + +/* +============= +Fog_EnableGFog + +called before drawing stuff that should be fogged +============= +*/ +void Fog_EnableGFog (void) +{ + if (Fog_GetDensity() > 0) + glEnable(GL_FOG); +} + +/* +============= +Fog_DisableGFog + +called after drawing stuff that should be fogged +============= +*/ +void Fog_DisableGFog (void) +{ + if (Fog_GetDensity() > 0) + glDisable(GL_FOG); +} + +/* +============= +Fog_StartAdditive + +called before drawing stuff that is additive blended -- sets fog color to black +============= +*/ +void Fog_StartAdditive (void) +{ + vec3_t color = {0,0,0}; + + if (Fog_GetDensity() > 0) + glFogfv(GL_FOG_COLOR, color); +} + +/* +============= +Fog_StopAdditive + +called after drawing stuff that is additive blended -- restores fog color +============= +*/ +void Fog_StopAdditive (void) +{ + if (Fog_GetDensity() > 0) + glFogfv(GL_FOG_COLOR, Fog_GetColor()); +} + +//============================================================================== +// +// VOLUMETRIC FOG +// +//============================================================================== + +cvar_t r_vfog = {"r_vfog", "1"}; + +void Fog_DrawVFog (void){} +void Fog_MarkModels (void){} + +//============================================================================== +// +// INIT +// +//============================================================================== + +/* +============= +Fog_NewMap + +called whenever a map is loaded +============= +*/ +void Fog_NewMap (void) +{ + Fog_ParseWorldspawn (); //for global fog + Fog_MarkModels (); //for volumetric fog +} + +/* +============= +Fog_Init + +called when quake initializes +============= +*/ +void Fog_Init (void) +{ + Cmd_AddCommand ("fog",Fog_FogCommand_f); + + //Cvar_RegisterVariable (&r_vfog, NULL); + + //set up global fog + fog_density = 0.0; + fog_red = 0.3; + fog_green = 0.3; + fog_blue = 0.3; + + glFogi(GL_FOG_MODE, GL_EXP2); +} diff --git a/quakespasm/Quake/gl_mesh.c b/quakespasm/Quake/gl_mesh.c new file mode 100644 index 00000000..d0396216 --- /dev/null +++ b/quakespasm/Quake/gl_mesh.c @@ -0,0 +1,413 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// gl_mesh.c: triangle model functions + +#include "quakedef.h" + + + +/* +================================================================= + +ALIAS MODEL DISPLAY LIST GENERATION + +================================================================= +*/ + +model_t *aliasmodel; +aliashdr_t *paliashdr; + +qboolean used[8192]; + +// the command list holds counts and s/t values that are valid for +// every frame +int commands[8192]; +int numcommands; + +// all frames will have their vertexes rearranged and expanded +// so they are in the order expected by the command list +int vertexorder[8192]; +int numorder; + +int allverts, alltris; + +int stripverts[128]; +int striptris[128]; +int stripcount; + +/* +================ +StripLength +================ +*/ +int StripLength (int starttri, int startv) +{ + int m1, m2; + int j; + mtriangle_t *last, *check; + int k; + + used[starttri] = 2; + + last = &triangles[starttri]; + + stripverts[0] = last->vertindex[(startv)%3]; + stripverts[1] = last->vertindex[(startv+1)%3]; + stripverts[2] = last->vertindex[(startv+2)%3]; + + striptris[0] = starttri; + stripcount = 1; + + m1 = last->vertindex[(startv+2)%3]; + m2 = last->vertindex[(startv+1)%3]; + + // look for a matching triangle +nexttri: + for (j=starttri+1, check=&triangles[starttri+1] ; jnumtris ; j++, check++) + { + if (check->facesfront != last->facesfront) + continue; + for (k=0 ; k<3 ; k++) + { + if (check->vertindex[k] != m1) + continue; + if (check->vertindex[ (k+1)%3 ] != m2) + continue; + + // this is the next part of the fan + + // if we can't use this triangle, this tristrip is done + if (used[j]) + goto done; + + // the new edge + if (stripcount & 1) + m2 = check->vertindex[ (k+2)%3 ]; + else + m1 = check->vertindex[ (k+2)%3 ]; + + stripverts[stripcount+2] = check->vertindex[ (k+2)%3 ]; + striptris[stripcount] = j; + stripcount++; + + used[j] = 2; + goto nexttri; + } + } +done: + + // clear the temp used flags + for (j=starttri+1 ; jnumtris ; j++) + if (used[j] == 2) + used[j] = 0; + + return stripcount; +} + +/* +=========== +FanLength +=========== +*/ +int FanLength (int starttri, int startv) +{ + int m1, m2; + int j; + mtriangle_t *last, *check; + int k; + + used[starttri] = 2; + + last = &triangles[starttri]; + + stripverts[0] = last->vertindex[(startv)%3]; + stripverts[1] = last->vertindex[(startv+1)%3]; + stripverts[2] = last->vertindex[(startv+2)%3]; + + striptris[0] = starttri; + stripcount = 1; + + m1 = last->vertindex[(startv+0)%3]; + m2 = last->vertindex[(startv+2)%3]; + + + // look for a matching triangle +nexttri: + for (j=starttri+1, check=&triangles[starttri+1] ; jnumtris ; j++, check++) + { + if (check->facesfront != last->facesfront) + continue; + for (k=0 ; k<3 ; k++) + { + if (check->vertindex[k] != m1) + continue; + if (check->vertindex[ (k+1)%3 ] != m2) + continue; + + // this is the next part of the fan + + // if we can't use this triangle, this tristrip is done + if (used[j]) + goto done; + + // the new edge + m2 = check->vertindex[ (k+2)%3 ]; + + stripverts[stripcount+2] = m2; + striptris[stripcount] = j; + stripcount++; + + used[j] = 2; + goto nexttri; + } + } +done: + + // clear the temp used flags + for (j=starttri+1 ; jnumtris ; j++) + if (used[j] == 2) + used[j] = 0; + + return stripcount; +} + + +/* +================ +BuildTris + +Generate a list of trifans or strips +for the model, which holds for all frames +================ +*/ +void BuildTris (void) +{ + int i, j, k; + int startv; + /* unused -- kristian + mtriangle_t *last, *check; + int m1, m2; + int striplength; + trivertx_t *v; + mtriangle_t *tv; + int index; + */ + float s, t; + int len, bestlen, besttype; + int bestverts[1024]; + int besttris[1024]; + int type; + + // + // build tristrips + // + numorder = 0; + numcommands = 0; + memset (used, 0, sizeof(used)); + for (i=0 ; inumtris ; i++) + { + // pick an unused triangle and start the trifan + if (used[i]) + continue; + + bestlen = 0; + for (type = 0 ; type < 2 ; type++) +// type = 1; + { + for (startv =0 ; startv < 3 ; startv++) + { + if (type == 1) + len = StripLength (i, startv); + else + len = FanLength (i, startv); + if (len > bestlen) + { + besttype = type; + bestlen = len; + for (j=0 ; jskinwidth / 2; // on back side + s = (s + 0.5) / pheader->skinwidth; + t = (t + 0.5) / pheader->skinheight; + + *(float *)&commands[numcommands++] = s; + *(float *)&commands[numcommands++] = t; + } + } + + commands[numcommands++] = 0; // end of list marker + + Con_DPrintf ("%3i tri %3i vert %3i cmd\n", pheader->numtris, numorder, numcommands); + + allverts += numorder; + alltris += pheader->numtris; +} + + +/* +================ +GL_MakeAliasModelDisplayLists +================ +*/ +void GL_MakeAliasModelDisplayLists (model_t *m, aliashdr_t *hdr) +{ + int i, j; + int *cmds; + trivertx_t *verts; + /* unused -- kristian + maliasgroup_t *paliasgroup; + char cache[MAX_QPATH], fullpath[MAX_OSPATH], *c; + FILE *f; + int len; + byte *data; + */ + float hscale, vscale; //johnfitz -- padded skins + int count; //johnfitz -- precompute texcoords for padded skins + int *loadcmds; //johnfitz + + //johnfitz -- padded skins + hscale = (float)hdr->skinwidth/(float)TexMgr_PadConditional(hdr->skinwidth); + vscale = (float)hdr->skinheight/(float)TexMgr_PadConditional(hdr->skinheight); + //johnfitz + + aliasmodel = m; + paliashdr = hdr; // (aliashdr_t *)Mod_Extradata (m); + +//johnfitz -- generate meshes + +#if 1 //always regenerate meshes + + Con_DPrintf ("meshing %s...\n",m->name); + BuildTris (); + +#else //conditional regeneration + + if (gl_alwaysmesh.value) // build it from scratch, and don't bother saving it to disk + { + Con_DPrintf ("meshing %s...\n",m->name); + BuildTris (); + } + else // check disk cache, and rebuild it and save to disk if necessary + { + // FITZQUAKE 0.85 CREATES DIRECTORIES HERE + // + // look for a cached version + // + strcpy (cache, "glquake/"); + COM_StripExtension (m->name+strlen("progs/"), cache+strlen("glquake/")); + strcat (cache, ".ms2"); + + COM_FOpenFile (cache, &f); + if (f) + { + fread (&numcommands, 4, 1, f); + fread (&numorder, 4, 1, f); + fread (&commands, numcommands * sizeof(commands[0]), 1, f); + fread (&vertexorder, numorder * sizeof(vertexorder[0]), 1, f); + fclose (f); + } + else + { + // + // build it from scratch + // + Con_Printf ("meshing %s...\n",m->name); + BuildTris (); + + // + // save out the cached version + // + sprintf (fullpath, "%s/%s", com_gamedir, cache); + f = fopen (fullpath, "wb"); + if (f) + { + fwrite (&numcommands, 4, 1, f); + fwrite (&numorder, 4, 1, f); + fwrite (&commands, numcommands * sizeof(commands[0]), 1, f); + fwrite (&vertexorder, numorder * sizeof(vertexorder[0]), 1, f); + fclose (f); + } + } + } +#endif +//johnfitz + + + // save the data out + + paliashdr->poseverts = numorder; + + cmds = Hunk_Alloc (numcommands * 4); + paliashdr->commands = (byte *)cmds - (byte *)paliashdr; + + //johnfitz -- precompute texcoords for padded skins + loadcmds = commands; + while(1) + { + *cmds++ = count = *loadcmds++; + + if (!count) + break; + + if (count < 0) + count = -count; + + do + { + *(float *)cmds++ = hscale * (*(float *)loadcmds++); + *(float *)cmds++ = vscale * (*(float *)loadcmds++); + } while (--count); + } + //johnfitz + + verts = Hunk_Alloc (paliashdr->numposes * paliashdr->poseverts * sizeof(trivertx_t)); + paliashdr->posedata = (byte *)verts - (byte *)paliashdr; + for (i=0 ; inumposes ; i++) + for (j=0 ; jname, "notexture"); + r_notexture_mip->height = r_notexture_mip->width = 32; + + r_notexture_mip2 = Hunk_AllocName (sizeof(texture_t), "r_notexture_mip2"); + strcpy (r_notexture_mip2->name, "notexture2"); + r_notexture_mip2->height = r_notexture_mip2->width = 32; + //johnfitz +} + +/* +=============== +Mod_Extradata + +Caches the data if needed +=============== +*/ +void *Mod_Extradata (model_t *mod) +{ + void *r; + + r = Cache_Check (&mod->cache); + if (r) + return r; + + Mod_LoadModel (mod, true); + + if (!mod->cache.data) + Sys_Error ("Mod_Extradata: caching failed"); + return mod->cache.data; +} + +/* +=============== +Mod_PointInLeaf +=============== +*/ +mleaf_t *Mod_PointInLeaf (vec3_t p, model_t *model) +{ + mnode_t *node; + float d; + mplane_t *plane; + + if (!model || !model->nodes) + Sys_Error ("Mod_PointInLeaf: bad model"); + + node = model->nodes; + while (1) + { + if (node->contents < 0) + return (mleaf_t *)node; + plane = node->plane; + d = DotProduct (p,plane->normal) - plane->dist; + if (d > 0) + node = node->children[0]; + else + node = node->children[1]; + } + + return NULL; // never reached +} + + +/* +=================== +Mod_DecompressVis +=================== +*/ +byte *Mod_DecompressVis (byte *in, model_t *model) +{ + static byte decompressed[MAX_MAP_LEAFS/8]; + int c; + byte *out; + int row; + + row = (model->numleafs+7)>>3; + out = decompressed; + +#if 0 + memcpy (out, in, row); +#else + if (!in) + { // no vis info, so make all visible + while (row) + { + *out++ = 0xff; + row--; + } + return decompressed; + } + + do + { + if (*in) + { + *out++ = *in++; + continue; + } + + c = in[1]; + in += 2; + while (c) + { + *out++ = 0; + c--; + } + } while (out - decompressed < row); +#endif + + return decompressed; +} + +byte *Mod_LeafPVS (mleaf_t *leaf, model_t *model) +{ + if (leaf == model->leafs) + return mod_novis; + return Mod_DecompressVis (leaf->compressed_vis, model); +} + +/* +=================== +Mod_ClearAll +=================== +*/ +void Mod_ClearAll (void) +{ + int i; + model_t *mod; + + for (i=0 , mod=mod_known ; itype != mod_alias) + { + mod->needload = true; + TexMgr_FreeTexturesForOwner (mod); //johnfitz + } +} + +/* +================== +Mod_FindName + +================== +*/ +model_t *Mod_FindName (char *name) +{ + int i; + model_t *mod; + + if (!name[0]) + Sys_Error ("Mod_FindName: NULL name"); //johnfitz -- was "Mod_ForName" + +// +// search the currently loaded models +// + for (i=0 , mod=mod_known ; iname, name) ) + break; + + if (i == mod_numknown) + { + if (mod_numknown == MAX_MOD_KNOWN) + Sys_Error ("mod_numknown == MAX_MOD_KNOWN"); + strcpy (mod->name, name); + mod->needload = true; + mod_numknown++; + } + + return mod; +} + +/* +================== +Mod_TouchModel + +================== +*/ +void Mod_TouchModel (char *name) +{ + model_t *mod; + + mod = Mod_FindName (name); + + if (!mod->needload) + { + if (mod->type == mod_alias) + Cache_Check (&mod->cache); + } +} + +/* +================== +Mod_LoadModel + +Loads a model into the cache +================== +*/ +model_t *Mod_LoadModel (model_t *mod, qboolean crash) +{ + void *d; + unsigned *buf; + byte stackbuf[1024]; // avoid dirtying the cache heap + + if (!mod->needload) + { + if (mod->type == mod_alias) + { + d = Cache_Check (&mod->cache); + if (d) + return mod; + } + else + return mod; // not cached at all + } + +// +// because the world is so huge, load it one piece at a time +// + if (!crash) + { + + } + +// +// load the file +// + buf = (unsigned *)COM_LoadStackFile (mod->name, stackbuf, sizeof(stackbuf)); + if (!buf) + { + if (crash) + Sys_Error ("Mod_LoadModel: %s not found", mod->name); //johnfitz -- was "Mod_NumForName" + return NULL; + } + +// +// allocate a new model +// + COM_FileBase (mod->name, loadname); + + loadmodel = mod; + +// +// fill it in +// + +// call the apropriate loader + mod->needload = false; + + switch (LittleLong(*(unsigned *)buf)) + { + case IDPOLYHEADER: + Mod_LoadAliasModel (mod, buf); + break; + + case IDSPRITEHEADER: + Mod_LoadSpriteModel (mod, buf); + break; + + default: + Mod_LoadBrushModel (mod, buf); + break; + } + + return mod; +} + +/* +================== +Mod_ForName + +Loads in a model for the given name +================== +*/ +model_t *Mod_ForName (char *name, qboolean crash) +{ + model_t *mod; + + mod = Mod_FindName (name); + + return Mod_LoadModel (mod, crash); +} + + +/* +=============================================================================== + + BRUSHMODEL LOADING + +=============================================================================== +*/ + +byte *mod_base; + +/* +================= +Mod_CheckFullbrights -- johnfitz +================= +*/ +qboolean Mod_CheckFullbrights (byte *pixels, int count) +{ + int i; + for (i = 0; i < count; i++) + if (*pixels++ > 223) + return true; + return false; +} + +/* +================= +Mod_LoadTextures +================= +*/ +void Mod_LoadTextures (lump_t *l) +{ + int i, j, pixels, num, max, altmax; + miptex_t *mt; + texture_t *tx, *tx2; + texture_t *anims[10]; + texture_t *altanims[10]; + dmiptexlump_t *m; +//johnfitz -- more variables + char texturename[64]; + int nummiptex; + unsigned offset; + int mark, fwidth, fheight; + char filename[MAX_OSPATH], filename2[MAX_OSPATH], mapname[MAX_OSPATH]; + byte *data; + FILE *f; + extern byte *hunk_base; +//johnfitz + + //johnfitz -- don't return early if no textures; still need to create dummy texture + if (!l->filelen) + { + Con_Printf ("Mod_LoadTextures: no textures in bsp file\n"); + nummiptex = 0; + } + else + { + m = (dmiptexlump_t *)(mod_base + l->fileofs); + m->nummiptex = LittleLong (m->nummiptex); + nummiptex = m->nummiptex; + } + //johnfitz + + loadmodel->numtextures = nummiptex + 2; //johnfitz -- need 2 dummy texture chains for missing textures + loadmodel->textures = Hunk_AllocName (loadmodel->numtextures * sizeof(*loadmodel->textures) , loadname); + + for (i=0 ; idataofs[i] = LittleLong(m->dataofs[i]); + if (m->dataofs[i] == -1) + continue; + mt = (miptex_t *)((byte *)m + m->dataofs[i]); + mt->width = LittleLong (mt->width); + mt->height = LittleLong (mt->height); + for (j=0 ; joffsets[j] = LittleLong (mt->offsets[j]); + + if ( (mt->width & 15) || (mt->height & 15) ) + Sys_Error ("Texture %s is not 16 aligned", mt->name); + pixels = mt->width*mt->height/64*85; + tx = Hunk_AllocName (sizeof(texture_t) +pixels, loadname ); + loadmodel->textures[i] = tx; + + memcpy (tx->name, mt->name, sizeof(tx->name)); + tx->width = mt->width; + tx->height = mt->height; + for (j=0 ; joffsets[j] = mt->offsets[j] + sizeof(texture_t) - sizeof(miptex_t); + // the pixels immediately follow the structures + memcpy ( tx+1, mt+1, pixels); + + tx->update_warp = false; //johnfitz + tx->warpimage = NULL; //johnfitz + tx->fullbright = NULL; //johnfitz + + //johnfitz -- lots of changes + if (!isDedicated) //no texture uploading for dedicated server + { + if (!Q_strncasecmp(tx->name,"sky",3)) //sky texture //also note -- was Q_strncmp, changed to match qbsp + Sky_LoadTexture (tx); + else if (tx->name[0] == '*') //warping texture + { + //external textures -- first look in "textures/mapname/" then look in "textures/" + mark = Hunk_LowMark(); + COM_StripExtension (loadmodel->name + 5, mapname); + sprintf (filename, "textures/%s/#%s", mapname, tx->name+1); //this also replaces the '*' with a '#' + data = Image_LoadImage (filename, &fwidth, &fheight); + if (!data) + { + sprintf (filename, "textures/#%s", tx->name+1); + data = Image_LoadImage (filename, &fwidth, &fheight); + } + + //now load whatever we found + if (data) //load external image + { + strcpy (texturename, filename); + tx->gltexture = TexMgr_LoadImage (loadmodel, texturename, fwidth, fheight, + SRC_RGBA, data, filename, 0, TEXPREF_NONE); + } + else //use the texture from the bsp file + { + sprintf (texturename, "%s:%s", loadmodel->name, tx->name); + offset = (unsigned)(mt+1) - (unsigned)mod_base; + tx->gltexture = TexMgr_LoadImage (loadmodel, texturename, tx->width, tx->height, + SRC_INDEXED, (byte *)(tx+1), loadmodel->name, offset, TEXPREF_NONE); + } + + //now create the warpimage, using dummy data from the hunk to create the initial image + Hunk_Alloc (gl_warpimagesize*gl_warpimagesize*4); //make sure hunk is big enough so we don't reach an illegal address + Hunk_FreeToLowMark (mark); + sprintf (texturename, "%s_warp", texturename); + tx->warpimage = TexMgr_LoadImage (loadmodel, texturename, gl_warpimagesize, + gl_warpimagesize, SRC_RGBA, hunk_base, "", (unsigned)hunk_base, TEXPREF_NOPICMIP | TEXPREF_WARPIMAGE); + tx->update_warp = true; + } + else //regular texture + { + //external textures -- first look in "textures/mapname/" then look in "textures/" + mark = Hunk_LowMark (); + COM_StripExtension (loadmodel->name + 5, mapname); + sprintf (filename, "textures/%s/%s", mapname, tx->name); + data = Image_LoadImage (filename, &fwidth, &fheight); + if (!data) + { + sprintf (filename, "textures/%s", tx->name); + data = Image_LoadImage (filename, &fwidth, &fheight); + } + + //now load whatever we found + if (data) //load external image + { + tx->gltexture = TexMgr_LoadImage (loadmodel, filename, fwidth, fheight, + SRC_RGBA, data, filename, 0, TEXPREF_MIPMAP); + + //now try to load glow/luma image from the same place + Hunk_FreeToLowMark (mark); + sprintf (filename2, "%s_glow", filename); + data = Image_LoadImage (filename2, &fwidth, &fheight); + if (!data) + sprintf (filename2, "%s_luma", filename); + data = Image_LoadImage (filename2, &fwidth, &fheight); + + if (data) + tx->fullbright = TexMgr_LoadImage (loadmodel, filename2, fwidth, fheight, + SRC_RGBA, data, filename, 0, TEXPREF_MIPMAP ); + } + else //use the texture from the bsp file + { + sprintf (texturename, "%s:%s", loadmodel->name, tx->name); + offset = (unsigned)(mt+1) - (unsigned)mod_base; + if (Mod_CheckFullbrights ((byte *)(tx+1), pixels)) + { + tx->gltexture = TexMgr_LoadImage (loadmodel, texturename, tx->width, tx->height, + SRC_INDEXED, (byte *)(tx+1), loadmodel->name, offset, TEXPREF_MIPMAP | TEXPREF_NOBRIGHT); + sprintf (texturename, "%s:%s_glow", loadmodel->name, tx->name); + tx->fullbright = TexMgr_LoadImage (loadmodel, texturename, tx->width, tx->height, + SRC_INDEXED, (byte *)(tx+1), loadmodel->name, offset, TEXPREF_MIPMAP | TEXPREF_FULLBRIGHT); + } + else + { + tx->gltexture = TexMgr_LoadImage (loadmodel, texturename, tx->width, tx->height, + SRC_INDEXED, (byte *)(tx+1), loadmodel->name, offset, TEXPREF_MIPMAP); + } + } + Hunk_FreeToLowMark (mark); + } + } + //johnfitz + } + + //johnfitz -- last 2 slots in array should be filled with dummy textures + loadmodel->textures[loadmodel->numtextures-2] = r_notexture_mip; //for lightmapped surfs + loadmodel->textures[loadmodel->numtextures-1] = r_notexture_mip2; //for SURF_DRAWTILED surfs + +// +// sequence the animations +// + for (i=0 ; itextures[i]; + if (!tx || tx->name[0] != '+') + continue; + if (tx->anim_next) + continue; // allready sequenced + + // find the number of frames in the animation + memset (anims, 0, sizeof(anims)); + memset (altanims, 0, sizeof(altanims)); + + max = tx->name[1]; + altmax = 0; + if (max >= 'a' && max <= 'z') + max -= 'a' - 'A'; + if (max >= '0' && max <= '9') + { + max -= '0'; + altmax = 0; + anims[max] = tx; + max++; + } + else if (max >= 'A' && max <= 'J') + { + altmax = max - 'A'; + max = 0; + altanims[altmax] = tx; + altmax++; + } + else + Sys_Error ("Bad animating texture %s", tx->name); + + for (j=i+1 ; jtextures[j]; + if (!tx2 || tx2->name[0] != '+') + continue; + if (strcmp (tx2->name+2, tx->name+2)) + continue; + + num = tx2->name[1]; + if (num >= 'a' && num <= 'z') + num -= 'a' - 'A'; + if (num >= '0' && num <= '9') + { + num -= '0'; + anims[num] = tx2; + if (num+1 > max) + max = num + 1; + } + else if (num >= 'A' && num <= 'J') + { + num = num - 'A'; + altanims[num] = tx2; + if (num+1 > altmax) + altmax = num+1; + } + else + Sys_Error ("Bad animating texture %s", tx->name); + } + +#define ANIM_CYCLE 2 + // link them all together + for (j=0 ; jname); + tx2->anim_total = max * ANIM_CYCLE; + tx2->anim_min = j * ANIM_CYCLE; + tx2->anim_max = (j+1) * ANIM_CYCLE; + tx2->anim_next = anims[ (j+1)%max ]; + if (altmax) + tx2->alternate_anims = altanims[0]; + } + for (j=0 ; jname); + tx2->anim_total = altmax * ANIM_CYCLE; + tx2->anim_min = j * ANIM_CYCLE; + tx2->anim_max = (j+1) * ANIM_CYCLE; + tx2->anim_next = altanims[ (j+1)%altmax ]; + if (max) + tx2->alternate_anims = anims[0]; + } + } +} + +/* +================= +Mod_LoadLighting -- johnfitz -- replaced with lit support code via lordhavoc +================= +*/ +void Mod_LoadLighting (lump_t *l) +{ + // + int i; + byte *in, *out, *data; + byte d; + char litfilename[1024]; + loadmodel->lightdata = NULL; + // LordHavoc: check for a .lit file + strcpy(litfilename, loadmodel->name); + COM_StripExtension(litfilename, litfilename); + strcat(litfilename, ".lit"); + data = (byte*) COM_LoadHunkFile (litfilename); + if (data) + { + if (data[0] == 'Q' && data[1] == 'L' && data[2] == 'I' && data[3] == 'T') + { + i = LittleLong(((int *)data)[1]); + if (i == 1) + { + Con_DPrintf("%s loaded", litfilename); + loadmodel->lightdata = data + 8; + return; + } + else + Con_Printf("Unknown .lit file version (%d)\n", i); + } + else + Con_Printf("Corrupt .lit file (old version?), ignoring\n"); + } + // LordHavoc: no .lit found, expand the white lighting data to color + if (!l->filelen) + return; + loadmodel->lightdata = Hunk_AllocName ( l->filelen*3, litfilename); + in = loadmodel->lightdata + l->filelen*2; // place the file at the end, so it will not be overwritten until the very last write + out = loadmodel->lightdata; + memcpy (in, mod_base + l->fileofs, l->filelen); + for (i = 0;i < l->filelen;i++) + { + d = *in++; + *out++ = d; + *out++ = d; + *out++ = d; + } +} + + +/* +================= +Mod_LoadVisibility +================= +*/ +void Mod_LoadVisibility (lump_t *l) +{ + if (!l->filelen) + { + loadmodel->visdata = NULL; + return; + } + loadmodel->visdata = Hunk_AllocName ( l->filelen, loadname); + memcpy (loadmodel->visdata, mod_base + l->fileofs, l->filelen); +} + + +/* +================= +Mod_LoadEntities +================= +*/ +void Mod_LoadEntities (lump_t *l) +{ + if (!l->filelen) + { + loadmodel->entities = NULL; + return; + } + loadmodel->entities = Hunk_AllocName ( l->filelen, loadname); + memcpy (loadmodel->entities, mod_base + l->fileofs, l->filelen); +} + + +/* +================= +Mod_LoadVertexes +================= +*/ +void Mod_LoadVertexes (lump_t *l) +{ + dvertex_t *in; + mvertex_t *out; + int i, count; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + loadmodel->vertexes = out; + loadmodel->numvertexes = count; + + for ( i=0 ; iposition[0] = LittleFloat (in->point[0]); + out->position[1] = LittleFloat (in->point[1]); + out->position[2] = LittleFloat (in->point[2]); + } +} + +/* +================= +Mod_LoadEdges +================= +*/ +void Mod_LoadEdges (lump_t *l) +{ + dedge_t *in; + medge_t *out; + int i, count; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( (count + 1) * sizeof(*out), loadname); + + loadmodel->edges = out; + loadmodel->numedges = count; + + for ( i=0 ; iv[0] = (unsigned short)LittleShort(in->v[0]); + out->v[1] = (unsigned short)LittleShort(in->v[1]); + } +} + +/* +================= +Mod_LoadTexinfo +================= +*/ +void Mod_LoadTexinfo (lump_t *l) +{ + texinfo_t *in; + mtexinfo_t *out; + int i, j, count, miptex; + float len1, len2; + int missing = 0; //johnfitz + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + loadmodel->texinfo = out; + loadmodel->numtexinfo = count; + + for ( i=0 ; ivecs[0][j] = LittleFloat (in->vecs[0][j]); + len1 = Length (out->vecs[0]); + len2 = Length (out->vecs[1]); + len1 = (len1 + len2)/2; + if (len1 < 0.32) + out->mipadjust = 4; + else if (len1 < 0.49) + out->mipadjust = 3; + else if (len1 < 0.99) + out->mipadjust = 2; + else + out->mipadjust = 1; +#if 0 + if (len1 + len2 < 0.001) + out->mipadjust = 1; // don't crash + else + out->mipadjust = 1 / floor( (len1+len2)/2 + 0.1 ); +#endif + + miptex = LittleLong (in->miptex); + out->flags = LittleLong (in->flags); + + //johnfitz -- rewrote this section + if (miptex >= loadmodel->numtextures-1 || !loadmodel->textures[miptex]) + { + if (out->flags & TEX_SPECIAL) + out->texture = loadmodel->textures[loadmodel->numtextures-1]; + else + out->texture = loadmodel->textures[loadmodel->numtextures-2]; + out->flags |= TEX_MISSING; + missing++; + } + else + { + out->texture = loadmodel->textures[miptex]; + } + //johnfitz + } + + //johnfitz: report missing textures + if (missing && loadmodel->numtextures > 1) + Con_Printf ("Mod_LoadTexinfo: one or more textures is missing from BSP file\n", missing); + //johnfitz +} + +/* +================ +CalcSurfaceExtents + +Fills in s->texturemins[] and s->extents[] +================ +*/ +void CalcSurfaceExtents (msurface_t *s) +{ + float mins[2], maxs[2], val; + int i,j, e; + mvertex_t *v; + mtexinfo_t *tex; + int bmins[2], bmaxs[2]; + + mins[0] = mins[1] = 999999; + maxs[0] = maxs[1] = -99999; + + tex = s->texinfo; + + for (i=0 ; inumedges ; i++) + { + e = loadmodel->surfedges[s->firstedge+i]; + if (e >= 0) + v = &loadmodel->vertexes[loadmodel->edges[e].v[0]]; + else + v = &loadmodel->vertexes[loadmodel->edges[-e].v[1]]; + + for (j=0 ; j<2 ; j++) + { + val = v->position[0] * tex->vecs[j][0] + + v->position[1] * tex->vecs[j][1] + + v->position[2] * tex->vecs[j][2] + + tex->vecs[j][3]; + if (val < mins[j]) + mins[j] = val; + if (val > maxs[j]) + maxs[j] = val; + } + } + + for (i=0 ; i<2 ; i++) + { + bmins[i] = floor(mins[i]/16); + bmaxs[i] = ceil(maxs[i]/16); + + s->texturemins[i] = bmins[i] * 16; + s->extents[i] = (bmaxs[i] - bmins[i]) * 16; + + if ( !(tex->flags & TEX_SPECIAL) && s->extents[i] > 2000) //johnfitz -- was 512 in glquake, 256 in winquake + Sys_Error ("Bad surface extents"); + } +} + +/* +================ +Mod_PolyForUnlitSurface -- johnfitz -- creates polys for unlightmapped surfaces (sky and water) + +TODO: merge this into BuildSurfaceDisplayList? +================ +*/ +void Mod_PolyForUnlitSurface (msurface_t *fa) +{ + vec3_t verts[64]; + int numverts, i, lindex; + float *vec; + // texture_t *t; unused -- kristian + glpoly_t *poly; + float texscale; + + if (fa->flags & (SURF_DRAWTURB | SURF_DRAWSKY)) + texscale = (1.0/128.0); //warp animation repeats every 128 + else + texscale = (1.0/32.0); //to match r_notexture_mip + + // convert edges back to a normal polygon + numverts = 0; + for (i=0 ; inumedges ; i++) + { + lindex = loadmodel->surfedges[fa->firstedge + i]; + + if (lindex > 0) + vec = loadmodel->vertexes[loadmodel->edges[lindex].v[0]].position; + else + vec = loadmodel->vertexes[loadmodel->edges[-lindex].v[1]].position; + VectorCopy (vec, verts[numverts]); + numverts++; + } + + //create the poly + poly = Hunk_Alloc (sizeof(glpoly_t) + (numverts-4) * VERTEXSIZE*sizeof(float)); + poly->next = NULL; + fa->polys = poly; + poly->numverts = numverts; + for (i=0, vec=(float *)verts; iverts[i]); + poly->verts[i][3] = DotProduct(vec, fa->texinfo->vecs[0]) * texscale; + poly->verts[i][4] = DotProduct(vec, fa->texinfo->vecs[1]) * texscale; + } +} + +/* +================= +Mod_CalcSurfaceBounds -- johnfitz -- calculate bounding box for per-surface frustum culling +================= +*/ +void Mod_CalcSurfaceBounds (msurface_t *s) +{ + int i, e; + mvertex_t *v; + + s->mins[0] = s->mins[1] = s->mins[2] = 9999; + s->maxs[0] = s->maxs[1] = s->maxs[2] = -9999; + + for (i=0 ; inumedges ; i++) + { + e = loadmodel->surfedges[s->firstedge+i]; + if (e >= 0) + v = &loadmodel->vertexes[loadmodel->edges[e].v[0]]; + else + v = &loadmodel->vertexes[loadmodel->edges[-e].v[1]]; + + if (s->mins[0] > v->position[0]) + s->mins[0] = v->position[0]; + if (s->mins[1] > v->position[1]) + s->mins[1] = v->position[1]; + if (s->mins[2] > v->position[2]) + s->mins[2] = v->position[2]; + + if (s->maxs[0] < v->position[0]) + s->maxs[0] = v->position[0]; + if (s->maxs[1] < v->position[1]) + s->maxs[1] = v->position[1]; + if (s->maxs[2] < v->position[2]) + s->maxs[2] = v->position[2]; + } +} + +/* +================= +Mod_LoadFaces +================= +*/ +void Mod_LoadFaces (lump_t *l) +{ + dface_t *in; + msurface_t *out; + int i, count, surfnum; + int planenum, side; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + //johnfitz -- warn mappers about exceeding old limits + if (count > 32767) + Con_Warning ("%i faces exceeds standard limit of 32767.\n", count); + //johnfitz + + loadmodel->surfaces = out; + loadmodel->numsurfaces = count; + + for ( surfnum=0 ; surfnumfirstedge = LittleLong(in->firstedge); + out->numedges = LittleShort(in->numedges); + out->flags = 0; + + planenum = LittleShort(in->planenum); + side = LittleShort(in->side); + if (side) + out->flags |= SURF_PLANEBACK; + + out->plane = loadmodel->planes + planenum; + + out->texinfo = loadmodel->texinfo + LittleShort (in->texinfo); + + CalcSurfaceExtents (out); + + Mod_CalcSurfaceBounds (out); //johnfitz -- for per-surface frustum culling + + // lighting info + + for (i=0 ; istyles[i] = in->styles[i]; + i = LittleLong(in->lightofs); + if (i == -1) + out->samples = NULL; + else + out->samples = loadmodel->lightdata + (i * 3); //johnfitz -- lit support via lordhavoc (was "+ i") + + //johnfitz -- this section rewritten + if (!Q_strncasecmp(out->texinfo->texture->name,"sky",3)) // sky surface //also note -- was Q_strncmp, changed to match qbsp + { + out->flags |= (SURF_DRAWSKY | SURF_DRAWTILED); + Mod_PolyForUnlitSurface (out); //no more subdivision + } + else if (out->texinfo->texture->name[0] == '*') // warp surface + { + out->flags |= (SURF_DRAWTURB | SURF_DRAWTILED); + Mod_PolyForUnlitSurface (out); + GL_SubdivideSurface (out); + } + else if (out->texinfo->flags & TEX_MISSING) // texture is missing from bsp + { + if (out->samples) //lightmapped + { + out->flags |= SURF_NOTEXTURE; + } + else // not lightmapped + { + out->flags |= (SURF_NOTEXTURE | SURF_DRAWTILED); + Mod_PolyForUnlitSurface (out); + } + } + //johnfitz + } +} + + +/* +================= +Mod_SetParent +================= +*/ +void Mod_SetParent (mnode_t *node, mnode_t *parent) +{ + node->parent = parent; + if (node->contents < 0) + return; + Mod_SetParent (node->children[0], node); + Mod_SetParent (node->children[1], node); +} + +/* +================= +Mod_LoadNodes +================= +*/ +void Mod_LoadNodes (lump_t *l) +{ + int i, j, count, p; + dnode_t *in; + mnode_t *out; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + //johnfitz -- warn mappers about exceeding old limits + if (count > 32767) + Con_Warning ("%i nodes exceeds standard limit of 32767.\n", count); + //johnfitz + + loadmodel->nodes = out; + loadmodel->numnodes = count; + + for ( i=0 ; iminmaxs[j] = LittleShort (in->mins[j]); + out->minmaxs[3+j] = LittleShort (in->maxs[j]); + } + + p = LittleLong(in->planenum); + out->plane = loadmodel->planes + p; + + out->firstsurface = (unsigned short)LittleShort (in->firstface); //johnfitz -- explicit cast as unsigned short + out->numsurfaces = (unsigned short)LittleShort (in->numfaces); //johnfitz -- explicit cast as unsigned short + + for (j=0 ; j<2 ; j++) + { + //johnfitz -- hack to handle nodes > 32k, adapted from darkplaces + p = (unsigned short)LittleShort(in->children[j]); + if (p < count) + out->children[j] = loadmodel->nodes + p; + else + { + p = 65535 - p; //note this uses 65535 intentionally, -1 is leaf 0 + if (p < loadmodel->numleafs) + out->children[j] = (mnode_t *)(loadmodel->leafs + p); + else + { + Con_Printf("Mod_LoadNodes: invalid leaf index %i (file has only %i leafs)\n", p, loadmodel->numleafs); + out->children[j] = (mnode_t *)(loadmodel->leafs); //map it to the solid leaf + } + } + //johnfitz + } + } + + Mod_SetParent (loadmodel->nodes, NULL); // sets nodes and leafs +} + +/* +================= +Mod_LoadLeafs +================= +*/ +void Mod_LoadLeafs (lump_t *l) +{ + dleaf_t *in; + mleaf_t *out; + int i, j, count, p; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + //johnfitz + if (count > 32767) + Host_Error ("Mod_LoadLeafs: %i leafs exceeds limit of 32767.\n", count); + //johnfitz + + loadmodel->leafs = out; + loadmodel->numleafs = count; + + for ( i=0 ; iminmaxs[j] = LittleShort (in->mins[j]); + out->minmaxs[3+j] = LittleShort (in->maxs[j]); + } + + p = LittleLong(in->contents); + out->contents = p; + + out->firstmarksurface = loadmodel->marksurfaces + (unsigned short)LittleShort(in->firstmarksurface); //johnfitz -- unsigned short + out->nummarksurfaces = (unsigned short)LittleShort(in->nummarksurfaces); //johnfitz -- unsigned short + + p = LittleLong(in->visofs); + if (p == -1) + out->compressed_vis = NULL; + else + out->compressed_vis = loadmodel->visdata + p; + out->efrags = NULL; + + for (j=0 ; j<4 ; j++) + out->ambient_sound_level[j] = in->ambient_level[j]; + + //johnfitz -- removed code to mark surfaces as SURF_UNDERWATER + } +} + +/* +================= +Mod_LoadClipnodes +================= +*/ +void Mod_LoadClipnodes (lump_t *l) +{ + dclipnode_t *in; + mclipnode_t *out; //johnfitz -- was dclipnode_t + int i, count; + hull_t *hull; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + //johnfitz -- warn about exceeding old limits + if (count > 32767) + Con_Warning ("%i clipnodes exceeds standard limit of 32767.\n", count); + //johnfitz + + loadmodel->clipnodes = out; + loadmodel->numclipnodes = count; + + hull = &loadmodel->hulls[1]; + hull->clipnodes = out; + hull->firstclipnode = 0; + hull->lastclipnode = count-1; + hull->planes = loadmodel->planes; + hull->clip_mins[0] = -16; + hull->clip_mins[1] = -16; + hull->clip_mins[2] = -24; + hull->clip_maxs[0] = 16; + hull->clip_maxs[1] = 16; + hull->clip_maxs[2] = 32; + + hull = &loadmodel->hulls[2]; + hull->clipnodes = out; + hull->firstclipnode = 0; + hull->lastclipnode = count-1; + hull->planes = loadmodel->planes; + hull->clip_mins[0] = -32; + hull->clip_mins[1] = -32; + hull->clip_mins[2] = -24; + hull->clip_maxs[0] = 32; + hull->clip_maxs[1] = 32; + hull->clip_maxs[2] = 64; + + for (i=0 ; iplanenum = LittleLong(in->planenum); + + //johnfitz -- bounds check + if (out->planenum < 0 || out->planenum >= loadmodel->numplanes) + Host_Error ("Mod_LoadClipnodes: planenum out of bounds"); + //johnfitz + + //johnfitz -- support clipnodes > 32k + out->children[0] = (unsigned short)LittleShort(in->children[0]); + out->children[1] = (unsigned short)LittleShort(in->children[1]); + if (out->children[0] >= count) + out->children[0] -= 65536; + if (out->children[1] >= count) + out->children[1] -= 65536; + //johnfitz + } +} + +/* +================= +Mod_MakeHull0 + +Duplicate the drawing hull structure as a clipping hull +================= +*/ +void Mod_MakeHull0 (void) +{ + mnode_t *in, *child; + mclipnode_t *out; //johnfitz -- was dclipnode_t + int i, j, count; + hull_t *hull; + + hull = &loadmodel->hulls[0]; + + in = loadmodel->nodes; + count = loadmodel->numnodes; + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + hull->clipnodes = out; + hull->firstclipnode = 0; + hull->lastclipnode = count-1; + hull->planes = loadmodel->planes; + + for (i=0 ; iplanenum = in->plane - loadmodel->planes; + for (j=0 ; j<2 ; j++) + { + child = in->children[j]; + if (child->contents < 0) + out->children[j] = child->contents; + else + out->children[j] = child - loadmodel->nodes; + } + } +} + +/* +================= +Mod_LoadMarksurfaces +================= +*/ +void Mod_LoadMarksurfaces (lump_t *l) +{ + int i, j, count; + short *in; + msurface_t **out; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + loadmodel->marksurfaces = out; + loadmodel->nummarksurfaces = count; + + //johnfitz -- warn mappers about exceeding old limits + if (count > 32767) + Con_Warning ("%i marksurfaces exceeds standard limit of 32767.\n", count); + //johnfitz + + for ( i=0 ; i= loadmodel->numsurfaces) + Sys_Error ("Mod_ParseMarksurfaces: bad surface number"); + out[i] = loadmodel->surfaces + j; + } +} + +/* +================= +Mod_LoadSurfedges +================= +*/ +void Mod_LoadSurfedges (lump_t *l) +{ + int i, count; + int *in, *out; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + loadmodel->surfedges = out; + loadmodel->numsurfedges = count; + + for ( i=0 ; ifileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*2*sizeof(*out), loadname); + + loadmodel->planes = out; + loadmodel->numplanes = count; + + for ( i=0 ; inormal[j] = LittleFloat (in->normal[j]); + if (out->normal[j] < 0) + bits |= 1<dist = LittleFloat (in->dist); + out->type = LittleLong (in->type); + out->signbits = bits; + } +} + +/* +================= +RadiusFromBounds +================= +*/ +float RadiusFromBounds (vec3_t mins, vec3_t maxs) +{ + int i; + vec3_t corner; + + for (i=0 ; i<3 ; i++) + { + corner[i] = fabs(mins[i]) > fabs(maxs[i]) ? fabs(mins[i]) : fabs(maxs[i]); + } + + return Length (corner); +} + +/* +================= +Mod_LoadSubmodels +================= +*/ +void Mod_LoadSubmodels (lump_t *l) +{ + dmodel_t *in; + dmodel_t *out; + int i, j, count; + + in = (void *)(mod_base + l->fileofs); + if (l->filelen % sizeof(*in)) + Sys_Error ("MOD_LoadBmodel: funny lump size in %s",loadmodel->name); + count = l->filelen / sizeof(*in); + out = Hunk_AllocName ( count*sizeof(*out), loadname); + + loadmodel->submodels = out; + loadmodel->numsubmodels = count; + + for ( i=0 ; imins[j] = LittleFloat (in->mins[j]) - 1; + out->maxs[j] = LittleFloat (in->maxs[j]) + 1; + out->origin[j] = LittleFloat (in->origin[j]); + } + for (j=0 ; jheadnode[j] = LittleLong (in->headnode[j]); + out->visleafs = LittleLong (in->visleafs); + out->firstface = LittleLong (in->firstface); + out->numfaces = LittleLong (in->numfaces); + } + + // johnfitz -- check world visleafs -- adapted from bjp + out = loadmodel->submodels; + + if (out->visleafs > MAX_MAP_LEAFS) + Sys_Error ("Mod_LoadSubmodels: too many visleafs (%d, max = %d) in %s", out->visleafs, MAX_MAP_LEAFS, loadmodel->name); + + if (out->visleafs > 8192) + Con_Warning ("%i visleafs exceeds standard limit of 8192.\n", out->visleafs); + //johnfitz +} + +/* +================= +Mod_BoundsFromClipNode -- johnfitz + +update the model's clipmins and clipmaxs based on each node's plane. + +This works because of the way brushes are expanded in hull generation. +Each brush will include all six axial planes, which bound that brush. +Therefore, the bounding box of the hull can be constructed entirely +from axial planes found in the clipnodes for that hull. +================= +*/ +void Mod_BoundsFromClipNode (model_t *mod, int hull, int nodenum) +{ + mplane_t *plane; + mclipnode_t *node; + + if (nodenum < 0) + return; //hit a leafnode + + node = &mod->clipnodes[nodenum]; + plane = mod->hulls[hull].planes + node->planenum; + switch (plane->type) + { + + case PLANE_X: + if (plane->signbits == 1) + mod->clipmins[0] = min (mod->clipmins[0], -plane->dist - mod->hulls[hull].clip_mins[0]); + else + mod->clipmaxs[0] = max (mod->clipmaxs[0], plane->dist - mod->hulls[hull].clip_maxs[0]); + break; + case PLANE_Y: + if (plane->signbits == 2) + mod->clipmins[1] = min (mod->clipmins[1], -plane->dist - mod->hulls[hull].clip_mins[1]); + else + mod->clipmaxs[1] = max (mod->clipmaxs[1], plane->dist - mod->hulls[hull].clip_maxs[1]); + break; + case PLANE_Z: + if (plane->signbits == 4) + mod->clipmins[2] = min (mod->clipmins[2], -plane->dist - mod->hulls[hull].clip_mins[2]); + else + mod->clipmaxs[2] = max (mod->clipmaxs[2], plane->dist - mod->hulls[hull].clip_maxs[2]); + break; + default: + //skip nonaxial planes; don't need them + break; + } + + Mod_BoundsFromClipNode (mod, hull, node->children[0]); + Mod_BoundsFromClipNode (mod, hull, node->children[1]); +} + +/* +================= +Mod_LoadBrushModel +================= +*/ +void Mod_LoadBrushModel (model_t *mod, void *buffer) +{ + int i, j; + dheader_t *header; + dmodel_t *bm; + float radius; //johnfitz + + loadmodel->type = mod_brush; + + header = (dheader_t *)buffer; + + i = LittleLong (header->version); + if (i != BSPVERSION) + Sys_Error ("Mod_LoadBrushModel: %s has wrong version number (%i should be %i)", mod->name, i, BSPVERSION); + +// swap all the lumps + mod_base = (byte *)header; + + for (i=0 ; ilumps[LUMP_VERTEXES]); + Mod_LoadEdges (&header->lumps[LUMP_EDGES]); + Mod_LoadSurfedges (&header->lumps[LUMP_SURFEDGES]); + Mod_LoadTextures (&header->lumps[LUMP_TEXTURES]); + Mod_LoadLighting (&header->lumps[LUMP_LIGHTING]); + Mod_LoadPlanes (&header->lumps[LUMP_PLANES]); + Mod_LoadTexinfo (&header->lumps[LUMP_TEXINFO]); + Mod_LoadFaces (&header->lumps[LUMP_FACES]); + Mod_LoadMarksurfaces (&header->lumps[LUMP_MARKSURFACES]); + Mod_LoadVisibility (&header->lumps[LUMP_VISIBILITY]); + Mod_LoadLeafs (&header->lumps[LUMP_LEAFS]); + Mod_LoadNodes (&header->lumps[LUMP_NODES]); + Mod_LoadClipnodes (&header->lumps[LUMP_CLIPNODES]); + Mod_LoadEntities (&header->lumps[LUMP_ENTITIES]); + Mod_LoadSubmodels (&header->lumps[LUMP_MODELS]); + + Mod_MakeHull0 (); + + mod->numframes = 2; // regular and alternate animation + +// +// set up the submodels (FIXME: this is confusing) +// + + // johnfitz -- okay, so that i stop getting confused every time i look at this loop, here's how it works: + // we're looping through the submodels starting at 0. Submodel 0 is the main model, so we don't have to + // worry about clobbering data the first time through, since it's the same data. At the end of the loop, + // we create a new copy of the data to use the next time through. + for (i=0 ; inumsubmodels ; i++) + { + bm = &mod->submodels[i]; + + mod->hulls[0].firstclipnode = bm->headnode[0]; + for (j=1 ; jhulls[j].firstclipnode = bm->headnode[j]; + mod->hulls[j].lastclipnode = mod->numclipnodes-1; + } + + mod->firstmodelsurface = bm->firstface; + mod->nummodelsurfaces = bm->numfaces; + + VectorCopy (bm->maxs, mod->maxs); + VectorCopy (bm->mins, mod->mins); + + //johnfitz -- calculate rotate bounds and yaw bounds + radius = RadiusFromBounds (mod->mins, mod->maxs); + mod->rmaxs[0] = mod->rmaxs[1] = mod->rmaxs[2] = mod->ymaxs[0] = mod->ymaxs[1] = mod->ymaxs[2] = radius; + mod->rmins[0] = mod->rmins[1] = mod->rmins[2] = mod->ymins[0] = mod->ymins[1] = mod->ymins[2] = -radius; + //johnfitz + + //johnfitz -- correct physics cullboxes so that outlying clip brushes on doors and stuff are handled right + if (i > 0 || strcmp(mod->name, sv.modelname) != 0) //skip submodel 0 of sv.worldmodel, which is the actual world + { + // start with the hull0 bounds + VectorCopy (mod->maxs, mod->clipmaxs); + VectorCopy (mod->mins, mod->clipmins); + + // process hull1 (we don't need to process hull2 becuase there's + // no such thing as a brush that appears in hull2 but not hull1) + //Mod_BoundsFromClipNode (mod, 1, mod->hulls[1].firstclipnode); // (disabled for now becuase it fucks up on rotating models) + } + //johnfitz + + mod->numleafs = bm->visleafs; + + if (i < mod->numsubmodels-1) + { // duplicate the basic information + char name[10]; + + sprintf (name, "*%i", i+1); + loadmodel = Mod_FindName (name); + *loadmodel = *mod; + strcpy (loadmodel->name, name); + mod = loadmodel; + } + } +} + +/* +============================================================================== + +ALIAS MODELS + +============================================================================== +*/ + +aliashdr_t *pheader; + +stvert_t stverts[MAXALIASVERTS]; +mtriangle_t triangles[MAXALIASTRIS]; + +// a pose is a single set of vertexes. a frame may be +// an animating sequence of poses +trivertx_t *poseverts[MAXALIASFRAMES]; +int posenum; + +byte **player_8bit_texels_tbl; +byte *player_8bit_texels; + +/* +================= +Mod_LoadAliasFrame +================= +*/ +void * Mod_LoadAliasFrame (void * pin, maliasframedesc_t *frame) +{ + trivertx_t *pframe, *pinframe; + int i, j; + daliasframe_t *pdaliasframe; + + pdaliasframe = (daliasframe_t *)pin; + + strcpy (frame->name, pdaliasframe->name); + frame->firstpose = posenum; + frame->numposes = 1; + + for (i=0 ; i<3 ; i++) + { + // these are byte values, so we don't have to worry about + // endianness + frame->bboxmin.v[i] = pdaliasframe->bboxmin.v[i]; + frame->bboxmax.v[i] = pdaliasframe->bboxmax.v[i]; + } + + + pinframe = (trivertx_t *)(pdaliasframe + 1); + + poseverts[posenum] = pinframe; + posenum++; + + pinframe += pheader->numverts; + + return (void *)pinframe; +} + + +/* +================= +Mod_LoadAliasGroup +================= +*/ +void *Mod_LoadAliasGroup (void * pin, maliasframedesc_t *frame) +{ + daliasgroup_t *pingroup; + int i, numframes; + daliasinterval_t *pin_intervals; + void *ptemp; + + pingroup = (daliasgroup_t *)pin; + + numframes = LittleLong (pingroup->numframes); + + frame->firstpose = posenum; + frame->numposes = numframes; + + for (i=0 ; i<3 ; i++) + { + // these are byte values, so we don't have to worry about endianness + frame->bboxmin.v[i] = pingroup->bboxmin.v[i]; + frame->bboxmax.v[i] = pingroup->bboxmax.v[i]; + } + + + pin_intervals = (daliasinterval_t *)(pingroup + 1); + + frame->interval = LittleFloat (pin_intervals->interval); + + pin_intervals += numframes; + + ptemp = (void *)pin_intervals; + + for (i=0 ; inumverts; + } + + return ptemp; +} + +//========================================================= + + +/* +================= +Mod_FloodFillSkin + +Fill background pixels so mipmapping doesn't have haloes - Ed +================= +*/ + +typedef struct +{ + short x, y; +} floodfill_t; + +extern unsigned d_8to24table[]; + +// must be a power of 2 +#define FLOODFILL_FIFO_SIZE 0x1000 +#define FLOODFILL_FIFO_MASK (FLOODFILL_FIFO_SIZE - 1) + +#define FLOODFILL_STEP( off, dx, dy ) \ +{ \ + if (pos[off] == fillcolor) \ + { \ + pos[off] = 255; \ + fifo[inpt].x = x + (dx), fifo[inpt].y = y + (dy); \ + inpt = (inpt + 1) & FLOODFILL_FIFO_MASK; \ + } \ + else if (pos[off] != 255) fdc = pos[off]; \ +} + +void Mod_FloodFillSkin( byte *skin, int skinwidth, int skinheight ) +{ + byte fillcolor = *skin; // assume this is the pixel to fill + floodfill_t fifo[FLOODFILL_FIFO_SIZE]; + int inpt = 0, outpt = 0; + int filledcolor = -1; + int i; + + if (filledcolor == -1) + { + filledcolor = 0; + // attempt to find opaque black + for (i = 0; i < 256; ++i) + if (d_8to24table[i] == (255 << 0)) // alpha 1.0 + { + filledcolor = i; + break; + } + } + + // can't fill to filled color or to transparent color (used as visited marker) + if ((fillcolor == filledcolor) || (fillcolor == 255)) + { + //printf( "not filling skin from %d to %d\n", fillcolor, filledcolor ); + return; + } + + fifo[inpt].x = 0, fifo[inpt].y = 0; + inpt = (inpt + 1) & FLOODFILL_FIFO_MASK; + + while (outpt != inpt) + { + int x = fifo[outpt].x, y = fifo[outpt].y; + int fdc = filledcolor; + byte *pos = &skin[x + skinwidth * y]; + + outpt = (outpt + 1) & FLOODFILL_FIFO_MASK; + + if (x > 0) FLOODFILL_STEP( -1, -1, 0 ); + if (x < skinwidth - 1) FLOODFILL_STEP( 1, 1, 0 ); + if (y > 0) FLOODFILL_STEP( -skinwidth, 0, -1 ); + if (y < skinheight - 1) FLOODFILL_STEP( skinwidth, 0, 1 ); + skin[x + skinwidth * y] = fdc; + } +} + +/* +=============== +Mod_LoadAllSkins +=============== +*/ +void *Mod_LoadAllSkins (int numskins, daliasskintype_t *pskintype) +{ + int i, j, k, size, groupskins; + char name[32]; + byte *copy, *skin, *texels; + daliasskingroup_t *pinskingroup; + daliasskininterval_t *pinskinintervals; + int padx, pady, ii, jj; //johnfitz -- padded player skin + char fbr_mask_name[64]; //johnfitz -- added for fullbright support + unsigned offset; //johnfitz + + skin = (byte *)(pskintype + 1); + + if (numskins < 1 || numskins > MAX_SKINS) + Sys_Error ("Mod_LoadAliasModel: Invalid # of skins: %d\n", numskins); + + size = pheader->skinwidth * pheader->skinheight; + + for (i=0 ; itype == ALIAS_SKIN_SINGLE) + { + Mod_FloodFillSkin( skin, pheader->skinwidth, pheader->skinheight ); + + // save 8 bit texels for the player model to remap + texels = Hunk_AllocName(size, loadname); + pheader->texels[i] = texels - (byte *)pheader; + memcpy (texels, (byte *)(pskintype + 1), size); + + //johnfitz -- rewritten + sprintf (name, "%s:frame%i", loadmodel->name, i); + offset = (unsigned)(pskintype+1) - (unsigned)mod_base; + if (Mod_CheckFullbrights ((byte *)(pskintype+1), size)) + { + pheader->gltextures[i][0] = TexMgr_LoadImage (loadmodel, name, pheader->skinwidth, pheader->skinheight, + SRC_INDEXED, (byte *)(pskintype+1), loadmodel->name, offset, TEXPREF_PAD | TEXPREF_NOBRIGHT); + sprintf (fbr_mask_name, "%s:frame%i_glow", loadmodel->name, i); + pheader->fbtextures[i][0] = TexMgr_LoadImage (loadmodel, fbr_mask_name, pheader->skinwidth, pheader->skinheight, + SRC_INDEXED, (byte *)(pskintype+1), loadmodel->name, offset, TEXPREF_PAD | TEXPREF_FULLBRIGHT); + } + else + { + pheader->gltextures[i][0] = TexMgr_LoadImage (loadmodel, name, pheader->skinwidth, pheader->skinheight, + SRC_INDEXED, (byte *)(pskintype+1), loadmodel->name, offset, TEXPREF_PAD); + pheader->fbtextures[i][0] = NULL; + } + + pheader->gltextures[i][3] = pheader->gltextures[i][2] = pheader->gltextures[i][1] = pheader->gltextures[i][0]; + pheader->fbtextures[i][3] = pheader->fbtextures[i][2] = pheader->fbtextures[i][1] = pheader->fbtextures[i][0]; + //johnfitz + + pskintype = (daliasskintype_t *)((byte *)(pskintype+1) + size); + } + else + { + // animating skin group. yuck. + pskintype++; + pinskingroup = (daliasskingroup_t *)pskintype; + groupskins = LittleLong (pinskingroup->numskins); + pinskinintervals = (daliasskininterval_t *)(pinskingroup + 1); + + pskintype = (void *)(pinskinintervals + groupskins); + + for (j=0 ; jskinwidth, pheader->skinheight ); + if (j == 0) { + texels = Hunk_AllocName(size, loadname); + pheader->texels[i] = texels - (byte *)pheader; + memcpy (texels, (byte *)(pskintype), size); + } + + //johnfitz -- rewritten + sprintf (name, "%s:frame%i_%i", loadmodel->name, i,j); + offset = (unsigned)(pskintype) - (unsigned)mod_base; //johnfitz + if (Mod_CheckFullbrights ((byte *)(pskintype), size)) + { + pheader->gltextures[i][j&3] = TexMgr_LoadImage (loadmodel, name, pheader->skinwidth, pheader->skinheight, + SRC_INDEXED, (byte *)(pskintype), loadmodel->name, offset, TEXPREF_PAD | TEXPREF_NOBRIGHT); + sprintf (fbr_mask_name, "%s:frame%i_%i_glow", loadmodel->name, i,j); + pheader->fbtextures[i][j&3] = TexMgr_LoadImage (loadmodel, fbr_mask_name, pheader->skinwidth, pheader->skinheight, + SRC_INDEXED, (byte *)(pskintype), loadmodel->name, offset, TEXPREF_PAD | TEXPREF_FULLBRIGHT); + } + else + { + pheader->gltextures[i][j&3] = TexMgr_LoadImage (loadmodel, name, pheader->skinwidth, pheader->skinheight, + SRC_INDEXED, (byte *)(pskintype), loadmodel->name, offset, TEXPREF_PAD); + pheader->fbtextures[i][j&3] = NULL; + } + //johnfitz + + pskintype = (daliasskintype_t *)((byte *)(pskintype) + size); + } + k = j; + for (/* */; j < 4; j++) + pheader->gltextures[i][j&3] = + pheader->gltextures[i][j - k]; + } + } + + return (void *)pskintype; +} + +//========================================================================= + +/* +================= +Mod_CalcAliasBounds -- johnfitz -- calculate bounds of alias model for nonrotated, yawrotated, and fullrotated cases +================= +*/ +void Mod_CalcAliasBounds (aliashdr_t *a) +{ + int i,j,k; + float dist, yawradius, radius; + vec3_t v; + + //clear out all data + for (i=0; i<3;i++) + { + loadmodel->mins[i] = loadmodel->ymins[i] = loadmodel->rmins[i] = 999999; + loadmodel->maxs[i] = loadmodel->ymaxs[i] = loadmodel->rmaxs[i] = -999999; + radius = yawradius = 0; + } + + //process verts + for (i=0 ; inumposes; i++) + for (j=0; jnumverts; j++) + { + for (k=0; k<3;k++) + v[k] = poseverts[i][j].v[k] * pheader->scale[k] + pheader->scale_origin[k]; + + for (k=0; k<3;k++) + { + loadmodel->mins[k] = min (loadmodel->mins[k], v[k]); + loadmodel->maxs[k] = max (loadmodel->maxs[k], v[k]); + } + dist = v[0] * v[0] + v[1] * v[1]; + if (yawradius < dist) + yawradius = dist; + dist += v[2] * v[2]; + if (radius < dist) + radius = dist; + } + + //rbounds will be used when entity has nonzero pitch or roll + radius = sqrt(radius); + loadmodel->rmins[0] = loadmodel->rmins[1] = loadmodel->rmins[2] = -radius; + loadmodel->rmaxs[0] = loadmodel->rmaxs[1] = loadmodel->rmaxs[2] = radius; + + //ybounds will be used when entity has nonzero yaw + yawradius = sqrt(yawradius); + loadmodel->ymins[0] = loadmodel->ymins[1] = -yawradius; + loadmodel->ymaxs[0] = loadmodel->ymaxs[1] = yawradius; + loadmodel->ymins[2] = loadmodel->mins[2]; + loadmodel->ymaxs[2] = loadmodel->maxs[2]; +} + +/* +================= +Mod_SetExtraFlags -- johnfitz -- set up extra flags that aren't in the mdl +================= +*/ +void Mod_SetExtraFlags (model_t *mod) +{ + extern cvar_t r_nolerp_list; + char *s; + int i; + + if (!mod || !mod->name || mod->type != mod_alias) + return; + + mod->flags &= 0xFF; //only preserve first byte + + // nolerp flag + for (s=r_nolerp_list.string; *s; s += i+1, i=0) + { + //search forwards to the next comma or end of string + for (i=0; s[i] != ',' && s[i] != 0; i++) ; + + //compare it to the model name + if (!strncmp(mod->name, s, i)) + { + mod->flags |= MOD_NOLERP; + break; + } + } + + // noshadow flag (TODO: make this a cvar list) + if (!strcmp (mod->name, "progs/flame2.mdl") || + !strcmp (mod->name, "progs/flame.mdl") || + !strcmp (mod->name, "progs/bolt1.mdl") || + !strcmp (mod->name, "progs/bolt2.mdl") || + !strcmp (mod->name, "progs/bolt3.mdl") || + !strcmp (mod->name, "progs/laser.mdl")) + mod->flags |= MOD_NOSHADOW; + + // fullbright hack (TODO: make this a cvar list) + if (!strcmp (mod->name, "progs/flame2.mdl") || + !strcmp (mod->name, "progs/flame.mdl") || + !strcmp (mod->name, "progs/boss.mdl")) + mod->flags |= MOD_FBRIGHTHACK; +} + +/* +================= +Mod_LoadAliasModel +================= +*/ +void Mod_LoadAliasModel (model_t *mod, void *buffer) +{ + int i, j; + mdl_t *pinmodel; + stvert_t *pinstverts; + dtriangle_t *pintriangles; + int version, numframes;//, numskins; unused -- kristian + int size; + daliasframetype_t *pframetype; + daliasskintype_t *pskintype; + int start, end, total; + + start = Hunk_LowMark (); + + pinmodel = (mdl_t *)buffer; + mod_base = (byte *)buffer; //johnfitz + + version = LittleLong (pinmodel->version); + if (version != ALIAS_VERSION) + Sys_Error ("%s has wrong version number (%i should be %i)", + mod->name, version, ALIAS_VERSION); + +// +// allocate space for a working header, plus all the data except the frames, +// skin and group info +// + size = sizeof (aliashdr_t) + + (LittleLong (pinmodel->numframes) - 1) * + sizeof (pheader->frames[0]); + pheader = Hunk_AllocName (size, loadname); + + mod->flags = LittleLong (pinmodel->flags); + +// +// endian-adjust and copy the data, starting with the alias model header +// + pheader->boundingradius = LittleFloat (pinmodel->boundingradius); + pheader->numskins = LittleLong (pinmodel->numskins); + pheader->skinwidth = LittleLong (pinmodel->skinwidth); + pheader->skinheight = LittleLong (pinmodel->skinheight); + + if (pheader->skinheight > MAX_LBM_HEIGHT) + Sys_Error ("model %s has a skin taller than %d", mod->name, + MAX_LBM_HEIGHT); + + pheader->numverts = LittleLong (pinmodel->numverts); + + if (pheader->numverts <= 0) + Sys_Error ("model %s has no vertices", mod->name); + + if (pheader->numverts > MAXALIASVERTS) + Sys_Error ("model %s has too many vertices", mod->name); + + pheader->numtris = LittleLong (pinmodel->numtris); + + if (pheader->numtris <= 0) + Sys_Error ("model %s has no triangles", mod->name); + + pheader->numframes = LittleLong (pinmodel->numframes); + numframes = pheader->numframes; + if (numframes < 1) + Sys_Error ("Mod_LoadAliasModel: Invalid # of frames: %d\n", numframes); + + pheader->size = LittleFloat (pinmodel->size) * ALIAS_BASE_SIZE_RATIO; + mod->synctype = LittleLong (pinmodel->synctype); + mod->numframes = pheader->numframes; + + for (i=0 ; i<3 ; i++) + { + pheader->scale[i] = LittleFloat (pinmodel->scale[i]); + pheader->scale_origin[i] = LittleFloat (pinmodel->scale_origin[i]); + pheader->eyeposition[i] = LittleFloat (pinmodel->eyeposition[i]); + } + + +// +// load the skins +// + pskintype = (daliasskintype_t *)&pinmodel[1]; + pskintype = Mod_LoadAllSkins (pheader->numskins, pskintype); + +// +// load base s and t vertices +// + pinstverts = (stvert_t *)pskintype; + + for (i=0 ; inumverts ; i++) + { + stverts[i].onseam = LittleLong (pinstverts[i].onseam); + stverts[i].s = LittleLong (pinstverts[i].s); + stverts[i].t = LittleLong (pinstverts[i].t); + } + +// +// load triangle lists +// + pintriangles = (dtriangle_t *)&pinstverts[pheader->numverts]; + + for (i=0 ; inumtris ; i++) + { + triangles[i].facesfront = LittleLong (pintriangles[i].facesfront); + + for (j=0 ; j<3 ; j++) + { + triangles[i].vertindex[j] = + LittleLong (pintriangles[i].vertindex[j]); + } + } + +// +// load the frames +// + posenum = 0; + pframetype = (daliasframetype_t *)&pintriangles[pheader->numtris]; + + for (i=0 ; itype); + if (frametype == ALIAS_SINGLE) + pframetype = (daliasframetype_t *) Mod_LoadAliasFrame (pframetype + 1, &pheader->frames[i]); + else + pframetype = (daliasframetype_t *) Mod_LoadAliasGroup (pframetype + 1, &pheader->frames[i]); + } + + pheader->numposes = posenum; + + mod->type = mod_alias; + + Mod_SetExtraFlags (mod); //johnfitz + + Mod_CalcAliasBounds (pheader); //johnfitz + + // + // build the draw lists + // + GL_MakeAliasModelDisplayLists (mod, pheader); + +// +// move the complete, relocatable alias model to the cache +// + end = Hunk_LowMark (); + total = end - start; + + Cache_Alloc (&mod->cache, total, loadname); + if (!mod->cache.data) + return; + memcpy (mod->cache.data, pheader, total); + + Hunk_FreeToLowMark (start); +} + +//============================================================================= + +/* +================= +Mod_LoadSpriteFrame +================= +*/ +void * Mod_LoadSpriteFrame (void * pin, mspriteframe_t **ppframe, int framenum) +{ + dspriteframe_t *pinframe; + mspriteframe_t *pspriteframe; + int width, height, size, origin[2];//, i; unused -- kristian + /* unused -- kristian + unsigned short *ppixout; + byte *ppixin; + */ + char name[64]; + unsigned offset; //johnfitz + + pinframe = (dspriteframe_t *)pin; + + width = LittleLong (pinframe->width); + height = LittleLong (pinframe->height); + size = width * height; + + pspriteframe = Hunk_AllocName (sizeof (mspriteframe_t),loadname); + + Q_memset (pspriteframe, 0, sizeof (mspriteframe_t)); + + *ppframe = pspriteframe; + + pspriteframe->width = width; + pspriteframe->height = height; + origin[0] = LittleLong (pinframe->origin[0]); + origin[1] = LittleLong (pinframe->origin[1]); + + pspriteframe->up = origin[1]; + pspriteframe->down = origin[1] - height; + pspriteframe->left = origin[0]; + pspriteframe->right = width + origin[0]; + + //johnfitz -- image might be padded + pspriteframe->smax = (float)width/(float)TexMgr_PadConditional(width); + pspriteframe->tmax = (float)height/(float)TexMgr_PadConditional(height); + //johnfitz + + sprintf (name, "%s:frame%i", loadmodel->name, framenum); + offset = (unsigned)(pinframe+1) - (unsigned)mod_base; //johnfitz + pspriteframe->gltexture = + TexMgr_LoadImage (loadmodel, name, width, height, SRC_INDEXED, (byte *)(pinframe + 1), + loadmodel->name, offset, TEXPREF_PAD | TEXPREF_ALPHA | TEXPREF_NOPICMIP); //johnfitz -- TexMgr + + return (void *)((byte *)pinframe + sizeof (dspriteframe_t) + size); +} + + +/* +================= +Mod_LoadSpriteGroup +================= +*/ +void * Mod_LoadSpriteGroup (void * pin, mspriteframe_t **ppframe, int framenum) +{ + dspritegroup_t *pingroup; + mspritegroup_t *pspritegroup; + int i, numframes; + dspriteinterval_t *pin_intervals; + float *poutintervals; + void *ptemp; + + pingroup = (dspritegroup_t *)pin; + + numframes = LittleLong (pingroup->numframes); + + pspritegroup = Hunk_AllocName (sizeof (mspritegroup_t) + + (numframes - 1) * sizeof (pspritegroup->frames[0]), loadname); + + pspritegroup->numframes = numframes; + + *ppframe = (mspriteframe_t *)pspritegroup; + + pin_intervals = (dspriteinterval_t *)(pingroup + 1); + + poutintervals = Hunk_AllocName (numframes * sizeof (float), loadname); + + pspritegroup->intervals = poutintervals; + + for (i=0 ; iinterval); + if (*poutintervals <= 0.0) + Sys_Error ("Mod_LoadSpriteGroup: interval<=0"); + + poutintervals++; + pin_intervals++; + } + + ptemp = (void *)pin_intervals; + + for (i=0 ; iframes[i], framenum * 100 + i); + } + + return ptemp; +} + + +/* +================= +Mod_LoadSpriteModel +================= +*/ +void Mod_LoadSpriteModel (model_t *mod, void *buffer) +{ + int i; + int version; + dsprite_t *pin; + msprite_t *psprite; + int numframes; + int size; + dspriteframetype_t *pframetype; + + pin = (dsprite_t *)buffer; + mod_base = (byte *)buffer; //johnfitz + + version = LittleLong (pin->version); + if (version != SPRITE_VERSION) + Sys_Error ("%s has wrong version number " + "(%i should be %i)", mod->name, version, SPRITE_VERSION); + + numframes = LittleLong (pin->numframes); + + size = sizeof (msprite_t) + (numframes - 1) * sizeof (psprite->frames); + + psprite = Hunk_AllocName (size, loadname); + + mod->cache.data = psprite; + + psprite->type = LittleLong (pin->type); + psprite->maxwidth = LittleLong (pin->width); + psprite->maxheight = LittleLong (pin->height); + psprite->beamlength = LittleFloat (pin->beamlength); + mod->synctype = LittleLong (pin->synctype); + psprite->numframes = numframes; + + mod->mins[0] = mod->mins[1] = -psprite->maxwidth/2; + mod->maxs[0] = mod->maxs[1] = psprite->maxwidth/2; + mod->mins[2] = -psprite->maxheight/2; + mod->maxs[2] = psprite->maxheight/2; + +// +// load the frames +// + if (numframes < 1) + Sys_Error ("Mod_LoadSpriteModel: Invalid # of frames: %d\n", numframes); + + mod->numframes = numframes; + + pframetype = (dspriteframetype_t *)(pin + 1); + + for (i=0 ; itype); + psprite->frames[i].type = frametype; + + if (frametype == SPR_SINGLE) + { + pframetype = (dspriteframetype_t *) + Mod_LoadSpriteFrame (pframetype + 1, + &psprite->frames[i].frameptr, i); + } + else + { + pframetype = (dspriteframetype_t *) + Mod_LoadSpriteGroup (pframetype + 1, + &psprite->frames[i].frameptr, i); + } + } + + mod->type = mod_sprite; +} + +//============================================================================= + +/* +================ +Mod_Print +================ +*/ +void Mod_Print (void) +{ + int i; + model_t *mod; + + Con_SafePrintf ("Cached models:\n"); //johnfitz -- safeprint instead of print + for (i=0, mod=mod_known ; i < mod_numknown ; i++, mod++) + { + Con_SafePrintf ("%8p : %s\n", mod->cache.data, mod->name); //johnfitz -- safeprint instead of print + } + Con_Printf ("%i models\n",mod_numknown); //johnfitz -- print the total too +} + + diff --git a/quakespasm/Quake/gl_model.h b/quakespasm/Quake/gl_model.h new file mode 100644 index 00000000..c31f3a52 --- /dev/null +++ b/quakespasm/Quake/gl_model.h @@ -0,0 +1,454 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 __MODEL__ +#define __MODEL__ + +#include "modelgen.h" +#include "spritegn.h" + +/* + +d*_t structures are on-disk representations +m*_t structures are in-memory + +*/ + +// entity effects + +#define EF_BRIGHTFIELD 1 +#define EF_MUZZLEFLASH 2 +#define EF_BRIGHTLIGHT 4 +#define EF_DIMLIGHT 8 + + +/* +============================================================================== + +BRUSH MODELS + +============================================================================== +*/ + + +// +// in memory representation +// +// !!! if this is changed, it must be changed in asm_draw.h too !!! +typedef struct +{ + vec3_t position; +} mvertex_t; + +#define SIDE_FRONT 0 +#define SIDE_BACK 1 +#define SIDE_ON 2 + + +// plane_t structure +// !!! if this is changed, it must be changed in asm_i386.h too !!! +typedef struct mplane_s +{ + vec3_t normal; + float dist; + byte type; // for texture axis selection and fast side tests + byte signbits; // signx + signy<<1 + signz<<1 + byte pad[2]; +} mplane_t; + +typedef struct texture_s +{ + char name[16]; + unsigned width, height; + struct gltexture_s *gltexture; //johnfitz -- pointer to gltexture + struct gltexture_s *fullbright; //johnfitz -- fullbright mask texture + struct gltexture_s *warpimage; //johnfitz -- for water animation + qboolean update_warp; //johnfitz -- update warp this frame + struct msurface_s *texturechain; // for texture chains + int anim_total; // total tenths in sequence ( 0 = no) + int anim_min, anim_max; // time for this frame min <=time< max + struct texture_s *anim_next; // in the animation sequence + struct texture_s *alternate_anims; // bmodels in frmae 1 use these + unsigned offsets[MIPLEVELS]; // four mip maps stored +} texture_t; + + +#define SURF_PLANEBACK 2 +#define SURF_DRAWSKY 4 +#define SURF_DRAWSPRITE 8 +#define SURF_DRAWTURB 0x10 +#define SURF_DRAWTILED 0x20 +#define SURF_DRAWBACKGROUND 0x40 +#define SURF_UNDERWATER 0x80 +#define SURF_NOTEXTURE 0x100 //johnfitz + +// !!! if this is changed, it must be changed in asm_draw.h too !!! +typedef struct +{ + unsigned short v[2]; + unsigned int cachededgeoffset; +} medge_t; + +typedef struct +{ + float vecs[2][4]; + float mipadjust; + texture_t *texture; + int flags; +} mtexinfo_t; + +#define VERTEXSIZE 7 + +typedef struct glpoly_s +{ + struct glpoly_s *next; + struct glpoly_s *chain; + int numverts; + float verts[4][VERTEXSIZE]; // variable sized (xyz s1t1 s2t2) +} glpoly_t; + +typedef struct msurface_s +{ + int visframe; // should be drawn when node is crossed + qboolean culled; // johnfitz -- for frustum culling + float mins[3]; // johnfitz -- for frustum culling + float maxs[3]; // johnfitz -- for frustum culling + + mplane_t *plane; + int flags; + + int firstedge; // look up in model->surfedges[], negative numbers + int numedges; // are backwards edges + + short texturemins[2]; + short extents[2]; + + int light_s, light_t; // gl lightmap coordinates + + glpoly_t *polys; // multiple if warped + struct msurface_s *texturechain; + + mtexinfo_t *texinfo; + +// lighting info + int dlightframe; + int dlightbits; + + int lightmaptexturenum; + byte styles[MAXLIGHTMAPS]; + int cached_light[MAXLIGHTMAPS]; // values currently used in lightmap + qboolean cached_dlight; // true if dynamic light in cache + byte *samples; // [numstyles*surfsize] +} msurface_t; + +typedef struct mnode_s +{ +// common with leaf + int contents; // 0, to differentiate from leafs + int visframe; // node needs to be traversed if current + + float minmaxs[6]; // for bounding box culling + + struct mnode_s *parent; + +// node specific + mplane_t *plane; + struct mnode_s *children[2]; + + unsigned short firstsurface; + unsigned short numsurfaces; +} mnode_t; + + + +typedef struct mleaf_s +{ +// common with node + int contents; // wil be a negative contents number + int visframe; // node needs to be traversed if current + + float minmaxs[6]; // for bounding box culling + + struct mnode_s *parent; + +// leaf specific + byte *compressed_vis; + efrag_t *efrags; + + msurface_t **firstmarksurface; + int nummarksurfaces; + int key; // BSP sequence number for leaf's contents + byte ambient_sound_level[NUM_AMBIENTS]; +} mleaf_t; + +//johnfitz -- for clipnodes>32k +typedef struct mclipnode_s +{ + int planenum; + int children[2]; // negative numbers are contents +} mclipnode_t; +//johnfitz + +// !!! if this is changed, it must be changed in asm_i386.h too !!! +typedef struct +{ + mclipnode_t *clipnodes; //johnfitz -- was dclipnode_t + mplane_t *planes; + int firstclipnode; + int lastclipnode; + vec3_t clip_mins; + vec3_t clip_maxs; +} hull_t; + +/* +============================================================================== + +SPRITE MODELS + +============================================================================== +*/ + + +// FIXME: shorten these? +typedef struct mspriteframe_s +{ + int width, height; + float up, down, left, right; + float smax, tmax; //johnfitz -- image might be padded + struct gltexture_s *gltexture; +} mspriteframe_t; + +typedef struct +{ + int numframes; + float *intervals; + mspriteframe_t *frames[1]; +} mspritegroup_t; + +typedef struct +{ + spriteframetype_t type; + mspriteframe_t *frameptr; +} mspriteframedesc_t; + +typedef struct +{ + int type; + int maxwidth; + int maxheight; + int numframes; + float beamlength; // remove? + void *cachespot; // remove? + mspriteframedesc_t frames[1]; +} msprite_t; + + +/* +============================================================================== + +ALIAS MODELS + +Alias models are position independent, so the cache manager can move them. +============================================================================== +*/ + +typedef struct +{ + int firstpose; + int numposes; + float interval; + trivertx_t bboxmin; + trivertx_t bboxmax; + int frame; + char name[16]; +} maliasframedesc_t; + +typedef struct +{ + trivertx_t bboxmin; + trivertx_t bboxmax; + int frame; +} maliasgroupframedesc_t; + +typedef struct +{ + int numframes; + int intervals; + maliasgroupframedesc_t frames[1]; +} maliasgroup_t; + +// !!! if this is changed, it must be changed in asm_draw.h too !!! +typedef struct mtriangle_s { + int facesfront; + int vertindex[3]; +} mtriangle_t; + + +#define MAX_SKINS 32 +typedef struct { + int ident; + int version; + vec3_t scale; + vec3_t scale_origin; + float boundingradius; + vec3_t eyeposition; + int numskins; + int skinwidth; + int skinheight; + int numverts; + int numtris; + int numframes; + synctype_t synctype; + int flags; + float size; + + int numposes; + int poseverts; + int posedata; // numposes*poseverts trivert_t + int commands; // gl command list with embedded s/t + struct gltexture_s *gltextures[MAX_SKINS][4]; //johnfitz + struct gltexture_s *fbtextures[MAX_SKINS][4]; //johnfitz + int texels[MAX_SKINS]; // only for player skins + maliasframedesc_t frames[1]; // variable sized +} aliashdr_t; + +#define MAXALIASVERTS 2000 //johnfitz -- was 1024 +#define MAXALIASFRAMES 256 +#define MAXALIASTRIS 2048 +extern aliashdr_t *pheader; +extern stvert_t stverts[MAXALIASVERTS]; +extern mtriangle_t triangles[MAXALIASTRIS]; +extern trivertx_t *poseverts[MAXALIASFRAMES]; + +//=================================================================== + +// +// Whole model +// + +typedef enum {mod_brush, mod_sprite, mod_alias} modtype_t; + +#define EF_ROCKET 1 // leave a trail +#define EF_GRENADE 2 // leave a trail +#define EF_GIB 4 // leave a trail +#define EF_ROTATE 8 // rotate (bonus items) +#define EF_TRACER 16 // green split trail +#define EF_ZOMGIB 32 // small blood trail +#define EF_TRACER2 64 // orange split trail + rotate +#define EF_TRACER3 128 // purple trail + +//johnfitz -- extra flags for rendering +#define MOD_NOLERP 256 //don't lerp when animating +#define MOD_NOSHADOW 512 //don't cast a shadow +#define MOD_FBRIGHTHACK 1024 //when fullbrights are disabled, use a hack to render this model brighter +//johnfitz + +typedef struct model_s +{ + char name[MAX_QPATH]; + qboolean needload; // bmodels and sprites don't cache normally + + modtype_t type; + int numframes; + synctype_t synctype; + + int flags; + +// +// volume occupied by the model graphics +// + vec3_t mins, maxs; + vec3_t ymins, ymaxs; //johnfitz -- bounds for entities with nonzero yaw + vec3_t rmins, rmaxs; //johnfitz -- bounds for entities with nonzero pitch or roll + //johnfitz -- removed float radius; + +// +// solid volume for clipping +// + qboolean clipbox; + vec3_t clipmins, clipmaxs; + +// +// brush model +// + int firstmodelsurface, nummodelsurfaces; + + int numsubmodels; + dmodel_t *submodels; + + int numplanes; + mplane_t *planes; + + int numleafs; // number of visible leafs, not counting 0 + mleaf_t *leafs; + + int numvertexes; + mvertex_t *vertexes; + + int numedges; + medge_t *edges; + + int numnodes; + mnode_t *nodes; + + int numtexinfo; + mtexinfo_t *texinfo; + + int numsurfaces; + msurface_t *surfaces; + + int numsurfedges; + int *surfedges; + + int numclipnodes; + mclipnode_t *clipnodes; //johnfitz -- was dclipnode_t + + int nummarksurfaces; + msurface_t **marksurfaces; + + hull_t hulls[MAX_MAP_HULLS]; + + int numtextures; + texture_t **textures; + + byte *visdata; + byte *lightdata; + char *entities; + +// +// additional model data +// + cache_user_t cache; // only access through Mod_Extradata + +} model_t; + +//============================================================================ + +void Mod_Init (void); +void Mod_ClearAll (void); +model_t *Mod_ForName (char *name, qboolean crash); +void *Mod_Extradata (model_t *mod); // handles caching +void Mod_TouchModel (char *name); + +mleaf_t *Mod_PointInLeaf (float *p, model_t *model); +byte *Mod_LeafPVS (mleaf_t *leaf, model_t *model); + +#endif // __MODEL__ diff --git a/quakespasm/Quake/gl_refrag.c b/quakespasm/Quake/gl_refrag.c new file mode 100644 index 00000000..20a6a044 --- /dev/null +++ b/quakespasm/Quake/gl_refrag.c @@ -0,0 +1,244 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// r_efrag.c + +#include "quakedef.h" + +mnode_t *r_pefragtopnode; + + +//=========================================================================== + +/* +=============================================================================== + + ENTITY FRAGMENT FUNCTIONS + +=============================================================================== +*/ + +efrag_t **lastlink; + +vec3_t r_emins, r_emaxs; + +entity_t *r_addent; + + +/* +================ +R_RemoveEfrags + +Call when removing an object from the world or moving it to another position +================ +*/ +void R_RemoveEfrags (entity_t *ent) +{ + efrag_t *ef, *old, *walk, **prev; + + ef = ent->efrag; + + while (ef) + { + prev = &ef->leaf->efrags; + while (1) + { + walk = *prev; + if (!walk) + break; + if (walk == ef) + { // remove this fragment + *prev = ef->leafnext; + break; + } + else + prev = &walk->leafnext; + } + + old = ef; + ef = ef->entnext; + + // put it on the free list + old->entnext = cl.free_efrags; + cl.free_efrags = old; + } + + ent->efrag = NULL; +} + +/* +=================== +R_SplitEntityOnNode +=================== +*/ +void R_SplitEntityOnNode (mnode_t *node) +{ + efrag_t *ef; + mplane_t *splitplane; + mleaf_t *leaf; + int sides; + + if (node->contents == CONTENTS_SOLID) + { + return; + } + +// add an efrag if the node is a leaf + + if ( node->contents < 0) + { + if (!r_pefragtopnode) + r_pefragtopnode = node; + + leaf = (mleaf_t *)node; + +// grab an efrag off the free list + ef = cl.free_efrags; + if (!ef) + { + //johnfitz -- less spammy overflow message + if (!dev_overflows.efrags || dev_overflows.efrags + CONSOLE_RESPAM_TIME < realtime ) + { + Con_Printf ("Too many efrags!\n"); + dev_overflows.efrags = realtime; + } + //johnfitz + return; // no free fragments... + } + cl.free_efrags = cl.free_efrags->entnext; + + ef->entity = r_addent; + +// add the entity link + *lastlink = ef; + lastlink = &ef->entnext; + ef->entnext = NULL; + +// set the leaf links + ef->leaf = leaf; + ef->leafnext = leaf->efrags; + leaf->efrags = ef; + + return; + } + +// NODE_MIXED + + splitplane = node->plane; + sides = BOX_ON_PLANE_SIDE(r_emins, r_emaxs, splitplane); + + if (sides == 3) + { + // split on this plane + // if this is the first splitter of this bmodel, remember it + if (!r_pefragtopnode) + r_pefragtopnode = node; + } + +// recurse down the contacted sides + if (sides & 1) + R_SplitEntityOnNode (node->children[0]); + + if (sides & 2) + R_SplitEntityOnNode (node->children[1]); +} + +/* +=========== +R_CheckEfrags -- johnfitz -- check for excessive efrag count +=========== +*/ +void R_CheckEfrags (void) +{ + efrag_t *ef; + int count; + + if (cls.signon < 2) + return; //don't spam when still parsing signon packet full of static ents + + for (count=MAX_EFRAGS, ef = cl.free_efrags; ef; count--, ef = ef->entnext) + ; + + if (count > 640 && dev_peakstats.efrags <= 640) + Con_Warning ("%i efrags exceeds standard limit of 640.\n", count); + + dev_stats.efrags = count; + dev_peakstats.efrags = max(count, dev_peakstats.efrags); +} + +/* +=========== +R_AddEfrags +=========== +*/ +void R_AddEfrags (entity_t *ent) +{ + model_t *entmodel; + int i; + + if (!ent->model) + return; + + r_addent = ent; + + lastlink = &ent->efrag; + r_pefragtopnode = NULL; + + entmodel = ent->model; + + for (i=0 ; i<3 ; i++) + { + r_emins[i] = ent->origin[i] + entmodel->mins[i]; + r_emaxs[i] = ent->origin[i] + entmodel->maxs[i]; + } + + R_SplitEntityOnNode (cl.worldmodel->nodes); + + ent->topnode = r_pefragtopnode; + + R_CheckEfrags (); //johnfitz +} + + +/* +================ +R_StoreEfrags -- johnfitz -- pointless switch statement removed. +================ +*/ +void R_StoreEfrags (efrag_t **ppefrag) +{ + entity_t *pent; + efrag_t *pefrag; + + while ((pefrag = *ppefrag) != NULL) + { + pent = pefrag->entity; + + if ((pent->visframe != r_framecount) && (cl_numvisedicts < MAX_VISEDICTS)) + { + cl_visedicts[cl_numvisedicts++] = pent; + pent->visframe = r_framecount; + } + + ppefrag = &pefrag->leafnext; + } +} + + diff --git a/quakespasm/Quake/gl_rlight.c b/quakespasm/Quake/gl_rlight.c new file mode 100644 index 00000000..09183888 --- /dev/null +++ b/quakespasm/Quake/gl_rlight.c @@ -0,0 +1,391 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// r_light.c + +#include "quakedef.h" + +int r_dlightframecount; + +extern cvar_t r_flatlightstyles; //johnfitz + +/* +================== +R_AnimateLight +================== +*/ +void R_AnimateLight (void) +{ + int i,j,k; + +// +// light animations +// 'm' is normal light, 'a' is no light, 'z' is double bright + i = (int)(cl.time*10); + for (j=0 ; jradius * 0.35; + + VectorSubtract (light->origin, r_origin, v); + if (Length (v) < rad) + { // view is inside the dlight + AddLightBlend (1, 0.5, 0, light->radius * 0.0003); + return; + } + + glBegin (GL_TRIANGLE_FAN); + glColor3f (0.2,0.1,0.0); + for (i=0 ; i<3 ; i++) + v[i] = light->origin[i] - vpn[i]*rad; + glVertex3fv (v); + glColor3f (0,0,0); + for (i=16 ; i>=0 ; i--) + { + a = i/16.0 * M_PI*2; + for (j=0 ; j<3 ; j++) + v[j] = light->origin[j] + vright[j]*cos(a)*rad + + vup[j]*sin(a)*rad; + glVertex3fv (v); + } + glEnd (); +} + +/* +============= +R_RenderDlights +============= +*/ +void R_RenderDlights (void) +{ + int i; + dlight_t *l; + + if (!gl_flashblend.value) + return; + + r_dlightframecount = r_framecount + 1; // because the count hasn't + // advanced yet for this frame + glDepthMask (0); + glDisable (GL_TEXTURE_2D); + glShadeModel (GL_SMOOTH); + glEnable (GL_BLEND); + glBlendFunc (GL_ONE, GL_ONE); + + l = cl_dlights; + for (i=0 ; idie < cl.time || !l->radius) + continue; + R_RenderDlight (l); + } + + glColor3f (1,1,1); + glDisable (GL_BLEND); + glEnable (GL_TEXTURE_2D); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDepthMask (1); +} + + +/* +============================================================================= + +DYNAMIC LIGHTS + +============================================================================= +*/ + +/* +============= +R_MarkLights -- johnfitz -- rewritten to use LordHavoc's lighting speedup +============= +*/ +void R_MarkLights (dlight_t *light, int bit, mnode_t *node) +{ + mplane_t *splitplane; + msurface_t *surf; + vec3_t impact; + float dist, l, maxdist; + int i, j, s, t; + +start: + + if (node->contents < 0) + return; + + splitplane = node->plane; + if (splitplane->type < 3) + dist = light->origin[splitplane->type] - splitplane->dist; + else + dist = DotProduct (light->origin, splitplane->normal) - splitplane->dist; + + if (dist > light->radius) + { + node = node->children[0]; + goto start; + } + if (dist < -light->radius) + { + node = node->children[1]; + goto start; + } + + maxdist = light->radius*light->radius; +// mark the polygons + surf = cl.worldmodel->surfaces + node->firstsurface; + for (i=0 ; inumsurfaces ; i++, surf++) + { + for (j=0 ; j<3 ; j++) + impact[j] = light->origin[j] - surf->plane->normal[j]*dist; + // clamp center of light to corner and check brightness + l = DotProduct (impact, surf->texinfo->vecs[0]) + surf->texinfo->vecs[0][3] - surf->texturemins[0]; + s = l+0.5;if (s < 0) s = 0;else if (s > surf->extents[0]) s = surf->extents[0]; + s = l - s; + l = DotProduct (impact, surf->texinfo->vecs[1]) + surf->texinfo->vecs[1][3] - surf->texturemins[1]; + t = l+0.5;if (t < 0) t = 0;else if (t > surf->extents[1]) t = surf->extents[1]; + t = l - t; + // compare to minimum light + if ((s*s+t*t+dist*dist) < maxdist) + { + if (surf->dlightframe != r_dlightframecount) // not dynamic until now + { + surf->dlightbits = bit; + surf->dlightframe = r_dlightframecount; + } + else // already dynamic + surf->dlightbits |= bit; + } + } + + if (node->children[0]->contents >= 0) + R_MarkLights (light, bit, node->children[0]); + if (node->children[1]->contents >= 0) + R_MarkLights (light, bit, node->children[1]); +} + +/* +============= +R_PushDlights +============= +*/ +void R_PushDlights (void) +{ + int i; + dlight_t *l; + + if (gl_flashblend.value) + return; + + r_dlightframecount = r_framecount + 1; // because the count hasn't + // advanced yet for this frame + l = cl_dlights; + + for (i=0 ; idie < cl.time || !l->radius) + continue; + R_MarkLights ( l, 1<nodes ); + } +} + + +/* +============================================================================= + +LIGHT SAMPLING + +============================================================================= +*/ + +mplane_t *lightplane; +vec3_t lightspot; +vec3_t lightcolor; //johnfitz -- lit support via lordhavoc + +/* +============= +RecursiveLightPoint -- johnfitz -- replaced entire function for lit support via lordhavoc +============= +*/ +int RecursiveLightPoint (vec3_t color, mnode_t *node, vec3_t start, vec3_t end) +{ + float front, back, frac; + vec3_t mid; + +loc0: + if (node->contents < 0) + return false; // didn't hit anything + +// calculate mid point + if (node->plane->type < 3) + { + front = start[node->plane->type] - node->plane->dist; + back = end[node->plane->type] - node->plane->dist; + } + else + { + front = DotProduct(start, node->plane->normal) - node->plane->dist; + back = DotProduct(end, node->plane->normal) - node->plane->dist; + } + + // LordHavoc: optimized recursion + if ((back < 0) == (front < 0)) +// return RecursiveLightPoint (color, node->children[front < 0], start, end); + { + node = node->children[front < 0]; + goto loc0; + } + + frac = front / (front-back); + mid[0] = start[0] + (end[0] - start[0])*frac; + mid[1] = start[1] + (end[1] - start[1])*frac; + mid[2] = start[2] + (end[2] - start[2])*frac; + +// go down front side + if (RecursiveLightPoint (color, node->children[front < 0], start, mid)) + return true; // hit something + else + { + int i, ds, dt; + msurface_t *surf; + // check for impact on this node + VectorCopy (mid, lightspot); + lightplane = node->plane; + + surf = cl.worldmodel->surfaces + node->firstsurface; + for (i = 0;i < node->numsurfaces;i++, surf++) + { + if (surf->flags & SURF_DRAWTILED) + continue; // no lightmaps + + ds = (int) ((float) DotProduct (mid, surf->texinfo->vecs[0]) + surf->texinfo->vecs[0][3]); + dt = (int) ((float) DotProduct (mid, surf->texinfo->vecs[1]) + surf->texinfo->vecs[1][3]); + + if (ds < surf->texturemins[0] || dt < surf->texturemins[1]) + continue; + + ds -= surf->texturemins[0]; + dt -= surf->texturemins[1]; + + if (ds > surf->extents[0] || dt > surf->extents[1]) + continue; + + if (surf->samples) + { + // LordHavoc: enhanced to interpolate lighting + byte *lightmap; + int maps, line3, dsfrac = ds & 15, dtfrac = dt & 15, r00 = 0, g00 = 0, b00 = 0, r01 = 0, g01 = 0, b01 = 0, r10 = 0, g10 = 0, b10 = 0, r11 = 0, g11 = 0, b11 = 0; + float scale; + line3 = ((surf->extents[0]>>4)+1)*3; + + lightmap = surf->samples + ((dt>>4) * ((surf->extents[0]>>4)+1) + (ds>>4))*3; // LordHavoc: *3 for color + + for (maps = 0;maps < MAXLIGHTMAPS && surf->styles[maps] != 255;maps++) + { + scale = (float) d_lightstylevalue[surf->styles[maps]] * 1.0 / 256.0; + r00 += (float) lightmap[ 0] * scale;g00 += (float) lightmap[ 1] * scale;b00 += (float) lightmap[2] * scale; + r01 += (float) lightmap[ 3] * scale;g01 += (float) lightmap[ 4] * scale;b01 += (float) lightmap[5] * scale; + r10 += (float) lightmap[line3+0] * scale;g10 += (float) lightmap[line3+1] * scale;b10 += (float) lightmap[line3+2] * scale; + r11 += (float) lightmap[line3+3] * scale;g11 += (float) lightmap[line3+4] * scale;b11 += (float) lightmap[line3+5] * scale; + lightmap += ((surf->extents[0]>>4)+1) * ((surf->extents[1]>>4)+1)*3; // LordHavoc: *3 for colored lighting + } + + color[0] += (float) ((int) ((((((((r11-r10) * dsfrac) >> 4) + r10)-((((r01-r00) * dsfrac) >> 4) + r00)) * dtfrac) >> 4) + ((((r01-r00) * dsfrac) >> 4) + r00))); + color[1] += (float) ((int) ((((((((g11-g10) * dsfrac) >> 4) + g10)-((((g01-g00) * dsfrac) >> 4) + g00)) * dtfrac) >> 4) + ((((g01-g00) * dsfrac) >> 4) + g00))); + color[2] += (float) ((int) ((((((((b11-b10) * dsfrac) >> 4) + b10)-((((b01-b00) * dsfrac) >> 4) + b00)) * dtfrac) >> 4) + ((((b01-b00) * dsfrac) >> 4) + b00))); + } + return true; // success + } + + // go down back side + return RecursiveLightPoint (color, node->children[front >= 0], mid, end); + } +} + +/* +============= +R_LightPoint -- johnfitz -- replaced entire function for lit support via lordhavoc +============= +*/ +int R_LightPoint (vec3_t p) +{ + vec3_t end; + + if (!cl.worldmodel->lightdata) + { + lightcolor[0] = lightcolor[1] = lightcolor[2] = 255; + return 255; + } + + end[0] = p[0]; + end[1] = p[1]; + end[2] = p[2] - 8192; //johnfitz -- was 2048 + + lightcolor[0] = lightcolor[1] = lightcolor[2] = 0; + RecursiveLightPoint (lightcolor, cl.worldmodel->nodes, p, end); + return ((lightcolor[0] + lightcolor[1] + lightcolor[2]) * (1.0f / 3.0f)); +} diff --git a/quakespasm/Quake/gl_rmain.c b/quakespasm/Quake/gl_rmain.c new file mode 100644 index 00000000..c74f2e9b --- /dev/null +++ b/quakespasm/Quake/gl_rmain.c @@ -0,0 +1,860 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// r_main.c + +#include "quakedef.h" + +qboolean r_cache_thrash; // compatability + +vec3_t modelorg, r_entorigin; +entity_t *currententity; + +int r_visframecount; // bumped when going to a new PVS +int r_framecount; // used for dlight push checking + +mplane_t frustum[4]; + +//johnfitz -- rendering statistics +int rs_brushpolys, rs_aliaspolys, rs_skypolys, rs_particles, rs_fogpolys; +int rs_dynamiclightmaps, rs_brushpasses, rs_aliaspasses, rs_skypasses; +float rs_megatexels; + +qboolean envmap; // true during envmap command capture + +// +// view origin +// +vec3_t vup; +vec3_t vpn; +vec3_t vright; +vec3_t r_origin; + +float r_world_matrix[16]; +float r_base_world_matrix[16]; + +float r_fovx, r_fovy; //johnfitz -- rendering fov may be different becuase of r_waterwarp and r_stereo + +// +// screen size info +// +refdef_t r_refdef; + +mleaf_t *r_viewleaf, *r_oldviewleaf; + +int d_lightstylevalue[256]; // 8.8 fraction of base light value + + +cvar_t r_norefresh = {"r_norefresh","0"}; +cvar_t r_drawentities = {"r_drawentities","1"}; +cvar_t r_drawviewmodel = {"r_drawviewmodel","1"}; +cvar_t r_speeds = {"r_speeds","0"}; +cvar_t r_fullbright = {"r_fullbright","0"}; +cvar_t r_lightmap = {"r_lightmap","0"}; +cvar_t r_shadows = {"r_shadows","0"}; +cvar_t r_wateralpha = {"r_wateralpha","1"}; +cvar_t r_dynamic = {"r_dynamic","1"}; +cvar_t r_novis = {"r_novis","0"}; + +cvar_t gl_finish = {"gl_finish","0"}; +cvar_t gl_clear = {"gl_clear","0"}; +cvar_t gl_cull = {"gl_cull","1"}; +cvar_t gl_smoothmodels = {"gl_smoothmodels","1"}; +cvar_t gl_affinemodels = {"gl_affinemodels","0"}; +cvar_t gl_polyblend = {"gl_polyblend","1"}; +cvar_t gl_flashblend = {"gl_flashblend","1"}; +cvar_t gl_playermip = {"gl_playermip","0"}; +cvar_t gl_nocolors = {"gl_nocolors","0"}; + +//johnfitz -- new cvars +cvar_t r_stereo = {"r_stereo","0"}; +cvar_t r_stereodepth = {"r_stereodepth","128"}; +cvar_t r_clearcolor = {"r_clearcolor","2", true}; +cvar_t r_drawflat = {"r_drawflat","0"}; +cvar_t r_flatlightstyles = {"r_flatlightstyles", "0"}; +cvar_t gl_fullbrights = {"gl_fullbrights", "1", true}; +cvar_t gl_farclip = {"gl_farclip", "16384", true}; +cvar_t gl_overbright = {"gl_overbright", "1", true}; +cvar_t gl_overbright_models = {"gl_overbright_models", "1", true}; +cvar_t r_oldskyleaf = {"r_oldskyleaf", "0"}; +cvar_t r_drawworld = {"r_drawworld", "1"}; +cvar_t r_showtris = {"r_showtris", "0"}; +cvar_t r_showbboxes = {"r_showbboxes", "0"}; +cvar_t r_lerpmodels = {"r_lerpmodels", "1"}; +cvar_t r_lerpmove = {"r_lerpmove", "1"}; +cvar_t r_nolerp_list = {"r_nolerp_list", "progs/flame.mdl,progs/flame2.mdl,progs/braztall.mdl,progs/brazshrt.mdl,progs/longtrch.mdl,progs/flame_pyre.mdl,progs/v_saw.mdl,progs/v_xfist.mdl,progs/h2stuff/newfire.mdl"}; +//johnfitz + +/* +================= +R_CullBox -- johnfitz -- replaced with new function from lordhavoc + +Returns true if the box is completely outside the frustum +================= +*/ +qboolean R_CullBox (vec3_t emins, vec3_t emaxs) +{ + int i; + mplane_t *p; + for (i = 0;i < 4;i++) + { + p = frustum + i; + switch(p->signbits) + { + default: + case 0: + if (p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2] < p->dist) + return true; + break; + case 1: + if (p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2] < p->dist) + return true; + break; + case 2: + if (p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2] < p->dist) + return true; + break; + case 3: + if (p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2] < p->dist) + return true; + break; + case 4: + if (p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2] < p->dist) + return true; + break; + case 5: + if (p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2] < p->dist) + return true; + break; + case 6: + if (p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2] < p->dist) + return true; + break; + case 7: + if (p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2] < p->dist) + return true; + break; + } + } + return false; +} +/* +=============== +R_CullModelForEntity -- johnfitz -- uses correct bounds based on rotation +=============== +*/ +qboolean R_CullModelForEntity (entity_t *e) +{ + vec3_t mins, maxs; + + if (e->angles[0] || e->angles[2]) //pitch or roll + { + VectorAdd (e->origin, e->model->rmins, mins); + VectorAdd (e->origin, e->model->rmaxs, maxs); + } + else if (e->angles[1]) //yaw + { + VectorAdd (e->origin, e->model->ymins, mins); + VectorAdd (e->origin, e->model->ymaxs, maxs); + } + else //no rotation + { + VectorAdd (e->origin, e->model->mins, mins); + VectorAdd (e->origin, e->model->maxs, maxs); + } + + return R_CullBox (mins, maxs); +} + +/* +=============== +R_RotateForEntity -- johnfitz -- modified to take origin and angles instead of pointer to entity +=============== +*/ +void R_RotateForEntity (vec3_t origin, vec3_t angles) +{ + glTranslatef (origin[0], origin[1], origin[2]); + glRotatef (angles[1], 0, 0, 1); + glRotatef (-angles[0], 0, 1, 0); + glRotatef (angles[2], 1, 0, 0); +} + +/* +============= +GL_PolygonOffset -- johnfitz + +negative offset moves polygon closer to camera +============= +*/ +void GL_PolygonOffset (int offset) +{ + if (offset > 0) + { + glEnable (GL_POLYGON_OFFSET_FILL); + glEnable (GL_POLYGON_OFFSET_LINE); + glPolygonOffset(1, offset); + } + else if (offset < 0) + { + glEnable (GL_POLYGON_OFFSET_FILL); + glEnable (GL_POLYGON_OFFSET_LINE); + glPolygonOffset(-1, offset); + } + else + { + glDisable (GL_POLYGON_OFFSET_FILL); + glDisable (GL_POLYGON_OFFSET_LINE); + } +} + +//============================================================================== +// +// SETUP FRAME +// +//============================================================================== + +int SignbitsForPlane (mplane_t *out) +{ + int bits, j; + + // for fast box on planeside test + + bits = 0; + for (j=0 ; j<3 ; j++) + { + if (out->normal[j] < 0) + bits |= 1<contents); + V_CalcBlend (); + + r_cache_thrash = false; + + //johnfitz -- calculate r_fovx and r_fovy here + r_fovx = r_refdef.fov_x; + r_fovy = r_refdef.fov_y; + if (r_waterwarp.value) + { + int contents = Mod_PointInLeaf (r_origin, cl.worldmodel)->contents; + if (contents == CONTENTS_WATER || contents == CONTENTS_SLIME || contents == CONTENTS_LAVA) + { + //variance is a percentage of width, where width = 2 * tan(fov / 2) otherwise the effect is too dramatic at high FOV and too subtle at low FOV. what a mess! + r_fovx = atan(tan(DEG2RAD(r_refdef.fov_x) / 2) * (0.97 + sin(cl.time * 1.5) * 0.03)) * 2 / M_PI_DIV_180; + r_fovy = atan(tan(DEG2RAD(r_refdef.fov_y) / 2) * (1.03 - sin(cl.time * 1.5) * 0.03)) * 2 / M_PI_DIV_180; + } + } + //johnfitz + + R_SetFrustum (r_fovx, r_fovy); //johnfitz -- use r_fov* vars + + R_MarkSurfaces (); //johnfitz -- create texture chains from PVS + + R_CullSurfaces (); //johnfitz -- do after R_SetFrustum and R_MarkSurfaces + + R_UpdateWarpTextures (); //johnfitz -- do this before R_Clear + + R_Clear (); + + //johnfitz -- cheat-protect some draw modes + r_drawflat_cheatsafe = r_fullbright_cheatsafe = r_lightmap_cheatsafe = false; + r_drawworld_cheatsafe = true; + if (cl.maxclients == 1) + { + if (!r_drawworld.value) r_drawworld_cheatsafe = false; + + if (r_drawflat.value) r_drawflat_cheatsafe = true; + else if (r_fullbright.value || !cl.worldmodel->lightdata) r_fullbright_cheatsafe = true; + else if (r_lightmap.value) r_lightmap_cheatsafe = true; + } + //johnfitz +} + +//============================================================================== +// +// RENDER VIEW +// +//============================================================================== + +/* +============= +R_DrawEntitiesOnList +============= +*/ +void R_DrawEntitiesOnList (qboolean alphapass) //johnfitz -- added parameter +{ + extern cvar_t r_vfog; //johnfitz + int i; + + if (!r_drawentities.value) + return; + + //johnfitz -- sprites are not a special case + for (i=0 ; ialpha) < 1 && !alphapass) || + (ENTALPHA_DECODE(currententity->alpha) == 1 && alphapass)) + continue; + + //johnfitz -- chasecam + if (currententity == &cl_entities[cl.viewentity]) + currententity->angles[0] *= 0.3; + //johnfitz + + switch (currententity->model->type) + { + case mod_alias: + R_DrawAliasModel (currententity); + break; + case mod_brush: + R_DrawBrushModel (currententity); + break; + case mod_sprite: + R_DrawSpriteModel (currententity); + break; + } + } +} + +/* +============= +R_DrawViewModel -- johnfitz -- gutted +============= +*/ +void R_DrawViewModel (void) +{ + if (!r_drawviewmodel.value || !r_drawentities.value || chase_active.value || envmap) + return; + + if (cl.items & IT_INVISIBILITY || cl.stats[STAT_HEALTH] <= 0) + return; + + currententity = &cl.viewent; + if (!currententity->model) + return; + + //johnfitz -- this fixes a crash + if (currententity->model->type != mod_alias) + return; + //johnfitz + + // hack the depth range to prevent view model from poking into walls + glDepthRange (0, 0.3); + R_DrawAliasModel (currententity); + glDepthRange (0, 1); +} + +/* +================ +R_EmitWirePoint -- johnfitz -- draws a wireframe cross shape for point entities +================ +*/ +void R_EmitWirePoint (vec3_t origin) +{ + int size=8; + + glBegin (GL_LINES); + glVertex3f (origin[0]-size, origin[1], origin[2]); + glVertex3f (origin[0]+size, origin[1], origin[2]); + glVertex3f (origin[0], origin[1]-size, origin[2]); + glVertex3f (origin[0], origin[1]+size, origin[2]); + glVertex3f (origin[0], origin[1], origin[2]-size); + glVertex3f (origin[0], origin[1], origin[2]+size); + glEnd (); +} + +/* +================ +R_EmitWireBox -- johnfitz -- draws one axis aligned bounding box +================ +*/ +void R_EmitWireBox (vec3_t mins, vec3_t maxs) +{ + glBegin (GL_QUAD_STRIP); + glVertex3f (mins[0], mins[1], mins[2]); + glVertex3f (mins[0], mins[1], maxs[2]); + glVertex3f (maxs[0], mins[1], mins[2]); + glVertex3f (maxs[0], mins[1], maxs[2]); + glVertex3f (maxs[0], maxs[1], mins[2]); + glVertex3f (maxs[0], maxs[1], maxs[2]); + glVertex3f (mins[0], maxs[1], mins[2]); + glVertex3f (mins[0], maxs[1], maxs[2]); + glVertex3f (mins[0], mins[1], mins[2]); + glVertex3f (mins[0], mins[1], maxs[2]); + glEnd (); +} + +/* +================ +R_ShowBoundingBoxes -- johnfitz + +draw bounding boxes -- the server-side boxes, not the renderer cullboxes +================ +*/ +void R_ShowBoundingBoxes (void) +{ + extern edict_t *sv_player; + vec3_t mins,maxs; + edict_t *ed; + int i; + + if (!r_showbboxes.value || cl.maxclients > 1 || !r_drawentities.value || !sv.active) + return; + + glDisable (GL_DEPTH_TEST); + glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); + GL_PolygonOffset (OFFSET_SHOWTRIS); + glDisable (GL_TEXTURE_2D); + glDisable (GL_CULL_FACE); + glColor3f (1,1,1); + + for (i=0, ed=NEXT_EDICT(sv.edicts) ; iv.mins[0] == ed->v.maxs[0] && ed->v.mins[1] == ed->v.maxs[1] && ed->v.mins[2] == ed->v.maxs[2]) + { + //point entity + R_EmitWirePoint (ed->v.origin); + } + else + { + //box entity + VectorAdd (ed->v.mins, ed->v.origin, mins); + VectorAdd (ed->v.maxs, ed->v.origin, maxs); + R_EmitWireBox (mins, maxs); + } + } + + glColor3f (1,1,1); + glEnable (GL_TEXTURE_2D); + glEnable (GL_CULL_FACE); + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + GL_PolygonOffset (OFFSET_NONE); + glEnable (GL_DEPTH_TEST); + + Sbar_Changed (); //so we don't get dots collecting on the statusbar +} + +/* +================ +R_ShowTris -- johnfitz +================ +*/ +void R_ShowTris (void) +{ + extern cvar_t r_particles; + int i; + + if (r_showtris.value < 1 || r_showtris.value > 2 || cl.maxclients > 1) + return; + + if (r_showtris.value == 1) + glDisable (GL_DEPTH_TEST); + glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); + GL_PolygonOffset (OFFSET_SHOWTRIS); + glDisable (GL_TEXTURE_2D); + glColor3f (1,1,1); +// glEnable (GL_BLEND); +// glBlendFunc (GL_ONE, GL_ONE); + + if (r_drawworld.value) + { + R_DrawTextureChains_ShowTris (); + } + + if (r_drawentities.value) + { + for (i=0 ; iangles[0] *= 0.3; + + switch (currententity->model->type) + { + case mod_brush: + R_DrawBrushModel_ShowTris (currententity); + break; + case mod_alias: + R_DrawAliasModel_ShowTris (currententity); + break; + case mod_sprite: + R_DrawSpriteModel (currententity); + break; + default: + break; + } + } + + // viewmodel + currententity = &cl.viewent; + if (r_drawviewmodel.value + && !chase_active.value + && !envmap + && cl.stats[STAT_HEALTH] > 0 + && !(cl.items & IT_INVISIBILITY) + && currententity->model + && currententity->model->type == mod_alias) + { + glDepthRange (0, 0.3); + R_DrawAliasModel_ShowTris (currententity); + glDepthRange (0, 1); + } + } + + if (r_particles.value) + { + R_DrawParticles_ShowTris (); + } + +// glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); +// glDisable (GL_BLEND); + glColor3f (1,1,1); + glEnable (GL_TEXTURE_2D); + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + GL_PolygonOffset (OFFSET_NONE); + if (r_showtris.value == 1) + glEnable (GL_DEPTH_TEST); + + Sbar_Changed (); //so we don't get dots collecting on the statusbar +} + +/* +================ +R_DrawShadows +================ +*/ +void R_DrawShadows (void) +{ + int i; + + if (!r_shadows.value || !r_drawentities.value || r_drawflat_cheatsafe || r_lightmap_cheatsafe) + return; + + for (i=0 ; imodel->type != mod_alias) + continue; + + if (currententity == &cl.viewent) + return; + + GL_DrawAliasShadow (currententity); + } +} + +/* +================ +R_RenderScene +================ +*/ +void R_RenderScene (void) +{ + R_SetupScene (); //johnfitz -- this does everything that should be done once per call to RenderScene + + Fog_EnableGFog (); //johnfitz + + Sky_DrawSky (); //johnfitz + + R_DrawWorld (); + + S_ExtraUpdate (); // don't let sound get messed up if going slow + + R_DrawShadows (); //johnfitz -- render entity shadows + + R_DrawEntitiesOnList (false); //johnfitz -- false means this is the pass for nonalpha entities + + R_DrawTextureChains_Water (); //johnfitz -- drawn here since they might have transparency + + R_DrawEntitiesOnList (true); //johnfitz -- true means this is the pass for alpha entities + + R_RenderDlights (); //triangle fan dlights -- johnfitz -- moved after water + + R_DrawParticles (); + + Fog_DisableGFog (); //johnfitz + + R_DrawViewModel (); //johnfitz -- moved here from R_RenderView + + R_ShowTris (); //johnfitz + + R_ShowBoundingBoxes (); //johnfitz + +#ifdef GLTEST + Test_Draw (); +#endif +} + +/* +================ +R_RenderView +================ +*/ +void R_RenderView (void) +{ + double time1, time2; + + if (r_norefresh.value) + return; + + if (!cl.worldmodel) + Sys_Error ("R_RenderView: NULL worldmodel"); + + if (r_speeds.value) + { + glFinish (); + time1 = Sys_FloatTime (); + + //johnfitz -- rendering statistics + rs_brushpolys = rs_aliaspolys = rs_skypolys = rs_particles = rs_fogpolys = rs_megatexels = + rs_dynamiclightmaps = rs_aliaspasses = rs_skypasses = rs_brushpasses = 0; + } + else if (gl_finish.value) + glFinish (); + + R_SetupView (); //johnfitz -- this does everything that should be done once per frame + + //johnfitz -- stereo rendering -- full of hacky goodness + if (r_stereo.value) + { + float eyesep = CLAMP(-8.0f, r_stereo.value, 8.0f); + float fdepth = CLAMP(32.0f, r_stereodepth.value, 1024.0f); + + AngleVectors (r_refdef.viewangles, vpn, vright, vup); + + //render left eye (red) + glColorMask(1, 0, 0, 1); + VectorMA (r_refdef.vieworg, -0.5f * eyesep, vright, r_refdef.vieworg); + frustum_skew = 0.5 * eyesep * NEARCLIP / fdepth; + srand((int) (cl.time * 1000)); //sync random stuff between eyes + + R_RenderScene (); + + //render right eye (cyan) + glClear (GL_DEPTH_BUFFER_BIT); + glColorMask(0, 1, 1, 1); + VectorMA (r_refdef.vieworg, 1.0f * eyesep, vright, r_refdef.vieworg); + frustum_skew = -frustum_skew; + srand((int) (cl.time * 1000)); //sync random stuff between eyes + + R_RenderScene (); + + //restore + glColorMask(1, 1, 1, 1); + VectorMA (r_refdef.vieworg, -0.5f * eyesep, vright, r_refdef.vieworg); + frustum_skew = 0.0f; + } + else + { + R_RenderScene (); + } + //johnfitz + + //johnfitz -- modified r_speeds output + time2 = Sys_FloatTime (); + if (r_speeds.value == 2) + Con_Printf ("%3i ms %4i/%4i wpoly %4i/%4i epoly %3i lmap %4i/%4i sky %1.1f mtex\n", + (int)((time2-time1)*1000), + rs_brushpolys, + rs_brushpasses, + rs_aliaspolys, + rs_aliaspasses, + rs_dynamiclightmaps, + rs_skypolys, + rs_skypasses, + TexMgr_FrameUsage ()); + else if (r_speeds.value) + Con_Printf ("%3i ms %4i wpoly %4i epoly %3i lmap\n", + (int)((time2-time1)*1000), + rs_brushpolys, + rs_aliaspolys, + rs_dynamiclightmaps); + //johnfitz +} + diff --git a/quakespasm/Quake/gl_rmisc.c b/quakespasm/Quake/gl_rmisc.c new file mode 100644 index 00000000..4e253947 --- /dev/null +++ b/quakespasm/Quake/gl_rmisc.c @@ -0,0 +1,405 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// r_misc.c + +#include "quakedef.h" + +//johnfitz -- new cvars +extern cvar_t r_stereo; +extern cvar_t r_stereodepth; +extern cvar_t r_clearcolor; +extern cvar_t r_drawflat; +extern cvar_t r_flatlightstyles; +extern cvar_t gl_fullbrights; +extern cvar_t gl_farclip; +extern cvar_t gl_overbright; +extern cvar_t gl_overbright_models; +extern cvar_t r_waterquality; +extern cvar_t r_oldwater; +extern cvar_t r_waterwarp; +extern cvar_t r_oldskyleaf; +extern cvar_t r_drawworld; +extern cvar_t r_showtris; +extern cvar_t r_showbboxes; +extern cvar_t r_lerpmodels; +extern cvar_t r_lerpmove; +extern cvar_t r_nolerp_list; +//johnfitz + +extern float load_subdivide_size; //johnfitz -- remember what subdivide_size value was when this map was loaded + +extern cvar_t gl_subdivide_size; //johnfitz -- moved here from gl_model.c + +extern gltexture_t *playertextures[MAX_SCOREBOARD]; //johnfitz + +void R_NoLerpList_f (void); //johnfitz + +/* +==================== +GL_Overbright_f -- johnfitz +==================== +*/ +void GL_Overbright_f (void) +{ + R_RebuildAllLightmaps (); +} + +/* +==================== +GL_Fullbrights_f -- johnfitz +==================== +*/ +void GL_Fullbrights_f (void) +{ + TexMgr_ReloadNobrightImages (); +} + +/* +==================== +R_SetClearColor_f -- johnfitz +==================== +*/ +void R_SetClearColor_f (void) +{ + byte *rgb; + int s; + + s = (int)r_clearcolor.value & 0xFF; + rgb = (byte*)(d_8to24table + s); + glClearColor (rgb[0]/255.0,rgb[1]/255.0,rgb[2]/255.0,0); +} + +/* +==================== +R_Novis_f -- johnfitz +==================== +*/ +void R_Novis_f (void) +{ + extern int vis_changed; + vis_changed = 1; +} + +/* +==================== +R_OldSkyLeaf_f -- johnfitz +==================== +*/ +void R_OldSkyLeaf_f (void) +{ + extern int vis_changed; + vis_changed = 1; +} + +/* +=============== +R_Envmap_f + +Grab six views for environment mapping tests +=============== +*/ +void R_Envmap_f (void) +{ + byte buffer[256*256*4]; + // char name[1024]; unused -- kristian + + glDrawBuffer (GL_FRONT); + glReadBuffer (GL_FRONT); + envmap = true; + + r_refdef.vrect.x = 0; + r_refdef.vrect.y = 0; + r_refdef.vrect.width = 256; + r_refdef.vrect.height = 256; + + r_refdef.viewangles[0] = 0; + r_refdef.viewangles[1] = 0; + r_refdef.viewangles[2] = 0; + GL_BeginRendering (&glx, &gly, &glwidth, &glheight); + R_RenderView (); + glReadPixels (0, 0, 256, 256, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + COM_WriteFile ("env0.rgb", buffer, sizeof(buffer)); + + r_refdef.viewangles[1] = 90; + GL_BeginRendering (&glx, &gly, &glwidth, &glheight); + R_RenderView (); + glReadPixels (0, 0, 256, 256, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + COM_WriteFile ("env1.rgb", buffer, sizeof(buffer)); + + r_refdef.viewangles[1] = 180; + GL_BeginRendering (&glx, &gly, &glwidth, &glheight); + R_RenderView (); + glReadPixels (0, 0, 256, 256, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + COM_WriteFile ("env2.rgb", buffer, sizeof(buffer)); + + r_refdef.viewangles[1] = 270; + GL_BeginRendering (&glx, &gly, &glwidth, &glheight); + R_RenderView (); + glReadPixels (0, 0, 256, 256, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + COM_WriteFile ("env3.rgb", buffer, sizeof(buffer)); + + r_refdef.viewangles[0] = -90; + r_refdef.viewangles[1] = 0; + GL_BeginRendering (&glx, &gly, &glwidth, &glheight); + R_RenderView (); + glReadPixels (0, 0, 256, 256, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + COM_WriteFile ("env4.rgb", buffer, sizeof(buffer)); + + r_refdef.viewangles[0] = 90; + r_refdef.viewangles[1] = 0; + GL_BeginRendering (&glx, &gly, &glwidth, &glheight); + R_RenderView (); + glReadPixels (0, 0, 256, 256, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + COM_WriteFile ("env5.rgb", buffer, sizeof(buffer)); + + envmap = false; + glDrawBuffer (GL_BACK); + glReadBuffer (GL_BACK); + GL_EndRendering (); +} + +/* +=============== +R_Init +=============== +*/ +void R_Init (void) +{ + // extern byte *hunk_base; unused -- kristian + extern cvar_t gl_finish; + + Cmd_AddCommand ("timerefresh", R_TimeRefresh_f); + Cmd_AddCommand ("envmap", R_Envmap_f); + Cmd_AddCommand ("pointfile", R_ReadPointFile_f); + + Cvar_RegisterVariable (&r_norefresh, NULL); + Cvar_RegisterVariable (&r_lightmap, NULL); + Cvar_RegisterVariable (&r_fullbright, NULL); + Cvar_RegisterVariable (&r_drawentities, NULL); + Cvar_RegisterVariable (&r_drawviewmodel, NULL); + Cvar_RegisterVariable (&r_shadows, NULL); + Cvar_RegisterVariable (&r_wateralpha, NULL); + Cvar_RegisterVariable (&r_dynamic, NULL); + Cvar_RegisterVariable (&r_novis, R_Novis_f); + Cvar_RegisterVariable (&r_speeds, NULL); + + Cvar_RegisterVariable (&gl_finish, NULL); + Cvar_RegisterVariable (&gl_clear, NULL); + Cvar_RegisterVariable (&gl_cull, NULL); + Cvar_RegisterVariable (&gl_smoothmodels, NULL); + Cvar_RegisterVariable (&gl_affinemodels, NULL); + Cvar_RegisterVariable (&gl_polyblend, NULL); + Cvar_RegisterVariable (&gl_flashblend, NULL); + Cvar_RegisterVariable (&gl_playermip, NULL); + Cvar_RegisterVariable (&gl_nocolors, NULL); + + //johnfitz -- new cvars + Cvar_RegisterVariable (&r_stereo, NULL); + Cvar_RegisterVariable (&r_stereodepth, NULL); + Cvar_RegisterVariable (&r_clearcolor, R_SetClearColor_f); + Cvar_RegisterVariable (&r_waterquality, NULL); + Cvar_RegisterVariable (&r_oldwater, NULL); + Cvar_RegisterVariable (&r_waterwarp, NULL); + Cvar_RegisterVariable (&r_drawflat, NULL); + Cvar_RegisterVariable (&r_flatlightstyles, NULL); + Cvar_RegisterVariable (&r_oldskyleaf, R_OldSkyLeaf_f); + Cvar_RegisterVariable (&r_drawworld, NULL); + Cvar_RegisterVariable (&r_showtris, NULL); + Cvar_RegisterVariable (&r_showbboxes, NULL); + Cvar_RegisterVariable (&gl_farclip, NULL); + Cvar_RegisterVariable (&gl_fullbrights, GL_Fullbrights_f); + Cvar_RegisterVariable (&gl_overbright, GL_Overbright_f); + Cvar_RegisterVariable (&gl_overbright_models, NULL); + Cvar_RegisterVariable (&r_lerpmodels, NULL); + Cvar_RegisterVariable (&r_lerpmove, NULL); + Cvar_RegisterVariable (&r_nolerp_list, R_NoLerpList_f); + //johnfitz + + Cvar_RegisterVariable (&gl_subdivide_size, NULL); //johnfitz -- moved here from gl_model.c + + R_InitParticles (); + R_SetClearColor_f (); //johnfitz + + Sky_Init (); //johnfitz + Fog_Init (); //johnfitz + +#ifdef GLTEST + Test_Init (); +#endif +} + +/* +=============== +R_NoLerpList_f -- johnfitz -- called when r_nolerp_list cvar changes +=============== +*/ +void R_NoLerpList_f (void) +{ + int i; + + for (i=0; i < MAX_MODELS; i++) + Mod_SetExtraFlags (cl.model_precache[i]); +} + +/* +=============== +R_TranslatePlayerSkin -- johnfitz -- rewritten. also, only handles new colors, not new skins +=============== +*/ +void R_TranslatePlayerSkin (int playernum) +{ + int top, bottom; + + top = (cl.scores[playernum].colors & 0xf0)>>4; + bottom = cl.scores[playernum].colors &15; + + //FIXME: if gl_nocolors is on, then turned off, the textures may be out of sync with the scoreboard colors. + if (!gl_nocolors.value) + if (playertextures[playernum]) + TexMgr_ReloadImage (playertextures[playernum], top, bottom); +} + +/* +=============== +R_TranslateNewPlayerSkin -- johnfitz -- split off of TranslatePlayerSkin -- this is called when +the skin or model actually changes, instead of just new colors +added bug fix from bengt jardup +=============== +*/ +void R_TranslateNewPlayerSkin (int playernum) +{ + char name[64]; + byte *pixels; + aliashdr_t *paliashdr; + int skinnum; + +//get correct texture pixels + currententity = &cl_entities[1+playernum]; + + if (!currententity->model || currententity->model->type != mod_alias) + return; + + paliashdr = (aliashdr_t *)Mod_Extradata (currententity->model); + + skinnum = currententity->skinnum; + + //TODO: move these tests to the place where skinnum gets received from the server + if (skinnum < 0 || skinnum >= paliashdr->numskins) + { + Con_DPrintf("(%d): Invalid player skin #%d\n", playernum, skinnum); + skinnum = 0; + } + + pixels = (byte *)paliashdr + paliashdr->texels[skinnum]; // This is not a persistent place! + +//upload new image + sprintf(name, "player_%i", playernum); + playertextures[playernum] = TexMgr_LoadImage (currententity->model, name, paliashdr->skinwidth, paliashdr->skinheight, + SRC_INDEXED, pixels, paliashdr->gltextures[skinnum][0]->source_file, paliashdr->gltextures[skinnum][0]->source_offset, TEXPREF_PAD | TEXPREF_OVERWRITE); + +//now recolor it + R_TranslatePlayerSkin (playernum); +} + +/* +=============== +R_NewGame -- johnfitz -- handle a game switch +=============== +*/ +void R_NewGame (void) +{ + int i; + + //clear playertexture pointers (the textures themselves were freed by texmgr_newgame) + for (i=0; inumleafs ; i++) + cl.worldmodel->leafs[i].efrags = NULL; + + r_viewleaf = NULL; + R_ClearParticles (); + + GL_BuildLightmaps (); + + r_framecount = 0; //johnfitz -- paranoid? + r_visframecount = 0; //johnfitz -- paranoid? + + Sky_NewMap (); //johnfitz -- skybox in worldspawn + Fog_NewMap (); //johnfitz -- global fog in worldspawn + + load_subdivide_size = gl_subdivide_size.value; //johnfitz -- is this the right place to set this? +} + +/* +==================== +R_TimeRefresh_f + +For program optimization +==================== +*/ +void R_TimeRefresh_f (void) +{ + int i; + float start, stop, time; + /* unused -- kristian + int startangle; + vrect_t vr; + */ + + glDrawBuffer (GL_FRONT); + glFinish (); + + start = Sys_FloatTime (); + for (i=0 ; i<128 ; i++) + { + r_refdef.viewangles[1] = i/128.0*360.0; + R_RenderView (); + } + + glFinish (); + stop = Sys_FloatTime (); + time = stop-start; + Con_Printf ("%f seconds (%f fps)\n", time, 128/time); + + glDrawBuffer (GL_BACK); + GL_EndRendering (); +} + +void D_FlushCaches (void) +{ +} diff --git a/quakespasm/Quake/gl_screen.c b/quakespasm/Quake/gl_screen.c new file mode 100644 index 00000000..63700f0f --- /dev/null +++ b/quakespasm/Quake/gl_screen.c @@ -0,0 +1,1071 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ + +// screen.c -- master for refresh, status bar, console, chat, notify, etc + +#include "quakedef.h" + +/* + +background clear +rendering +turtle/net/ram icons +sbar +centerprint / slow centerprint +notify lines +intermission / finale overlay +loading plaque +console +menu + +required background clears +required update regions + + +syncronous draw mode or async +One off screen buffer, with updates either copied or xblited +Need to double buffer? + + +async draw will require the refresh area to be cleared, because it will be +xblited, but sync draw can just ignore it. + +sync +draw + +CenterPrint () +SlowPrint () +Screen_Update (); +Con_Printf (); + +net +turn off messages option + +the refresh is allways rendered, unless the console is full screen + + +console is: + notify lines + half + full + + +*/ + + +int glx, gly, glwidth, glheight; + +float scr_con_current; +float scr_conlines; // lines of console to display + +float oldscreensize, oldfov, oldsbarscale, oldsbaralpha; //johnfitz -- added oldsbarscale and oldsbaralpha + +//johnfitz -- new cvars +cvar_t scr_menuscale = {"scr_menuscale", "1", true}; +cvar_t scr_sbarscale = {"scr_sbarscale", "1", true}; +cvar_t scr_sbaralpha = {"scr_sbaralpha", "1", true}; +cvar_t scr_conwidth = {"scr_conwidth", "0", true}; +cvar_t scr_conscale = {"scr_conscale", "1", true}; +cvar_t scr_crosshaircale = {"scr_crosshaircale", "1", true}; +cvar_t scr_showfps = {"scr_showfps", "0"}; +cvar_t scr_clock = {"scr_clock", "0"}; +//johnfitz + +cvar_t scr_viewsize = {"viewsize","100", true}; +cvar_t scr_fov = {"fov","90"}; // 10 - 170 +cvar_t scr_conspeed = {"scr_conspeed","300"}; +cvar_t scr_centertime = {"scr_centertime","2"}; +cvar_t scr_showram = {"showram","1"}; +cvar_t scr_showturtle = {"showturtle","0"}; +cvar_t scr_showpause = {"showpause","1"}; +cvar_t scr_printspeed = {"scr_printspeed","8"}; +cvar_t gl_triplebuffer = {"gl_triplebuffer", "1", true }; + +extern cvar_t crosshair; + +qboolean scr_initialized; // ready to draw + +qpic_t *scr_ram; +qpic_t *scr_net; +qpic_t *scr_turtle; + +int clearconsole; +int clearnotify; + +int sb_lines; + +viddef_t vid; // global video state + +vrect_t scr_vrect; + +qboolean scr_disabled_for_loading; +qboolean scr_drawloading; +float scr_disabled_time; + +qboolean block_drawing; + +int scr_tileclear_updates = 0; //johnfitz + +void SCR_ScreenShot_f (void); + +/* +=============================================================================== + +CENTER PRINTING + +=============================================================================== +*/ + +char scr_centerstring[1024]; +float scr_centertime_start; // for slow victory printing +float scr_centertime_off; +int scr_center_lines; +int scr_erase_lines; +int scr_erase_center; + +/* +============== +SCR_CenterPrint + +Called for important messages that should stay in the center of the screen +for a few moments +============== +*/ +void SCR_CenterPrint (char *str) //update centerprint data +{ + strncpy (scr_centerstring, str, sizeof(scr_centerstring)-1); + scr_centertime_off = scr_centertime.value; + scr_centertime_start = cl.time; + +// count the number of lines for centering + scr_center_lines = 1; + while (*str) + { + if (*str == '\n') + scr_center_lines++; + str++; + } +} + +void SCR_DrawCenterString (void) //actually do the drawing +{ + char *start; + int l; + int j; + int x, y; + int remaining; + + GL_SetCanvas (CANVAS_MENU); //johnfitz + +// the finale prints the characters one at a time + if (cl.intermission) + remaining = scr_printspeed.value * (cl.time - scr_centertime_start); + else + remaining = 9999; + + scr_erase_center = 0; + start = scr_centerstring; + + if (scr_center_lines <= 4) + y = 200*0.35; //johnfitz -- 320x200 coordinate system + else + y = 48; + + do + { + // scan the width of the line + for (l=0 ; l<40 ; l++) + if (start[l] == '\n' || !start[l]) + break; + x = (320 - l*8)/2; //johnfitz -- 320x200 coordinate system + for (j=0 ; j scr_erase_lines) + scr_erase_lines = scr_center_lines; + + scr_centertime_off -= host_frametime; + + if (scr_centertime_off <= 0 && !cl.intermission) + return; + if (key_dest != key_game) + return; + if (cl.paused) //johnfitz -- don't show centerprint during a pause + return; + + SCR_DrawCenterString (); +} + +//============================================================================= + +/* +==================== +CalcFovy +==================== +*/ +float CalcFovy (float fov_x, float width, float height) +{ + float a, x; + + if (fov_x < 1 || fov_x > 179) + Sys_Error ("Bad fov: %f", fov_x); + + x = width/tan(fov_x/360*M_PI); + a = atan (height/x); + a = a*360/M_PI; + return a; +} + +/* +================= +SCR_CalcRefdef + +Must be called whenever vid changes +Internal use only +================= +*/ +static void SCR_CalcRefdef (void) +{ + float size, scale; //johnfitz -- scale + /* unused -- kristian + vrect_t vrect; + int h; + */ + vid.recalc_refdef = 0; + +// force the status bar to redraw + Sbar_Changed (); + + scr_tileclear_updates = 0; //johnfitz + +// bound viewsize + if (scr_viewsize.value < 30) + Cvar_Set ("viewsize","30"); + if (scr_viewsize.value > 120) + Cvar_Set ("viewsize","120"); + +// bound fov + if (scr_fov.value < 10) + Cvar_Set ("fov","10"); + if (scr_fov.value > 170) + Cvar_Set ("fov","170"); + + //johnfitz -- rewrote this section + size = scr_viewsize.value; + scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); + + if (size >= 120 || cl.intermission || scr_sbaralpha.value < 1) //johnfitz -- scr_sbaralpha.value + sb_lines = 0; + else if (size >= 110) + sb_lines = 24 * scale; + else + sb_lines = 48 * scale; + + size = fmin(scr_viewsize.value, 100) / 100; + //johnfitz + + //johnfitz -- rewrote this section + r_refdef.vrect.width = fmax(glwidth * size, 96); //no smaller than 96, for icons + r_refdef.vrect.height = fmin(glheight * size, glheight - sb_lines); //make room for sbar + r_refdef.vrect.x = (glwidth - r_refdef.vrect.width)/2; + r_refdef.vrect.y = (glheight - sb_lines - r_refdef.vrect.height)/2; + //johnfitz + + r_refdef.fov_x = scr_fov.value; + r_refdef.fov_y = CalcFovy (r_refdef.fov_x, r_refdef.vrect.width, r_refdef.vrect.height); + + scr_vrect = r_refdef.vrect; +} + + +/* +================= +SCR_SizeUp_f + +Keybinding command +================= +*/ +void SCR_SizeUp_f (void) +{ + Cvar_SetValue ("viewsize",scr_viewsize.value+10); + vid.recalc_refdef = 1; +} + + +/* +================= +SCR_SizeDown_f + +Keybinding command +================= +*/ +void SCR_SizeDown_f (void) +{ + Cvar_SetValue ("viewsize",scr_viewsize.value-10); + vid.recalc_refdef = 1; +} + +/* +================== +SCR_Conwidth_f -- johnfitz -- called when scr_conwidth or scr_conscale changes +================== +*/ +void SCR_Conwidth_f (void) +{ + vid.conwidth = (scr_conwidth.value > 0) ? (int)scr_conwidth.value : (scr_conscale.value > 0) ? (int)(vid.width/scr_conscale.value) : vid.width; + vid.conwidth = CLAMP (320, vid.conwidth, vid.width); + vid.conwidth &= 0xFFFFFFF8; + vid.conheight = vid.conwidth * vid.height / vid.width; +} + +//============================================================================ + +/* +================== +SCR_LoadPics -- johnfitz +================== +*/ +void SCR_LoadPics (void) +{ + scr_ram = Draw_PicFromWad ("ram"); + scr_net = Draw_PicFromWad ("net"); + scr_turtle = Draw_PicFromWad ("turtle"); +} +/* +================== +SCR_Init +================== +*/ +void SCR_Init (void) +{ + //johnfitz -- new cvars + Cvar_RegisterVariable (&scr_menuscale, NULL); + Cvar_RegisterVariable (&scr_sbarscale, NULL); + Cvar_RegisterVariable (&scr_sbaralpha, NULL); + Cvar_RegisterVariable (&scr_conwidth, &SCR_Conwidth_f); + Cvar_RegisterVariable (&scr_conscale, &SCR_Conwidth_f); + Cvar_RegisterVariable (&scr_crosshaircale, NULL); + Cvar_RegisterVariable (&scr_showfps, NULL); + Cvar_RegisterVariable (&scr_clock, NULL); + //johnfitz + + Cvar_RegisterVariable (&scr_fov, NULL); + Cvar_RegisterVariable (&scr_viewsize, NULL); + Cvar_RegisterVariable (&scr_conspeed, NULL); + Cvar_RegisterVariable (&scr_showram, NULL); + Cvar_RegisterVariable (&scr_showturtle, NULL); + Cvar_RegisterVariable (&scr_showpause, NULL); + Cvar_RegisterVariable (&scr_centertime, NULL); + Cvar_RegisterVariable (&scr_printspeed, NULL); + Cvar_RegisterVariable (&gl_triplebuffer, NULL); + + Cmd_AddCommand ("screenshot",SCR_ScreenShot_f); + Cmd_AddCommand ("sizeup",SCR_SizeUp_f); + Cmd_AddCommand ("sizedown",SCR_SizeDown_f); + + SCR_LoadPics (); //johnfitz + + scr_initialized = true; +} + +//============================================================================ + +/* +============== +SCR_DrawFPS -- johnfitz +============== +*/ +void SCR_DrawFPS (void) +{ + static double oldtime = 0, fps = 0; + static int oldframecount = 0; + double time; + char str[12]; + int x, y, frames; + + time = realtime - oldtime; + frames = r_framecount - oldframecount; + + if (time < 0 || frames < 0) + { + oldtime = realtime; + oldframecount = r_framecount; + return; + } + + if (time > 0.75) //update value every 3/4 second + { + fps = frames / time; + oldtime = realtime; + oldframecount = r_framecount; + } + + if (scr_showfps.value) //draw it + { + sprintf (str, "%4.0f fps", fps); + x = 320 - (strlen(str)<<3); + y = 200 - 8; + if (scr_clock.value) y -= 8; //make room for clock + GL_SetCanvas (CANVAS_BOTTOMRIGHT); + Draw_String (x, y, str); + scr_tileclear_updates = 0; + } + +} + +/* +============== +SCR_DrawClock -- johnfitz +============== +*/ +void SCR_DrawClock (void) +{ + char str[9]; + + if (scr_clock.value == 1) + { + int minutes, seconds; + + minutes = cl.time / 60; + seconds = ((int)cl.time)%60; + + sprintf (str,"%i:%i%i", minutes, seconds/10, seconds%10); + } + else + return; + + //draw it + GL_SetCanvas (CANVAS_BOTTOMRIGHT); + Draw_String (320 - (strlen(str)<<3), 200 - 8, str); + + scr_tileclear_updates = 0; +} + +/* +============== +SCR_DrawDevStats +============== +*/ +void SCR_DrawDevStats (void) +{ + char str[40]; + int y = 25-9; //9=number of lines to print + int x = 0; //margin + + if (!devstats.value) + return; + + GL_SetCanvas (CANVAS_BOTTOMLEFT); + + Draw_Fill (x, y*8, 19*8, 9*8, 0, 0.5); //dark rectangle + + sprintf (str, "devstats |Curr Peak"); + Draw_String (x, (y++)*8-x, str); + + sprintf (str, "---------+---------"); + Draw_String (x, (y++)*8-x, str); + + sprintf (str, "Edicts |%4i %4i", dev_stats.edicts, dev_peakstats.edicts); + Draw_String (x, (y++)*8-x, str); + + sprintf (str, "Packet |%4i %4i", dev_stats.packetsize, dev_peakstats.packetsize); + Draw_String (x, (y++)*8-x, str); + + sprintf (str, "Visedicts|%4i %4i", dev_stats.visedicts, dev_peakstats.visedicts); + Draw_String (x, (y++)*8-x, str); + + sprintf (str, "Efrags |%4i %4i", dev_stats.efrags, dev_peakstats.efrags); + Draw_String (x, (y++)*8-x, str); + + sprintf (str, "Dlights |%4i %4i", dev_stats.dlights, dev_peakstats.dlights); + Draw_String (x, (y++)*8-x, str); + + sprintf (str, "Beams |%4i %4i", dev_stats.beams, dev_peakstats.beams); + Draw_String (x, (y++)*8-x, str); + + sprintf (str, "Tempents |%4i %4i", dev_stats.tempents, dev_peakstats.tempents); + Draw_String (x, (y++)*8-x, str); +} + +/* +============== +SCR_DrawRam +============== +*/ +void SCR_DrawRam (void) +{ + if (!scr_showram.value) + return; + + if (!r_cache_thrash) + return; + + GL_SetCanvas (CANVAS_DEFAULT); //johnfitz + + Draw_Pic (scr_vrect.x+32, scr_vrect.y, scr_ram); +} + +/* +============== +SCR_DrawTurtle +============== +*/ +void SCR_DrawTurtle (void) +{ + static int count; + + if (!scr_showturtle.value) + return; + + if (host_frametime < 0.1) + { + count = 0; + return; + } + + count++; + if (count < 3) + return; + + GL_SetCanvas (CANVAS_DEFAULT); //johnfitz + + Draw_Pic (scr_vrect.x, scr_vrect.y, scr_turtle); +} + +/* +============== +SCR_DrawNet +============== +*/ +void SCR_DrawNet (void) +{ + if (realtime - cl.last_received_message < 0.3) + return; + if (cls.demoplayback) + return; + + GL_SetCanvas (CANVAS_DEFAULT); //johnfitz + + Draw_Pic (scr_vrect.x+64, scr_vrect.y, scr_net); +} + +/* +============== +DrawPause +============== +*/ +void SCR_DrawPause (void) +{ + qpic_t *pic; + + if (!cl.paused) + return; + + if (!scr_showpause.value) // turn off for screenshots + return; + + GL_SetCanvas (CANVAS_MENU); //johnfitz + + pic = Draw_CachePic ("gfx/pause.lmp"); + Draw_Pic ( (320 - pic->width)/2, (240 - 48 - pic->height)/2, pic); //johnfitz -- stretched menus + + scr_tileclear_updates = 0; //johnfitz +} + +/* +============== +SCR_DrawLoading +============== +*/ +void SCR_DrawLoading (void) +{ + qpic_t *pic; + + if (!scr_drawloading) + return; + + GL_SetCanvas (CANVAS_MENU); //johnfitz + + pic = Draw_CachePic ("gfx/loading.lmp"); + Draw_Pic ( (320 - pic->width)/2, (240 - 48 - pic->height)/2, pic); //johnfitz -- stretched menus + + scr_tileclear_updates = 0; //johnfitz +} + +/* +============== +SCR_DrawCrosshair -- johnfitz +============== +*/ +void SCR_DrawCrosshair (void) +{ + if (!crosshair.value) + return; + + GL_SetCanvas (CANVAS_CROSSHAIR); + Draw_Character (-4, -4, '+'); //0,0 is center of viewport +} + + + +//============================================================================= + + +/* +================== +SCR_SetUpToDrawConsole +================== +*/ +void SCR_SetUpToDrawConsole (void) +{ + //johnfitz -- let's hack away the problem of slow console when host_timescale is <0 + extern cvar_t host_timescale; + float timescale; + //johnfitz + + Con_CheckResize (); + + if (scr_drawloading) + return; // never a console with loading plaque + +// decide on the height of the console + con_forcedup = !cl.worldmodel || cls.signon != SIGNONS; + + if (con_forcedup) + { + scr_conlines = glheight; //full screen //johnfitz -- glheight instead of vid.height + scr_con_current = scr_conlines; + } + else if (key_dest == key_console) + scr_conlines = glheight/2; //half screen //johnfitz -- glheight instead of vid.height + else + scr_conlines = 0; //none visible + + timescale = (host_timescale.value > 0) ? host_timescale.value : 1; //johnfitz -- timescale + + if (scr_conlines < scr_con_current) + { + scr_con_current -= scr_conspeed.value*host_frametime/timescale; //johnfitz -- timescale + if (scr_conlines > scr_con_current) + scr_con_current = scr_conlines; + + } + else if (scr_conlines > scr_con_current) + { + scr_con_current += scr_conspeed.value*host_frametime/timescale; //johnfitz -- timescale + if (scr_conlines < scr_con_current) + scr_con_current = scr_conlines; + } + + if (clearconsole++ < vid.numpages) + Sbar_Changed (); + + if (!con_forcedup && scr_con_current) + scr_tileclear_updates = 0; //johnfitz +} + +/* +================== +SCR_DrawConsole +================== +*/ +void SCR_DrawConsole (void) +{ + if (scr_con_current) + { + Con_DrawConsole (scr_con_current, true); + clearconsole = 0; + } + else + { + if (key_dest == key_game || key_dest == key_message) + Con_DrawNotify (); // only draw notify in game + } +} + + +/* +============================================================================== + + SCREEN SHOTS + +============================================================================== +*/ + +/* +================== +SCR_ScreenShot_f -- johnfitz -- rewritten to use Image_WriteTGA +================== +*/ +void SCR_ScreenShot_f (void) +{ + byte *buffer; + char tganame[16]; //johnfitz -- was [80] + char checkname[MAX_OSPATH]; + int i; + +// find a file name to save it to + for (i=0; i<10000; i++) + { + sprintf (tganame, "fitz%04i.tga", i); + sprintf (checkname, "%s/%s", com_gamedir, tganame); + if (Sys_FileTime(checkname) == -1) + break; // file doesn't exist + } + if (i == 10000) + { + Con_Printf ("SCR_ScreenShot_f: Couldn't find an unused filename\n"); + return; + } + +//get data + buffer = malloc(glwidth*glheight*3); + glReadPixels (glx, gly, glwidth, glheight, GL_RGB, GL_UNSIGNED_BYTE, buffer); + +// now write the file + if (Image_WriteTGA (tganame, buffer, glwidth, glheight, 24, false)) + Con_Printf ("Wrote %s\n", tganame); + else + Con_Printf ("SCR_ScreenShot_f: Couldn't create a TGA file\n"); + + free (buffer); +} + + +//============================================================================= + + +/* +=============== +SCR_BeginLoadingPlaque + +================ +*/ +void SCR_BeginLoadingPlaque (void) +{ + S_StopAllSounds (true); + + if (cls.state != ca_connected) + return; + if (cls.signon != SIGNONS) + return; + +// redraw with no console and the loading plaque + Con_ClearNotify (); + scr_centertime_off = 0; + scr_con_current = 0; + + scr_drawloading = true; + Sbar_Changed (); + SCR_UpdateScreen (); + scr_drawloading = false; + + scr_disabled_for_loading = true; + scr_disabled_time = realtime; +} + +/* +=============== +SCR_EndLoadingPlaque + +================ +*/ +void SCR_EndLoadingPlaque (void) +{ + scr_disabled_for_loading = false; + Con_ClearNotify (); +} + +//============================================================================= + +char *scr_notifystring; +qboolean scr_drawdialog; + +void SCR_DrawNotifyString (void) +{ + char *start; + int l; + int j; + int x, y; + + GL_SetCanvas (CANVAS_MENU); //johnfitz + + start = scr_notifystring; + + y = 200 * 0.35; //johnfitz -- stretched overlays + + do + { + // scan the width of the line + for (l=0 ; l<40 ; l++) + if (start[l] == '\n' || !start[l]) + break; + x = (320 - l*8)/2; //johnfitz -- stretched overlays + for (j=0 ; j time1) + return false; + //johnfitz + + return key_lastpress == 'y'; +} + + +//============================================================================= + +//johnfitz -- deleted SCR_BringDownConsole + + +/* +================== +SCR_TileClear -- johnfitz -- modified to use glwidth/glheight instead of vid.width/vid.height + also fixed the dimentions of right and top panels + also added scr_tileclear_updates +================== +*/ +void SCR_TileClear (void) +{ + if (scr_tileclear_updates >= vid.numpages && !gl_clear.value && !isIntelVideo) //intel video workarounds from Baker + return; + scr_tileclear_updates++; + + if (r_refdef.vrect.x > 0) + { + // left + Draw_TileClear (0, + 0, + r_refdef.vrect.x, + glheight - sb_lines); + // right + Draw_TileClear (r_refdef.vrect.x + r_refdef.vrect.width, + 0, + glwidth - r_refdef.vrect.x - r_refdef.vrect.width, + glheight - sb_lines); + } + + if (r_refdef.vrect.y > 0) + { + // top + Draw_TileClear (r_refdef.vrect.x, + 0, + r_refdef.vrect.width, + r_refdef.vrect.y); + // bottom + Draw_TileClear (r_refdef.vrect.x, + r_refdef.vrect.y + r_refdef.vrect.height, + r_refdef.vrect.width, + glheight - r_refdef.vrect.y - r_refdef.vrect.height - sb_lines); + } +} + +/* +================== +SCR_UpdateScreen + +This is called every frame, and can also be called explicitly to flush +text to the screen. + +WARNING: be very careful calling this from elsewhere, because the refresh +needs almost the entire 256k of stack space! +================== +*/ +void SCR_UpdateScreen (void) +{ + // vrect_t vrect; unused -- kristian + + if (block_drawing) + return; + + vid.numpages = 2 + (gl_triplebuffer.value ? 1 : 0); //johnfitz -- in case gl_triplebuffer is not 0 or 1 + + if (scr_disabled_for_loading) + { + if (realtime - scr_disabled_time > 60) + { + scr_disabled_for_loading = false; + Con_Printf ("load failed.\n"); + } + else + return; + } + + if (!scr_initialized || !con_initialized) + return; // not initialized yet + + + GL_BeginRendering (&glx, &gly, &glwidth, &glheight); + + // + // determine size of refresh window + // + + if (oldfov != scr_fov.value) + { + oldfov = scr_fov.value; + vid.recalc_refdef = true; + } + + if (oldscreensize != scr_viewsize.value) + { + oldscreensize = scr_viewsize.value; + vid.recalc_refdef = true; + } + + //johnfitz -- added oldsbarscale and oldsbaralpha + if (oldsbarscale != scr_sbarscale.value) + { + oldsbarscale = scr_sbarscale.value; + vid.recalc_refdef = true; + } + + if (oldsbaralpha != scr_sbaralpha.value) + { + oldsbaralpha = scr_sbaralpha.value; + vid.recalc_refdef = true; + } + //johnfitz + + if (vid.recalc_refdef) + SCR_CalcRefdef (); + +// +// do 3D refresh drawing, and then update the screen +// + SCR_SetUpToDrawConsole (); + + V_RenderView (); + + GL_Set2D (); + + //FIXME: only call this when needed + SCR_TileClear (); + + if (scr_drawdialog) //new game confirm + { + Sbar_Draw (); + Draw_FadeScreen (); + SCR_DrawNotifyString (); + } + else if (scr_drawloading) //loading + { + SCR_DrawLoading (); + Sbar_Draw (); + } + else if (cl.intermission == 1 && key_dest == key_game) //end of level + { + Sbar_IntermissionOverlay (); + } + else if (cl.intermission == 2 && key_dest == key_game) //end of episode + { + Sbar_FinaleOverlay (); + SCR_CheckDrawCenterString (); + } + else + { + SCR_DrawCrosshair (); //johnfitz + SCR_DrawRam (); + SCR_DrawNet (); + SCR_DrawTurtle (); + SCR_DrawPause (); + SCR_CheckDrawCenterString (); + Sbar_Draw (); + SCR_DrawDevStats (); //johnfitz + SCR_DrawFPS (); //johnfitz + SCR_DrawClock (); //johnfitz + SCR_DrawConsole (); + M_Draw (); + } + + V_UpdateBlend (); //johnfitz -- V_UpdatePalette cleaned up and renamed + + GL_EndRendering (); +} + diff --git a/quakespasm/Quake/gl_sky.c b/quakespasm/Quake/gl_sky.c new file mode 100644 index 00000000..ce3be049 --- /dev/null +++ b/quakespasm/Quake/gl_sky.c @@ -0,0 +1,1017 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +//gl_sky.c + +#include "quakedef.h" + +#define MAX_CLIP_VERTS 64 + +float Fog_GetDensity(void); +float *Fog_GetColor(void); + +extern model_t *loadmodel; +extern int rs_skypolys; //for r_speeds readout +extern int rs_skypasses; //for r_speeds readout +float skyflatcolor[3]; +float skymins[2][6], skymaxs[2][6]; + +char skybox_name[32] = ""; //name of current skybox, or "" if no skybox + +gltexture_t *skybox_textures[6]; +gltexture_t *solidskytexture, *alphaskytexture; + +extern cvar_t gl_farclip; +cvar_t r_fastsky = {"r_fastsky", "0"}; +cvar_t r_sky_quality = {"r_sky_quality", "12"}; +cvar_t r_skyalpha = {"r_skyalpha", "1"}; +cvar_t r_skyfog = {"r_skyfog","0.5"}; + +int skytexorder[6] = {0,2,1,3,4,5}; //for skybox + +vec3_t skyclip[6] = { + {1,1,0}, + {1,-1,0}, + {0,-1,1}, + {0,1,1}, + {1,0,1}, + {-1,0,1} +}; + +int st_to_vec[6][3] = +{ + {3,-1,2}, + {-3,1,2}, + {1,3,2}, + {-1,-3,2}, + {-2,-1,3}, // straight up + {2,-1,-3} // straight down +}; + +int vec_to_st[6][3] = +{ + {-2,3,1}, + {2,3,-1}, + {1,3,2}, + {-1,3,-2}, + {-2,-1,3}, + {-2,1,-3} +}; + +//============================================================================== +// +// INIT +// +//============================================================================== + +/* +============= +Sky_LoadTexture + +A sky texture is 256*128, with the left side being a masked overlay +============== +*/ +void Sky_LoadTexture (texture_t *mt) +{ + char texturename[64]; + int i, j, p, r, g, b, count; + byte *src; + static byte front_data[128*128]; //FIXME: Hunk_Alloc + static byte back_data[128*128]; //FIXME: Hunk_Alloc + unsigned *rgba; + + src = (byte *)mt + mt->offsets[0]; + +// extract back layer and upload + for (i=0 ; i<128 ; i++) + for (j=0 ; j<128 ; j++) + back_data[(i*128) + j] = src[i*256 + j + 128]; + + sprintf(texturename, "%s:%s_back", loadmodel->name, mt->name); + solidskytexture = TexMgr_LoadImage (loadmodel, texturename, 128, 128, SRC_INDEXED, back_data, "", (unsigned)back_data, TEXPREF_NONE); + +// extract front layer and upload + for (i=0 ; i<128 ; i++) + for (j=0 ; j<128 ; j++) + { + front_data[(i*128) + j] = src[i*256 + j]; + if (front_data[(i*128) + j] == 0) + front_data[(i*128) + j] = 255; + } + + sprintf(texturename, "%s:%s_front", loadmodel->name, mt->name); + alphaskytexture = TexMgr_LoadImage (loadmodel, texturename, 128, 128, SRC_INDEXED, front_data, "", (unsigned)front_data, TEXPREF_ALPHA); + +// calculate r_fastsky color based on average of all opaque foreground colors + r = g = b = count = 0; + for (i=0 ; i<128 ; i++) + for (j=0 ; j<128 ; j++) + { + p = src[i*256 + j]; + if (p != 0) + { + rgba = &d_8to24table[p]; + r += ((byte *)rgba)[0]; + g += ((byte *)rgba)[1]; + b += ((byte *)rgba)[2]; + count++; + } + } + skyflatcolor[0] = (float)r/(count*255); + skyflatcolor[1] = (float)g/(count*255); + skyflatcolor[2] = (float)b/(count*255); +} + +/* +================== +Sky_LoadSkyBox +================== +*/ +char *suf[6] = {"rt", "bk", "lf", "ft", "up", "dn"}; +void Sky_LoadSkyBox (char *name) +{ + int i, mark, width, height; + // FILE *f; unused -- kristian + char filename[MAX_OSPATH]; + byte *data; + qboolean nonefound = true; + + if (strcmp(skybox_name, name) == 0) + return; //no change + + //purge old textures + for (i=0; i<6; i++) + { + if (skybox_textures[i] && skybox_textures[i] != notexture) + TexMgr_FreeTexture (skybox_textures[i]); + skybox_textures[i] = NULL; + } + + //turn off skybox if sky is set to "" + if (name[0] == 0) + { + skybox_name[0] = 0; + return; + } + + //load textures + for (i=0; i<6; i++) + { + mark = Hunk_LowMark (); + sprintf (filename, "gfx/env/%s%s", name, suf[i]); + data = Image_LoadImage (filename, &width, &height); + if (data) + { + skybox_textures[i] = TexMgr_LoadImage (cl.worldmodel, filename, width, height, SRC_RGBA, data, filename, 0, TEXPREF_NONE); + nonefound = false; + } + else + { + Con_Printf ("Couldn't load %s\n", filename); + skybox_textures[i] = notexture; + } + Hunk_FreeToLowMark (mark); + } + + if (nonefound) // go back to scrolling sky if skybox is totally missing + { + for (i=0; i<6; i++) + { + if (skybox_textures[i] && skybox_textures[i] != notexture) + TexMgr_FreeTexture (skybox_textures[i]); + skybox_textures[i] = NULL; + } + skybox_name[0] = 0; + return; + } + + strcpy(skybox_name, name); +} + +/* +================= +Sky_NewMap +================= +*/ +void Sky_NewMap (void) +{ + char key[128], value[4096]; + char *data; + int i; + + // + // initially no sky + // + skybox_name[0] = 0; + for (i=0; i<6; i++) + skybox_textures[i] = NULL; + + // + // read worldspawn (this is so ugly, and shouldn't it be done on the server?) + // + data = cl.worldmodel->entities; + if (!data) + return; //FIXME: how could this possibly ever happen? -- if there's no + // worldspawn then the sever wouldn't send the loadmap message to the client + + data = COM_Parse(data); + if (!data) //should never happen + return; // error + if (com_token[0] != '{') //should never happen + return; // error + while (1) + { + data = COM_Parse(data); + if (!data) + return; // error + if (com_token[0] == '}') + break; // end of worldspawn + if (com_token[0] == '_') + strcpy(key, com_token + 1); + else + strcpy(key, com_token); + while (key[strlen(key)-1] == ' ') // remove trailing spaces + key[strlen(key)-1] = 0; + data = COM_Parse(data); + if (!data) + return; // error + strcpy(value, com_token); + + if (!strcmp("sky", key)) + Sky_LoadSkyBox(value); + +#if 1 //also accept non-standard keys + else if (!strcmp("skyname", key)) //half-life + Sky_LoadSkyBox(value); + else if (!strcmp("qlsky", key)) //quake lives + Sky_LoadSkyBox(value); +#endif + } +} + +/* +================= +Sky_SkyCommand_f +================= +*/ +void Sky_SkyCommand_f (void) +{ + switch (Cmd_Argc()) + { + case 1: + Con_Printf("\"sky\" is \"%s\"\n", skybox_name); + break; + case 2: + Sky_LoadSkyBox(Cmd_Argv(1)); + break; + default: + Con_Printf("usage: sky \n"); + } +} + +/* +============= +Sky_Init +============= +*/ +void Sky_Init (void) +{ + int i; + + Cvar_RegisterVariable (&r_fastsky, NULL); + Cvar_RegisterVariable (&r_sky_quality, NULL); + Cvar_RegisterVariable (&r_skyalpha, NULL); + Cvar_RegisterVariable (&r_skyfog, NULL); + + Cmd_AddCommand ("sky",Sky_SkyCommand_f); + + for (i=0; i<6; i++) + skybox_textures[i] = NULL; +} + +//============================================================================== +// +// PROCESS SKY SURFS +// +//============================================================================== + +/* +================= +Sky_ProjectPoly + +update sky bounds +================= +*/ +void Sky_ProjectPoly (int nump, vec3_t vecs) +{ + int i,j; + vec3_t v, av; + float s, t, dv; + int axis; + float *vp; + + // decide which face it maps to + VectorCopy (vec3_origin, v); + for (i=0, vp=vecs ; i av[1] && av[0] > av[2]) + { + if (v[0] < 0) + axis = 1; + else + axis = 0; + } + else if (av[1] > av[2] && av[1] > av[0]) + { + if (v[1] < 0) + axis = 3; + else + axis = 2; + } + else + { + if (v[2] < 0) + axis = 5; + else + axis = 4; + } + + // project new texture coords + for (i=0 ; i 0) + dv = vecs[j - 1]; + else + dv = -vecs[-j - 1]; + + j = vec_to_st[axis][0]; + if (j < 0) + s = -vecs[-j -1] / dv; + else + s = vecs[j-1] / dv; + j = vec_to_st[axis][1]; + if (j < 0) + t = -vecs[-j -1] / dv; + else + t = vecs[j-1] / dv; + + if (s < skymins[0][axis]) + skymins[0][axis] = s; + if (t < skymins[1][axis]) + skymins[1][axis] = t; + if (s > skymaxs[0][axis]) + skymaxs[0][axis] = s; + if (t > skymaxs[1][axis]) + skymaxs[1][axis] = t; + } +} + +/* +================= +Sky_ClipPoly +================= +*/ +void Sky_ClipPoly (int nump, vec3_t vecs, int stage) +{ + float *norm; + float *v; + qboolean front, back; + float d, e; + float dists[MAX_CLIP_VERTS]; + int sides[MAX_CLIP_VERTS]; + vec3_t newv[2][MAX_CLIP_VERTS]; + int newc[2]; + int i, j; + + if (nump > MAX_CLIP_VERTS-2) + Sys_Error ("Sky_ClipPoly: MAX_CLIP_VERTS"); + if (stage == 6) // fully clipped + { + Sky_ProjectPoly (nump, vecs); + return; + } + + front = back = false; + norm = skyclip[stage]; + for (i=0, v = vecs ; i ON_EPSILON) + { + front = true; + sides[i] = SIDE_FRONT; + } + else if (d < ON_EPSILON) + { + back = true; + sides[i] = SIDE_BACK; + } + else + sides[i] = SIDE_ON; + dists[i] = d; + } + + if (!front || !back) + { // not clipped + Sky_ClipPoly (nump, vecs, stage+1); + return; + } + + // clip it + sides[i] = sides[0]; + dists[i] = dists[0]; + VectorCopy (vecs, (vecs+(i*3)) ); + newc[0] = newc[1] = 0; + + for (i=0, v = vecs ; inumverts ; i++) + VectorSubtract (p->verts[i], r_origin, verts[i]); + Sky_ClipPoly (p->numverts, verts[0], 0); + } +} + +/* +================ +Sky_ProcessTextureChains -- handles sky polys in world model +================ +*/ +void Sky_ProcessTextureChains (void) +{ + int i; + msurface_t *s; + texture_t *t; + + if (!r_drawworld_cheatsafe) + return; + + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + + if (!t || !t->texturechain || !(t->texturechain->flags & SURF_DRAWSKY)) + continue; + + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + Sky_ProcessPoly (s->polys); + } +} + +/* +================ +Sky_ProcessEntities -- handles sky polys on brush models +================ +*/ +void Sky_ProcessEntities (void) +{ + entity_t *e; + msurface_t *s; + glpoly_t *p; + int i,j,k,mark; + float dot; + qboolean rotated; + vec3_t temp, forward, right, up; + + if (!r_drawentities.value) + return; + + for (i=0 ; imodel->type != mod_brush) + continue; + + if (R_CullModelForEntity(e)) + continue; + + if (e->alpha == ENTALPHA_ZERO) + continue; + + VectorSubtract (r_refdef.vieworg, e->origin, modelorg); + if (e->angles[0] || e->angles[1] || e->angles[2]) + { + rotated = true; + AngleVectors (e->angles, forward, right, up); + VectorCopy (modelorg, temp); + modelorg[0] = DotProduct (temp, forward); + modelorg[1] = -DotProduct (temp, right); + modelorg[2] = DotProduct (temp, up); + } + else + rotated = false; + + s = &e->model->surfaces[e->model->firstmodelsurface]; + + for (j=0 ; jmodel->nummodelsurfaces ; j++, s++) + { + if (s->flags & SURF_DRAWSKY) + { + dot = DotProduct (modelorg, s->plane->normal) - s->plane->dist; + if (((s->flags & SURF_PLANEBACK) && (dot < -BACKFACE_EPSILON)) || + (!(s->flags & SURF_PLANEBACK) && (dot > BACKFACE_EPSILON))) + { + //copy the polygon and translate manually, since Sky_ProcessPoly needs it to be in world space + mark = Hunk_LowMark(); + p = Hunk_Alloc (sizeof(*s->polys)); //FIXME: don't allocate for each poly + p->numverts = s->polys->numverts; + for (k=0; knumverts; k++) + { + if (rotated) + { + p->verts[k][0] = e->origin[0] + s->polys->verts[k][0] * forward[0] + - s->polys->verts[k][1] * right[0] + + s->polys->verts[k][2] * up[0]; + p->verts[k][1] = e->origin[1] + s->polys->verts[k][0] * forward[1] + - s->polys->verts[k][1] * right[1] + + s->polys->verts[k][2] * up[1]; + p->verts[k][2] = e->origin[2] + s->polys->verts[k][0] * forward[2] + - s->polys->verts[k][1] * right[2] + + s->polys->verts[k][2] * up[2]; + } + else + VectorAdd(s->polys->verts[k], e->origin, p->verts[k]); + } + Sky_ProcessPoly (p); + Hunk_FreeToLowMark (mark); + } + } + } + } +} + +//============================================================================== +// +// RENDER SKYBOX +// +//============================================================================== + +/* +============== +Sky_EmitSkyBoxVertex +============== +*/ +void Sky_EmitSkyBoxVertex (float s, float t, int axis) +{ + vec3_t v, b; + int j, k; + float w, h; + + b[0] = s * gl_farclip.value / sqrt(3.0); + b[1] = t * gl_farclip.value / sqrt(3.0); + b[2] = gl_farclip.value / sqrt(3.0); + + for (j=0 ; j<3 ; j++) + { + k = st_to_vec[axis][j]; + if (k < 0) + v[j] = -b[-k - 1]; + else + v[j] = b[k - 1]; + v[j] += r_origin[j]; + } + + // convert from range [-1,1] to [0,1] + s = (s+1)*0.5; + t = (t+1)*0.5; + + // avoid bilerp seam + w = skybox_textures[skytexorder[axis]]->width; + h = skybox_textures[skytexorder[axis]]->height; + s = s * (w-1)/w + 0.5/w; + t = t * (h-1)/h + 0.5/h; + + t = 1.0 - t; + glTexCoord2f (s, t); + glVertex3fv (v); +} + +/* +============== +Sky_DrawSkyBox + +FIXME: eliminate cracks by adding an extra vert on tjuncs +============== +*/ +void Sky_DrawSkyBox (void) +{ + int i; + /* unused -- kristian + , j, k; + vec3_t v; + float s, t; + */ + + for (i=0 ; i<6 ; i++) + { + if (skymins[0][i] >= skymaxs[0][i] || skymins[1][i] >= skymaxs[1][i]) + continue; + + GL_Bind (skybox_textures[skytexorder[i]]); + +#if 1 //FIXME: this is to avoid tjunctions until i can do it the right way + skymins[0][i] = -1; + skymins[1][i] = -1; + skymaxs[0][i] = 1; + skymaxs[1][i] = 1; +#endif + glBegin (GL_QUADS); + Sky_EmitSkyBoxVertex (skymins[0][i], skymins[1][i], i); + Sky_EmitSkyBoxVertex (skymins[0][i], skymaxs[1][i], i); + Sky_EmitSkyBoxVertex (skymaxs[0][i], skymaxs[1][i], i); + Sky_EmitSkyBoxVertex (skymaxs[0][i], skymins[1][i], i); + glEnd (); + + rs_skypolys++; + rs_skypasses++; + + if (Fog_GetDensity() > 0 && r_skyfog.value > 0) + { + float *c; + + c = Fog_GetColor(); + glEnable (GL_BLEND); + glDisable (GL_TEXTURE_2D); + glColor4f (c[0],c[1],c[2], CLAMP(0.0,r_skyfog.value,1.0)); + + glBegin (GL_QUADS); + Sky_EmitSkyBoxVertex (skymins[0][i], skymins[1][i], i); + Sky_EmitSkyBoxVertex (skymins[0][i], skymaxs[1][i], i); + Sky_EmitSkyBoxVertex (skymaxs[0][i], skymaxs[1][i], i); + Sky_EmitSkyBoxVertex (skymaxs[0][i], skymins[1][i], i); + glEnd (); + + glColor3f (1, 1, 1); + glEnable (GL_TEXTURE_2D); + glDisable (GL_BLEND); + + rs_skypasses++; + } + } +} + +//============================================================================== +// +// RENDER CLOUDS +// +//============================================================================== + +/* +============== +Sky_SetBoxVert +============== +*/ +void Sky_SetBoxVert (float s, float t, int axis, vec3_t v) +{ + vec3_t b; + int j, k; + + b[0] = s * gl_farclip.value / sqrt(3.0); + b[1] = t * gl_farclip.value / sqrt(3.0); + b[2] = gl_farclip.value / sqrt(3.0); + + for (j=0 ; j<3 ; j++) + { + k = st_to_vec[axis][j]; + if (k < 0) + v[j] = -b[-k - 1]; + else + v[j] = b[k - 1]; + v[j] += r_origin[j]; + } +} + +/* +============= +Sky_GetTexCoord +============= +*/ +void Sky_GetTexCoord (vec3_t v, float speed, float *s, float *t) +{ + vec3_t dir; + float length, scroll; + + VectorSubtract (v, r_origin, dir); + dir[2] *= 3; // flatten the sphere + + length = dir[0]*dir[0] + dir[1]*dir[1] + dir[2]*dir[2]; + length = sqrt (length); + length = 6*63/length; + + scroll = cl.time*speed; + scroll -= (int)scroll & ~127; + + *s = (scroll + dir[0] * length) * (1.0/128); + *t = (scroll + dir[1] * length) * (1.0/128); +} + +/* +=============== +Sky_DrawFaceQuad +=============== +*/ +void Sky_DrawFaceQuad (glpoly_t *p) +{ + float s, t; + float *v; + int i; + + if (gl_mtexable && r_skyalpha.value >= 1.0) + { + GL_Bind (solidskytexture); + GL_EnableMultitexture(); + GL_Bind (alphaskytexture); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); + + glBegin (GL_QUADS); + for (i=0, v=p->verts[0] ; i<4 ; i++, v+=VERTEXSIZE) + { + Sky_GetTexCoord (v, 8, &s, &t); + GL_MTexCoord2fFunc (TEXTURE0, s, t); + Sky_GetTexCoord (v, 16, &s, &t); + GL_MTexCoord2fFunc (TEXTURE1, s, t); + glVertex3fv (v); + } + glEnd (); + + GL_DisableMultitexture(); + + rs_skypolys++; + rs_skypasses++; + } + else + { + GL_Bind (solidskytexture); + + if (r_skyalpha.value < 1.0) + glColor3f (1, 1, 1); + + glBegin (GL_QUADS); + for (i=0, v=p->verts[0] ; i<4 ; i++, v+=VERTEXSIZE) + { + Sky_GetTexCoord (v, 8, &s, &t); + glTexCoord2f (s, t); + glVertex3fv (v); + } + glEnd (); + + GL_Bind (alphaskytexture); + glEnable (GL_BLEND); + + if (r_skyalpha.value < 1.0) + glColor4f (1, 1, 1, r_skyalpha.value); + + glBegin (GL_QUADS); + for (i=0, v=p->verts[0] ; i<4 ; i++, v+=VERTEXSIZE) + { + Sky_GetTexCoord (v, 16, &s, &t); + glTexCoord2f (s, t); + glVertex3fv (v); + } + glEnd (); + + glDisable (GL_BLEND); + + rs_skypolys++; + rs_skypasses += 2; + } + + if (Fog_GetDensity() > 0 && r_skyfog.value > 0) + { + float *c; + + c = Fog_GetColor(); + glEnable (GL_BLEND); + glDisable (GL_TEXTURE_2D); + glColor4f (c[0],c[1],c[2], CLAMP(0.0,r_skyfog.value,1.0)); + + glBegin (GL_QUADS); + for (i=0, v=p->verts[0] ; i<4 ; i++, v+=VERTEXSIZE) + glVertex3fv (v); + glEnd (); + + glColor3f (1, 1, 1); + glEnable (GL_TEXTURE_2D); + glDisable (GL_BLEND); + + rs_skypasses++; + } +} + +/* +============== +Sky_DrawFace +============== +*/ + +void Sky_DrawFace (int axis) +{ + glpoly_t *p; + vec3_t verts[4]; + int i, j, start; + float di,qi,dj,qj; + vec3_t vup, vright, temp, temp2; + + Sky_SetBoxVert(-1.0, -1.0, axis, verts[0]); + Sky_SetBoxVert(-1.0, 1.0, axis, verts[1]); + Sky_SetBoxVert(1.0, 1.0, axis, verts[2]); + Sky_SetBoxVert(1.0, -1.0, axis, verts[3]); + + start = Hunk_LowMark (); + p = Hunk_Alloc(sizeof(glpoly_t)); + + VectorSubtract(verts[2],verts[3],vup); + VectorSubtract(verts[2],verts[1],vright); + + di = max((int)r_sky_quality.value, 1); + qi = 1.0 / di; + dj = (axis < 4) ? di*2 : di; //subdivide vertically more than horizontally on skybox sides + qj = 1.0 / dj; + + for (i=0; i skymaxs[0][axis]/2+0.5 || + j*qj < skymins[1][axis]/2+0.5 - qj || j*qj > skymaxs[1][axis]/2+0.5) + continue; + + //if (i&1 ^ j&1) continue; //checkerboard test + VectorScale (vright, qi*i, temp); + VectorScale (vup, qj*j, temp2); + VectorAdd(temp,temp2,temp); + VectorAdd(verts[0],temp,p->verts[0]); + + VectorScale (vup, qj, temp); + VectorAdd (p->verts[0],temp,p->verts[1]); + + VectorScale (vright, qi, temp); + VectorAdd (p->verts[1],temp,p->verts[2]); + + VectorAdd (p->verts[0],temp,p->verts[3]); + + Sky_DrawFaceQuad (p); + } + } + Hunk_FreeToLowMark (start); +} + +/* +============== +Sky_DrawSkyLayers + +draws the old-style scrolling cloud layers +============== +*/ +void Sky_DrawSkyLayers (void) +{ + int i; + + if (r_skyalpha.value < 1.0) + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + + for (i=0 ; i<6 ; i++) + if (skymins[0][i] < skymaxs[0][i] && skymins[1][i] < skymaxs[1][i]) + Sky_DrawFace (i); + + if (r_skyalpha.value < 1.0) + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); +} + +/* +============== +Sky_DrawSky + +called once per frame before drawing anything else +============== +*/ +void Sky_DrawSky (void) +{ + int i; + + //in these special render modes, the sky faces are handled in the normal world/brush renderer + if (r_drawflat_cheatsafe || r_lightmap_cheatsafe ) + return; + + // + // reset sky bounds + // + for (i=0 ; i<6 ; i++) + { + skymins[0][i] = skymins[1][i] = 9999; + skymaxs[0][i] = skymaxs[1][i] = -9999; + } + + // + // process world and bmodels: draw flat-shaded sky surfs, and update skybounds + // + Fog_DisableGFog (); + glDisable (GL_TEXTURE_2D); + if (Fog_GetDensity() > 0) + glColor3fv (Fog_GetColor()); + else + glColor3fv (skyflatcolor); + Sky_ProcessTextureChains (); + Sky_ProcessEntities (); + glColor3f (1, 1, 1); + glEnable (GL_TEXTURE_2D); + + // + // render slow sky: cloud layers or skybox + // + if (!r_fastsky.value && !(Fog_GetDensity() > 0 && r_skyfog.value >= 1)) + { + glDepthFunc(GL_GEQUAL); + glDepthMask(0); + + if (skybox_name[0]) + Sky_DrawSkyBox (); + else + Sky_DrawSkyLayers(); + + glDepthMask(1); + glDepthFunc(GL_LEQUAL); + } + + Fog_EnableGFog (); +} \ No newline at end of file diff --git a/quakespasm/Quake/gl_test.c b/quakespasm/Quake/gl_test.c new file mode 100644 index 00000000..bfca05d6 --- /dev/null +++ b/quakespasm/Quake/gl_test.c @@ -0,0 +1,183 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 "quakedef.h" + +#ifdef GLTEST + +typedef struct +{ + plane_t *plane; + vec3_t origin; + vec3_t normal; + vec3_t up; + vec3_t right; + vec3_t reflect; + float length; +} puff_t; + +#define MAX_PUFFS 64 + +puff_t puffs[MAX_PUFFS]; + + +void Test_Init (void) +{ +} + + + +plane_t junk; +plane_t *HitPlane (vec3_t start, vec3_t end) +{ + trace_t trace; + +// fill in a default trace + memset (&trace, 0, sizeof(trace_t)); + trace.fraction = 1; + trace.allsolid = true; + VectorCopy (end, trace.endpos); + + SV_RecursiveHullCheck (cl.worldmodel->hulls, 0, 0, 1, start, end, &trace); + + junk = trace.plane; + return &junk; +} + +void Test_Spawn (vec3_t origin) +{ + int i; + puff_t *p; + vec3_t temp; + vec3_t normal; + vec3_t incoming; + plane_t *plane; + float d; + + for (i=0,p=puffs ; ilength <= 0) + break; + } + if (i == MAX_PUFFS) + return; + + VectorSubtract (r_refdef.vieworg, origin, incoming); + VectorSubtract (origin, incoming, temp); + plane = HitPlane (r_refdef.vieworg, temp); + + VectorNormalize (incoming); + d = DotProduct (incoming, plane->normal); + VectorSubtract (vec3_origin, incoming, p->reflect); + VectorMA (p->reflect, d*2, plane->normal, p->reflect); + + VectorCopy (origin, p->origin); + VectorCopy (plane->normal, p->normal); + + CrossProduct (incoming, p->normal, p->up); + + CrossProduct (p->up, p->normal, p->right); + + p->length = 8; +} + +void DrawPuff (puff_t *p) +{ + vec3_t pts[2][3]; + int i, j; + float s, d; + + for (i=0 ; i<2 ; i++) + { + if (i == 1) + { + s = 6; + d = p->length; + } + else + { + s = 2; + d = 0; + } + + for (j=0 ; j<3 ; j++) + { + pts[i][0][j] = p->origin[j] + p->up[j]*s + p->reflect[j]*d; + pts[i][1][j] = p->origin[j] + p->right[j]*s + p->reflect[j]*d; + pts[i][2][j] = p->origin[j] + -p->right[j]*s + p->reflect[j]*d; + } + } + + glColor3f (1, 0, 0); + +#if 0 + glBegin (GL_LINES); + glVertex3fv (p->origin); + glVertex3f (p->origin[0] + p->length*p->reflect[0], + p->origin[1] + p->length*p->reflect[1], + p->origin[2] + p->length*p->reflect[2]); + + glVertex3fv (pts[0][0]); + glVertex3fv (pts[1][0]); + + glVertex3fv (pts[0][1]); + glVertex3fv (pts[1][1]); + + glVertex3fv (pts[0][2]); + glVertex3fv (pts[1][2]); + + glEnd (); +#endif + + glBegin (GL_QUADS); + for (i=0 ; i<3 ; i++) + { + j = (i+1)%3; + glVertex3fv (pts[0][j]); + glVertex3fv (pts[1][j]); + glVertex3fv (pts[1][i]); + glVertex3fv (pts[0][i]); + } + glEnd (); + + glBegin (GL_TRIANGLES); + glVertex3fv (pts[1][0]); + glVertex3fv (pts[1][1]); + glVertex3fv (pts[1][2]); + glEnd (); + + p->length -= host_frametime*2; +} + + +void Test_Draw (void) +{ + int i; + puff_t *p; + + for (i=0, p=puffs ; ilength > 0) + DrawPuff (p); + } +} + +#endif diff --git a/quakespasm/Quake/gl_texmgr.c b/quakespasm/Quake/gl_texmgr.c new file mode 100644 index 00000000..f0bf8ac4 --- /dev/null +++ b/quakespasm/Quake/gl_texmgr.c @@ -0,0 +1,1415 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. +*/ + +//gl_texmgr.c -- fitzquake's texture manager. manages opengl texture images + +#include "quakedef.h" + +cvar_t gl_texture_anisotropy = {"gl_texture_anisotropy", "1", true}; +cvar_t gl_max_size = {"gl_max_size", "0"}; +cvar_t gl_picmip = {"gl_picmip", "0"}; +GLint gl_hardware_maxsize; +const int gl_solid_format = 3; +const int gl_alpha_format = 4; + +#define MAX_GLTEXTURES 2048 +gltexture_t *active_gltextures, *free_gltextures; +int numgltextures; + +/* +================================================================================ + + COMMANDS + +================================================================================ +*/ + +typedef struct +{ + int magfilter; + int minfilter; + char *name; +} glmode_t; +glmode_t modes[] = { + {GL_NEAREST, GL_NEAREST, "GL_NEAREST"}, + {GL_NEAREST, GL_NEAREST_MIPMAP_NEAREST, "GL_NEAREST_MIPMAP_NEAREST"}, + {GL_NEAREST, GL_NEAREST_MIPMAP_LINEAR, "GL_NEAREST_MIPMAP_LINEAR"}, + {GL_LINEAR, GL_LINEAR, "GL_LINEAR"}, + {GL_LINEAR, GL_LINEAR_MIPMAP_NEAREST, "GL_LINEAR_MIPMAP_NEAREST"}, + {GL_LINEAR, GL_LINEAR_MIPMAP_LINEAR, "GL_LINEAR_MIPMAP_LINEAR"}, +}; +#define NUM_GLMODES 6 +int gl_texturemode = 5; // bilinear + +/* +=============== +TexMgr_DescribeTextureModes_f -- report available texturemodes +=============== +*/ +void TexMgr_DescribeTextureModes_f (void) +{ + int i; + + for (i=0; iflags & TEXPREF_NEAREST) + { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + } + else if (glt->flags & TEXPREF_LINEAR) + { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + } + else if (glt->flags & TEXPREF_MIPMAP) + { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, modes[gl_texturemode].magfilter); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, modes[gl_texturemode].minfilter); + } + else + { + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, modes[gl_texturemode].magfilter); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, modes[gl_texturemode].magfilter); + } + + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, gl_texture_anisotropy.value); +} + +/* +=============== +TexMgr_TextureMode_f +=============== +*/ +void TexMgr_TextureMode_f (void) +{ + gltexture_t *glt; + char *arg; + int i; + + switch (Cmd_Argc()) + { + case 1: + Con_Printf ("\"gl_texturemode\" is \"%s\"\n", modes[gl_texturemode].name); + break; + case 2: + arg = Cmd_Argv(1); + if (arg[0] == 'G' || arg[0] == 'g') + { + for (i=0; i= '0' && arg[0] <= '9') + { + i = atoi(arg); + if (i > NUM_GLMODES || i < 1) + { + Con_Printf ("\"%s\" is not a valid texturemode\n", arg); + return; + } + gl_texturemode = i - 1; + } + else + Con_Printf ("\"%s\" is not a valid texturemode\n", arg); + +stuff: + for (glt=active_gltextures; glt; glt=glt->next) + TexMgr_SetFilterModes (glt); + + Sbar_Changed (); //sbar graphics need to be redrawn with new filter mode + + //FIXME: warpimages need to be redrawn, too. + + break; + default: + Con_SafePrintf ("usage: gl_texturemode \n"); + break; + } +} + +/* +=============== +TexMgr_Anisotropy_f -- called when gl_texture_anisotropy changes + +FIXME: this is getting called twice (becuase of the recursive Cvar_SetValue call) +=============== +*/ +void TexMgr_Anisotropy_f (void) +{ + // extern qboolean gl_anisotropy_able; unused -- kristian + extern float gl_max_anisotropy; + gltexture_t *glt; + + Cvar_SetValue ("gl_texture_anisotropy", CLAMP (1.0f, gl_texture_anisotropy.value, gl_max_anisotropy)); + + for (glt=active_gltextures; glt; glt=glt->next) + TexMgr_SetFilterModes (glt); +} + +/* +=============== +TexMgr_Imagelist_f -- report loaded textures +=============== +*/ +void TexMgr_Imagelist_f (void) +{ + float mb; + float texels = 0; + gltexture_t *glt; + extern cvar_t vid_bpp; + + for (glt=active_gltextures; glt; glt=glt->next) + { + Con_SafePrintf (" %4i x%4i %s\n", glt->width, glt->height, glt->name); + if (glt->flags & TEXPREF_MIPMAP) + texels += glt->width * glt->height * 4.0f / 3.0f; + else + texels += (glt->width * glt->height); + } + + mb = texels * (vid_bpp.value / 8.0f) / 0x100000; + Con_Printf ("%i textures %i pixels %1.1f megabytes\n", numgltextures, (int)texels, mb); +} + +/* +=============== +TexMgr_Imagedump_f -- dump all current textures to TGA files +=============== +*/ +void TexMgr_Imagedump_f (void) +{ + char tganame[MAX_OSPATH], tempname[MAX_OSPATH], dirname[MAX_OSPATH]; + gltexture_t *glt; + byte *buffer; + char *c; + + //create directory + sprintf(dirname, "%s/imagedump", com_gamedir); + Sys_mkdir (dirname); + + //loop through textures + for (glt=active_gltextures; glt; glt=glt->next) + { + Q_strcpy(tempname, glt->name); + while (c = strchr(tempname, ':')) *c = '_'; + while (c = strchr(tempname, '/')) *c = '_'; + while (c = strchr(tempname, '*')) *c = '_'; + sprintf(tganame, "imagedump/%s.tga", tempname); + + GL_Bind (glt); + if (glt->flags & TEXPREF_ALPHA) + { + buffer = malloc(glt->width*glt->height*4); + glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + Image_WriteTGA (tganame, buffer, glt->width, glt->height, 32, true); + } + else + { + buffer = malloc(glt->width*glt->height*3); + glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, buffer); + Image_WriteTGA (tganame, buffer, glt->width, glt->height, 24, true); + } + free (buffer); + } + + Con_Printf ("dumped %i textures to %s\n", numgltextures, dirname); +} + +/* +=============== +TexMgr_FrameUsage -- report texture memory usage for this frame +=============== +*/ +float TexMgr_FrameUsage (void) +{ + float mb; + float texels = 0; + gltexture_t *glt; + extern cvar_t vid_bpp; + + for (glt=active_gltextures; glt; glt=glt->next) + if (glt->visframe == r_framecount) + { + if (glt->flags & TEXPREF_MIPMAP) + texels += glt->width * glt->height * 4.0f / 3.0f; + else + texels += (glt->width * glt->height); + } + + mb = texels * (vid_bpp.value / 8.0f) / 0x100000; + return mb; +} + +/* +================================================================================ + + TEXTURE MANAGER + +================================================================================ +*/ + +/* +================ +TexMgr_FindTexture +================ +*/ +gltexture_t *TexMgr_FindTexture (model_t *owner, char *name) +{ + gltexture_t *glt; + + if (name) + { + for (glt=active_gltextures; glt; glt=glt->next) + if (glt->owner == owner && !strcmp (glt->name, name)) + return glt; + } + + return NULL; +} + +/* +================ +TexMgr_NewTexture +================ +*/ +gltexture_t *TexMgr_NewTexture (void) +{ + gltexture_t *glt; + + if (numgltextures == MAX_GLTEXTURES) + Sys_Error("numgltextures == MAX_GLTEXTURES\n"); + + glt = free_gltextures; + free_gltextures = glt->next; + glt->next = active_gltextures; + active_gltextures = glt; + + glGenTextures(1, (GLuint *)&glt->texnum); + numgltextures++; + return glt; +} + +/* +================ +TexMgr_FreeTexture +================ +*/ +void TexMgr_FreeTexture (gltexture_t *kill) +{ + gltexture_t *glt; + + if (kill == NULL) + { + Con_Printf ("TexMgr_FreeTexture: NULL texture\n"); + return; + } + + if (active_gltextures == kill) + { + active_gltextures = kill->next; + kill->next = free_gltextures; + free_gltextures = kill; + + glDeleteTextures(1, (const GLuint *)&kill->texnum); + numgltextures--; + return; + } + + for (glt = active_gltextures; glt; glt = glt->next) + if (glt->next == kill) + { + glt->next = kill->next; + kill->next = free_gltextures; + free_gltextures = kill; + + glDeleteTextures(1, (const GLuint *)&kill->texnum); + numgltextures--; + return; + } + + Con_Printf ("TexMgr_FreeTexture: not found\n"); +} + +/* +================ +TexMgr_FreeTextures + +compares each bit in "flags" to the one in glt->flags only if that bit is active in "mask" +================ +*/ +void TexMgr_FreeTextures (int flags, int mask) +{ + gltexture_t *glt, *next; + + for (glt = active_gltextures; glt; glt = next) + { + next = glt->next; + if ((glt->flags & mask) == (flags & mask)) + TexMgr_FreeTexture (glt); + } +} + +/* +================ +TexMgr_FreeTexturesForOwner +================ +*/ +void TexMgr_FreeTexturesForOwner (model_t *owner) +{ + gltexture_t *glt, *next; + + for (glt = active_gltextures; glt; glt = next) + { + next = glt->next; + if (glt && glt->owner == owner) + TexMgr_FreeTexture (glt); + } +} + +/* +================================================================================ + + INIT + +================================================================================ +*/ + +/* +================= +TexMgr_LoadPalette -- johnfitz -- was VID_SetPalette, moved here, renamed, rewritten +================= +*/ +void TexMgr_LoadPalette (void) +{ + byte mask[] = {255,255,255,0}; + byte black[] = {0,0,0,255}; + byte *pal, *src, *dst; + int i, mark; + FILE *f; + + COM_FOpenFile ("gfx/palette.lmp", &f); + if (!f) + Sys_Error ("Couldn't load gfx/palette.lmp"); + + mark = Hunk_LowMark (); + pal = Hunk_Alloc (768); + fread (pal, 1, 768, f); + fclose(f); + + //standard palette, 255 is transparent + dst = (byte *)d_8to24table; + src = pal; + for (i=0; i<256; i++) + { + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = 255; + } + d_8to24table[255] &= *(int *)mask; + + //fullbright palette, 0-223 are black (for additive blending) + src = pal + 224*3; + dst = (byte *)(d_8to24table_fbright) + 224*4; + for (i=224; i<256; i++) + { + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = 255; + } + for (i=0; i<224; i++) + d_8to24table_fbright[i] = *(int *)black; + + //nobright palette, 224-255 are black (for additive blending) + dst = (byte *)d_8to24table_nobright; + src = pal; + for (i=0; i<256; i++) + { + *dst++ = *src++; + *dst++ = *src++; + *dst++ = *src++; + *dst++ = 255; + } + for (i=224; i<256; i++) + d_8to24table_nobright[i] = *(int *)black; + + //conchars palette, 0 and 255 are transparent + memcpy(d_8to24table_conchars, d_8to24table, 256*4); + d_8to24table_conchars[0] &= *(int *)mask; + + Hunk_FreeToLowMark (mark); +} + +/* +================ +TexMgr_NewGame +================ +*/ +void TexMgr_NewGame (void) +{ + TexMgr_FreeTextures (0, TEXPREF_PERSIST); //deletes all textures where TEXPREF_PERSIST is unset + TexMgr_LoadPalette (); +} + +/* +============= +TexMgr_RecalcWarpImageSize -- called during init, and after a vid_restart + +choose safe warpimage size and resize existing warpimage textures +============= +*/ +void TexMgr_RecalcWarpImageSize (void) +{ + int mark, oldsize; + gltexture_t *glt; + byte *dummy; + + // + // find the new correct size + // + oldsize = gl_warpimagesize; + + gl_warpimagesize = TexMgr_SafeTextureSize (512); + + while (gl_warpimagesize > vid.width) + gl_warpimagesize >>= 1; + while (gl_warpimagesize > vid.height) + gl_warpimagesize >>= 1; + + if (gl_warpimagesize == oldsize) + return; + + // + // resize the textures in opengl + // + mark = Hunk_LowMark(); + dummy = Hunk_Alloc (gl_warpimagesize*gl_warpimagesize*4); + + for (glt=active_gltextures; glt; glt=glt->next) + { + if (glt->flags & TEXPREF_WARPIMAGE) + { + GL_Bind (glt); + glTexImage2D (GL_TEXTURE_2D, 0, gl_solid_format, gl_warpimagesize, gl_warpimagesize, 0, GL_RGBA, GL_UNSIGNED_BYTE, dummy); + glt->width = glt->height = gl_warpimagesize; + } + } + + Hunk_FreeToLowMark (mark); +} + +/* +================ +TexMgr_Init + +must be called before any texture loading +================ +*/ +void TexMgr_Init (void) +{ + int i; //, mark; unused -- kristian + static byte notexture_data[16] = {159,91,83,255,0,0,0,255,0,0,0,255,159,91,83,255}; //black and pink checker + static byte nulltexture_data[16] = {127,191,255,255,0,0,0,255,0,0,0,255,127,191,255,255}; //black and blue checker + extern texture_t *r_notexture_mip, *r_notexture_mip2; + + // init texture list + free_gltextures = (gltexture_t *) Hunk_AllocName (MAX_GLTEXTURES * sizeof(gltexture_t), "gltextures"); + active_gltextures = NULL; + for (i=0; igltexture = r_notexture_mip2->gltexture = notexture; + + //set safe size for warpimages + gl_warpimagesize = 0; + TexMgr_RecalcWarpImageSize (); +} + +/* +================================================================================ + + IMAGE LOADING + +================================================================================ +*/ + +/* +================ +TexMgr_Pad -- return smallest power of two greater than or equal to s +================ +*/ +int TexMgr_Pad (int s) +{ + int i; + for (i = 1; i < s; i<<=1); + return i; +} + +/* +=============== +TexMgr_SafeTextureSize -- return a size with hardware and user prefs in mind +=============== +*/ +int TexMgr_SafeTextureSize (int s) +{ + s = TexMgr_Pad(s); + if ((int)gl_max_size.value > 0) + s = min(TexMgr_Pad((int)gl_max_size.value), s); + s = min(gl_hardware_maxsize, s); + return s; +} + +/* +================ +TexMgr_PadConditional -- only pad if a texture of that size would be padded. (used for tex coords) +================ +*/ +int TexMgr_PadConditional (int s) +{ + if (s < TexMgr_SafeTextureSize(s)) + return TexMgr_Pad(s); + else + return s; +} + +/* +================ +TexMgr_MipMapW +================ +*/ +unsigned *TexMgr_MipMapW (unsigned *data, int width, int height) +{ + int i, size; + byte *out, *in; + + out = in = (byte *)data; + size = (width*height)>>1; + + for (i=0; i>1; + out[1] = (in[1] + in[5])>>1; + out[2] = (in[2] + in[6])>>1; + out[3] = (in[3] + in[7])>>1; + } + + return data; +} + +/* +================ +TexMgr_MipMapH +================ +*/ +unsigned *TexMgr_MipMapH (unsigned *data, int width, int height) +{ + int i, j; + byte *out, *in; + + out = in = (byte *)data; + height>>=1; + width<<=2; + + for (i=0; i>1; + out[1] = (in[1] + in[width+1])>>1; + out[2] = (in[2] + in[width+2])>>1; + out[3] = (in[3] + in[width+3])>>1; + } + + return data; +} + +/* +================ +TexMgr_ResampleTexture -- bilinear resample +================ +*/ +unsigned *TexMgr_ResampleTexture (unsigned *in, int inwidth, int inheight, qboolean alpha) +{ + byte *nwpx, *nepx, *swpx, *sepx, *dest; + unsigned xfrac, yfrac, x, y, modx, mody, imodx, imody, injump, outjump; + unsigned *out; + int i, j, outwidth, outheight; + + if (inwidth == TexMgr_Pad(inwidth) && inheight == TexMgr_Pad(inheight)) + return in; + + outwidth = TexMgr_Pad(inwidth); + outheight = TexMgr_Pad(inheight); + out = Hunk_Alloc(outwidth*outheight*4); + + xfrac = ((inwidth-1) << 16) / (outwidth-1); + yfrac = ((inheight-1) << 16) / (outheight-1); + y = outjump = 0; + + for (i=0; i>8) & 0xFF; + imody = 256 - mody; + injump = (y>>16) * inwidth; + x = 0; + + for (j=0; j>8) & 0xFF; + imodx = 256 - modx; + + nwpx = (byte *)(in + (x>>16) + injump); + nepx = nwpx + 4; + swpx = nwpx + inwidth*4; + sepx = swpx + 4; + + dest = (byte *)(out + outjump + j); + + dest[0] = (nwpx[0]*imodx*imody + nepx[0]*modx*imody + swpx[0]*imodx*mody + sepx[0]*modx*mody)>>16; + dest[1] = (nwpx[1]*imodx*imody + nepx[1]*modx*imody + swpx[1]*imodx*mody + sepx[1]*modx*mody)>>16; + dest[2] = (nwpx[2]*imodx*imody + nepx[2]*modx*imody + swpx[2]*imodx*mody + sepx[2]*modx*mody)>>16; + if (alpha) + dest[3] = (nwpx[3]*imodx*imody + nepx[3]*modx*imody + swpx[3]*imodx*mody + sepx[3]*modx*mody)>>16; + else + dest[3] = 255; + + x += xfrac; + } + outjump += outwidth; + y += yfrac; + } + + return out; +} + +/* +=============== +TexMgr_AlphaEdgeFix + +eliminate pink edges on sprites, etc. +operates in place on 32bit data +=============== +*/ +void TexMgr_AlphaEdgeFix (byte *data, int width, int height) +{ + int i,j,n=0,b,c[3]={0,0,0},lastrow,thisrow,nextrow,lastpix,thispix,nextpix; + byte *dest = data; + + for (i=0; iwidth, glt->height, glt->flags & TEXPREF_ALPHA); + glt->width = TexMgr_Pad(glt->width); + glt->height = TexMgr_Pad(glt->height); + + // mipmap down + picmip = (glt->flags & TEXPREF_NOPICMIP) ? 0 : max ((int)gl_picmip.value, 0); + mipwidth = TexMgr_SafeTextureSize (glt->width >> picmip); + mipheight = TexMgr_SafeTextureSize (glt->height >> picmip); + while (glt->width > mipwidth) + { + TexMgr_MipMapW (data, glt->width, glt->height); + glt->width >>= 1; + if (glt->flags & TEXPREF_ALPHA) + TexMgr_AlphaEdgeFix ((byte *)data, glt->width, glt->height); + } + while (glt->height > mipheight) + { + TexMgr_MipMapH (data, glt->width, glt->height); + glt->height >>= 1; + if (glt->flags & TEXPREF_ALPHA) + TexMgr_AlphaEdgeFix ((byte *)data, glt->width, glt->height); + } + + // upload + GL_Bind (glt); + internalformat = (glt->flags & TEXPREF_ALPHA) ? gl_alpha_format : gl_solid_format; + glTexImage2D (GL_TEXTURE_2D, 0, internalformat, glt->width, glt->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); + + // upload mipmaps + if (glt->flags & TEXPREF_MIPMAP) + { + mipwidth = glt->width; + mipheight = glt->height; + + for (miplevel=1; mipwidth > 1 || mipheight > 1; miplevel++) + { + if (mipwidth > 1) + { + TexMgr_MipMapW (data, mipwidth, mipheight); + mipwidth >>= 1; + } + if (mipheight > 1) + { + TexMgr_MipMapH (data, mipwidth, mipheight); + mipheight >>= 1; + } + glTexImage2D (GL_TEXTURE_2D, miplevel, internalformat, mipwidth, mipheight, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); + } + } + + // set filter modes + TexMgr_SetFilterModes (glt); +} + +/* +================ +TexMgr_LoadImage8 -- handles 8bit source data, then passes it to LoadImage32 +================ +*/ +void TexMgr_LoadImage8 (gltexture_t *glt, byte *data) +{ + extern cvar_t gl_fullbrights; + qboolean padw = false, padh = false; + byte padbyte; + unsigned int *usepal; + int i; + + // HACK HACK HACK -- taken from tomazquake + if (strstr(glt->name, "shot1sid") && glt->width==32 && glt->height==32 && CRC_Block(data, 1024) == 65393) + { + // This texture in b_shell1.bsp has some of the first 32 pixels painted white. + // They are invisible in software, but look really ugly in GL. So we just copy + // 32 pixels from the bottom to make it look nice. + memcpy (data, data + 32*31, 32); + } + + // detect false alpha cases + if (glt->flags & TEXPREF_ALPHA && !(glt->flags & TEXPREF_CONCHARS)) + { + for (i = 0; i < glt->width*glt->height; i++) + if (data[i] == 255) //transparent index + break; + if (i == glt->width*glt->height) + glt->flags -= TEXPREF_ALPHA; + } + + // choose palette and padbyte + if (glt->flags & TEXPREF_FULLBRIGHT) + { + usepal = d_8to24table_fbright; + padbyte = 0; + } + else if (glt->flags & TEXPREF_NOBRIGHT && gl_fullbrights.value) + { + usepal = d_8to24table_nobright; + padbyte = 0; + } + else if (glt->flags & TEXPREF_CONCHARS) + { + usepal = d_8to24table_conchars; + padbyte = 0; + } + else + { + usepal = d_8to24table; + padbyte = 255; + } + + // pad each dimention, but only if it's not going to be downsampled later + if (glt->flags & TEXPREF_PAD) + { + if (glt->width < TexMgr_SafeTextureSize(glt->width)) + { + data = TexMgr_PadImageW (data, glt->width, glt->height, padbyte); + glt->width = TexMgr_Pad(glt->width); + padw = true; + } + if (glt->height < TexMgr_SafeTextureSize(glt->height)) + { + data = TexMgr_PadImageH (data, glt->width, glt->height, padbyte); + glt->height = TexMgr_Pad(glt->height); + padh = true; + } + } + + // convert to 32bit + data = (byte *)TexMgr_8to32(data, glt->width * glt->height, usepal); + + // fix edges + if (glt->flags & TEXPREF_ALPHA) + TexMgr_AlphaEdgeFix (data, glt->width, glt->height); + else + { + if (padw) + TexMgr_PadEdgeFixW (data, glt->source_width, glt->source_height); + if (padh) + TexMgr_PadEdgeFixH (data, glt->source_width, glt->source_height); + } + + // upload it + TexMgr_LoadImage32 (glt, (unsigned *)data); +} + +/* +================ +TexMgr_LoadLightmap -- handles lightmap data +================ +*/ +void TexMgr_LoadLightmap (gltexture_t *glt, byte *data) +{ + extern int gl_lightmap_format, lightmap_bytes; + + // upload it + GL_Bind (glt); + glTexImage2D (GL_TEXTURE_2D, 0, lightmap_bytes, glt->width, glt->height, 0, gl_lightmap_format, GL_UNSIGNED_BYTE, data); + + // set filter modes + TexMgr_SetFilterModes (glt); +} + +/* +================ +TexMgr_LoadImage -- the one entry point for loading all textures +================ +*/ +gltexture_t *TexMgr_LoadImage (model_t *owner, char *name, int width, int height, enum srcformat format, + byte *data, char *source_file, unsigned source_offset, unsigned flags) +{ + extern int lightmap_bytes; + unsigned short crc; + gltexture_t *glt; + int mark; //, bytes; unused -- kristian + + if (isDedicated) + return NULL; + + // cache check + switch (format) + { + case SRC_INDEXED: + crc = CRC_Block(data, width * height); + break; + case SRC_LIGHTMAP: + crc = CRC_Block(data, width * height * lightmap_bytes); + break; + case SRC_RGBA: + crc = CRC_Block(data, width * height * 4); + break; + } + if ((flags & TEXPREF_OVERWRITE) && (glt = TexMgr_FindTexture (owner, name))) + { + if (glt->source_crc == crc) + return glt; + } + else + glt = TexMgr_NewTexture (); + + // copy data + glt->owner = owner; + strncpy (glt->name, name, sizeof(glt->name)); + glt->width = width; + glt->height = height; + glt->flags = flags; + glt->shirt = -1; + glt->pants = -1; + strncpy (glt->source_file, source_file, sizeof(glt->source_file)); + glt->source_offset = source_offset; + glt->source_format = format; + glt->source_width = width; + glt->source_height = height; + glt->source_crc = crc; + + //upload it + mark = Hunk_LowMark(); + + switch (glt->source_format) + { + case SRC_INDEXED: + TexMgr_LoadImage8 (glt, data); + break; + case SRC_LIGHTMAP: + TexMgr_LoadLightmap (glt, data); + break; + case SRC_RGBA: + TexMgr_LoadImage32 (glt, (unsigned *)data); + break; + } + + Hunk_FreeToLowMark(mark); + + return glt; +} + +/* +================================================================================ + + COLORMAPPING AND TEXTURE RELOADING + +================================================================================ +*/ + +/* +================ +TexMgr_ReloadImage -- reloads a texture, and colormaps it if needed +================ +*/ +void TexMgr_ReloadImage (gltexture_t *glt, int shirt, int pants) +{ + byte translation[256]; + byte *src, *dst, *data = NULL, *translated; + int mark, size, i; +// +// get source data +// + mark = Hunk_LowMark (); + + if (glt->source_file[0] && glt->source_offset) + { + //lump inside file + data = COM_LoadHunkFile (glt->source_file); + if (!data) + goto invalid; + data += glt->source_offset; + } + else if (glt->source_file[0] && !glt->source_offset) + data = Image_LoadImage (glt->source_file, (int *)&glt->source_width, (int *)&glt->source_height); //simple file + else if (!glt->source_file[0] && glt->source_offset) + data = (byte *) glt->source_offset; //image in memory + + if (!data) + { +invalid: + Con_Printf ("TexMgr_ReloadImage: invalid source for %s\n", glt->name); + Hunk_FreeToLowMark(mark); + return; + } + + glt->width = glt->source_width; + glt->height = glt->source_height; +// +// apply shirt and pants colors +// +// if shirt and pants are -1,-1, use existing shirt and pants colors +// if existing shirt and pants colors are -1,-1, don't bother colormapping + if (shirt > -1 && pants > -1) + { + if (glt->source_format == SRC_INDEXED) + { + glt->shirt = shirt; + glt->pants = pants; + } + else + Con_Printf ("TexMgr_ReloadImage: can't colormap a non SRC_INDEXED texture: %s\n", glt->name); + } + if (glt->shirt > -1 && glt->pants > -1) + { + //create new translation table + for (i=0 ; i<256 ; i++) + translation[i] = i; + + shirt = glt->shirt * 16; + if (shirt < 128) + for (i=0 ; i<16 ; i++) + translation[TOP_RANGE+i] = shirt+i; + else + for (i=0 ; i<16 ; i++) + translation[TOP_RANGE+i] = shirt+15-i; + + pants = glt->pants * 16; + if (pants < 128) + for (i=0 ; i<16 ; i++) + translation[BOTTOM_RANGE+i] = pants+i; + else + for (i=0 ; i<16 ; i++) + translation[BOTTOM_RANGE+i] = pants+15-i; + + //translate texture + size = glt->width * glt->height; + dst = translated = Hunk_Alloc (size); + src = data; + + for (i=0; isource_format) + { + case SRC_INDEXED: + TexMgr_LoadImage8 (glt, data); + break; + case SRC_LIGHTMAP: + TexMgr_LoadLightmap (glt, data); + break; + case SRC_RGBA: + TexMgr_LoadImage32 (glt, (unsigned *)data); + break; + } + + Hunk_FreeToLowMark(mark); +} + +/* +================ +TexMgr_ReloadImages -- reloads all texture images. called only by vid_restart +================ +*/ +void TexMgr_ReloadImages (void) +{ + gltexture_t *glt; + + for (glt=active_gltextures; glt; glt=glt->next) + { + glGenTextures(1, (GLuint *)&glt->texnum); + TexMgr_ReloadImage (glt, -1, -1); + } +} + +/* +================ +TexMgr_ReloadNobrightImages -- reloads all texture that were loaded with the nobright palette. called when gl_fullbrights changes +================ +*/ +void TexMgr_ReloadNobrightImages (void) +{ + gltexture_t *glt; + + for (glt=active_gltextures; glt; glt=glt->next) + if (glt->flags & TEXPREF_NOBRIGHT) + TexMgr_ReloadImage(glt, -1, -1); +} + +/* +================================================================================ + + TEXTURE BINDING / TEXTURE UNIT SWITCHING + +================================================================================ +*/ + +int currenttexture = -1; // to avoid unnecessary texture sets +GLenum TEXTURE0, TEXTURE1; //johnfitz +qboolean mtexenabled = false; + +/* +================ +GL_SelectTexture -- johnfitz -- rewritten +================ +*/ +void GL_SelectTexture (GLenum target) +{ + static GLenum currenttarget; + static int ct0, ct1; + + if (target == currenttarget) + return; + + GL_SelectTextureFunc(target); + + if (target == TEXTURE0) + { + ct1 = currenttexture; + currenttexture = ct0; + } + else //target == TEXTURE1 + { + ct0 = currenttexture; + currenttexture = ct1; + } + + currenttarget = target; +} + +/* +================ +GL_DisableMultitexture -- selects texture unit 0 +================ +*/ +void GL_DisableMultitexture(void) +{ + if (mtexenabled) + { + glDisable(GL_TEXTURE_2D); + GL_SelectTexture(TEXTURE0); //johnfitz -- no longer SGIS specific + mtexenabled = false; + } +} + +/* +================ +GL_EnableMultitexture -- selects texture unit 1 +================ +*/ +void GL_EnableMultitexture(void) +{ + if (gl_mtexable) + { + GL_SelectTexture(TEXTURE1); //johnfitz -- no longer SGIS specific + glEnable(GL_TEXTURE_2D); + mtexenabled = true; + } +} + +/* +================ +GL_Bind -- johnfitz -- heavy revision +================ +*/ +void GL_Bind (gltexture_t *texture) +{ + if (!texture) + texture = nulltexture; + + if (texture->texnum != currenttexture) + { + currenttexture = texture->texnum; + glBindTexture (GL_TEXTURE_2D, currenttexture); + texture->visframe = r_framecount; + } +} diff --git a/quakespasm/Quake/gl_texmgr.h b/quakespasm/Quake/gl_texmgr.h new file mode 100644 index 00000000..180b8406 --- /dev/null +++ b/quakespasm/Quake/gl_texmgr.h @@ -0,0 +1,99 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. +*/ + +//gl_texmgr.h -- fitzquake's texture manager. manages opengl texture images + +#define TEXPREF_NONE 0x0000 +#define TEXPREF_MIPMAP 0x0001 // generate mipmaps +#define TEXPREF_LINEAR 0x0002 // force linear +#define TEXPREF_NEAREST 0x0004 // force nearest +#define TEXPREF_ALPHA 0x0008 // allow alpha +#define TEXPREF_PAD 0x0010 // allow padding +#define TEXPREF_PERSIST 0x0020 // never free +#define TEXPREF_OVERWRITE 0x0040 // overwrite existing same-name texture +#define TEXPREF_NOPICMIP 0x0080 // always load full-sized +#define TEXPREF_FULLBRIGHT 0x0100 // use fullbright mask palette +#define TEXPREF_NOBRIGHT 0x0200 // use nobright mask palette +#define TEXPREF_CONCHARS 0x0400 // use conchars palette +#define TEXPREF_WARPIMAGE 0x0800 // resize this texture when warpimagesize changes + +enum srcformat {SRC_INDEXED, SRC_LIGHTMAP, SRC_RGBA}; + +typedef struct gltexture_s { +//managed by texture manager + unsigned int texnum; + struct gltexture_s *next; + model_t *owner; +//managed by image loading + char name[64]; + unsigned int width; //size of image as it exists in opengl + unsigned int height; //size of image as it exists in opengl + unsigned int flags; + char source_file[MAX_QPATH]; //relative filepath to data source, or "" if source is in memory + unsigned int source_offset; //byte offset into file, or memory address + enum srcformat source_format; //format of pixel data (indexed, lightmap, or rgba) + unsigned int source_width; //size of image in source data + unsigned int source_height; //size of image in source data + unsigned short source_crc; //generated by source data before modifications + char shirt; //0-13 shirt color, or -1 if never colormapped + char pants; //0-13 pants color, or -1 if never colormapped +//used for rendering + int visframe; //matches r_framecount if texture was bound this frame +} gltexture_t; + +gltexture_t *notexture; +gltexture_t *nulltexture; + +unsigned int d_8to24table[256]; +unsigned int d_8to24table_fbright[256]; +unsigned int d_8to24table_nobright[256]; +unsigned int d_8to24table_conchars[256]; +unsigned int d_8to24table_shirt[256]; +unsigned int d_8to24table_pants[256]; + +// TEXTURE MANAGER + +float TexMgr_FrameUsage (void); +gltexture_t *TexMgr_FindTexture (model_t *owner, char *name); +gltexture_t *TexMgr_NewTexture (void); +void TexMgr_FreeTexture (gltexture_t *kill); +void TexMgr_FreeTextures (int flags, int mask); +void TexMgr_FreeTexturesForOwner (model_t *owner); +void TexMgr_NewGame (void); +void TexMgr_Init (void); + +// IMAGE LOADING +gltexture_t *TexMgr_LoadImage (model_t *owner, char *name, int width, int height, enum srcformat format, + byte *data, char *source_file, unsigned source_offset, unsigned flags); +void TexMgr_ReloadImage (gltexture_t *glt, int shirt, int pants); +void TexMgr_ReloadImages (void); +void TexMgr_ReloadNobrightImages (void); + +int TexMgr_Pad(int s); +int TexMgr_SafeTextureSize (int s); +int TexMgr_PadConditional (int s); + +// TEXTURE BINDING & TEXTURE UNIT SWITCHING + +extern qboolean gl_mtexable; + +void GL_DisableMultitexture (void); //selects texture unit 0 +void GL_EnableMultitexture (void); //selects texture unit 1 +void GL_Bind (gltexture_t *texture); diff --git a/quakespasm/Quake/gl_vidnt.c b/quakespasm/Quake/gl_vidnt.c new file mode 100644 index 00000000..102a1033 --- /dev/null +++ b/quakespasm/Quake/gl_vidnt.c @@ -0,0 +1,2856 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// gl_vidnt.c -- NT GL vid component + +#include "quakedef.h" +#include "winquake.h" +#include "resource.h" +#include + +#define MAX_MODE_LIST 600 //johnfitz -- was 30 +#define VID_ROW_SIZE 3 +#define WARP_WIDTH 320 +#define WARP_HEIGHT 200 +#define MAXWIDTH 10000 +#define MAXHEIGHT 10000 +#define BASEWIDTH 320 +#define BASEHEIGHT 200 + +#define MODE_WINDOWED 0 +#define NO_MODE (MODE_WINDOWED - 1) +#define MODE_FULLSCREEN_DEFAULT (MODE_WINDOWED + 1) + +typedef struct { + modestate_t type; + int width; + int height; + int modenum; + int dib; + int fullscreen; + int bpp; + int refreshrate; //johnfitz + int halfscreen; + char modedesc[17]; +} vmode_t; + +typedef struct { + int width; + int height; +} lmode_t; + +lmode_t lowresmodes[] = { + {320, 200}, + {320, 240}, + {400, 300}, + {512, 384}, +}; + +const char *gl_vendor; +const char *gl_renderer; +const char *gl_version; +const char *gl_extensions; +const char *wgl_extensions; //johnfitz + +qboolean DDActive; +qboolean scr_skipupdate; + +static vmode_t modelist[MAX_MODE_LIST]; +static int nummodes; +static vmode_t *pcurrentmode; +static vmode_t badmode; + +static DEVMODE gdevmode; +static qboolean vid_initialized = false; +static qboolean windowed, leavecurrentmode; +static qboolean vid_canalttab = false; +static qboolean vid_wassuspended = false; +static int windowed_mouse; +extern qboolean mouseactive; // from in_win.c +static HICON hIcon; + +int DIBWidth, DIBHeight; +RECT WindowRect; +DWORD WindowStyle, ExWindowStyle; + +HWND mainwindow, dibwindow; + +int vid_modenum = NO_MODE; +int vid_realmode; +int vid_default = MODE_WINDOWED; +static int windowed_default; +unsigned char vid_curpal[256*3]; +static qboolean fullsbardraw = false; + +HDC maindc; + +glvert_t glv; + +HWND WINAPI InitializeWindow (HINSTANCE hInstance, int nCmdShow); + +viddef_t vid; // global video state + +//unsigned short d_8to16table[256]; //johnfitz -- never used +//unsigned char d_15to8table[65536]; //johnfitz -- never used + +modestate_t modestate = MS_UNINIT; + +void VID_Menu_Init (void); //johnfitz +void VID_Menu_f (void); //johnfitz +void VID_MenuDraw (void); +void VID_MenuKey (int key); + +LONG WINAPI MainWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); +void AppActivate(BOOL fActive, BOOL minimize); +char *VID_GetModeDescription (int mode); +void ClearAllStates (void); +void VID_UpdateWindowStatus (void); +void GL_Init (void); + +PROC glArrayElementEXT; +PROC glColorPointerEXT; +PROC glTexCoordPointerEXT; +PROC glVertexPointerEXT; + +typedef void (APIENTRY *lp3DFXFUNC) (int, int, int, int, int, const void*); + +extern MTEXCOORDFUNC GL_MTexCoord2fFunc = NULL; //johnfitz +extern SELECTTEXFUNC GL_SelectTextureFunc = NULL; //johnfitz + +typedef BOOL (APIENTRY * SETSWAPFUNC) (int); //johnfitz +typedef int (APIENTRY * GETSWAPFUNC) (void); //johnfitz +SETSWAPFUNC wglSwapIntervalEXT = NULL; //johnfitz +GETSWAPFUNC wglGetSwapIntervalEXT = NULL; //johnfitz + +qboolean isPermedia = false; +qboolean isIntelVideo = false; //johnfitz -- intel video workarounds from Baker +qboolean gl_mtexable = false; +qboolean gl_texture_env_combine = false; //johnfitz +qboolean gl_texture_env_add = false; //johnfitz +qboolean gl_swap_control = false; //johnfitz +qboolean gl_anisotropy_able = false; //johnfitz +float gl_max_anisotropy; //johnfitz + +int gl_stencilbits; //johnfitz + +qboolean vid_locked = false; //johnfitz + +void GL_SetupState (void); //johnfitz + +//==================================== + +//johnfitz -- new cvars +cvar_t vid_fullscreen = {"vid_fullscreen", "1", true}; +cvar_t vid_width = {"vid_width", "640", true}; +cvar_t vid_height = {"vid_height", "480", true}; +cvar_t vid_bpp = {"vid_bpp", "16", true}; +cvar_t vid_refreshrate = {"vid_refreshrate", "60", true}; +cvar_t vid_vsync = {"vid_vsync", "0", true}; +//johnfitz + +cvar_t _windowed_mouse = {"_windowed_mouse","1", true}; +cvar_t vid_gamma = {"gamma", "1", true}; //johnfitz -- moved here from view.c + +int window_center_x, window_center_y, window_x, window_y, window_width, window_height; +RECT window_rect; + + + +//========================================================================== +// +// HARDWARE GAMMA -- johnfitz +// +//========================================================================== + +typedef int (WINAPI * RAMPFUNC)(); +RAMPFUNC wglGetDeviceGammaRamp3DFX; +RAMPFUNC wglSetDeviceGammaRamp3DFX; + +unsigned short vid_gammaramp[768]; +unsigned short vid_systemgammaramp[768]; //to restore gamma on exit +unsigned short vid_3dfxgammaramp[768]; //to restore gamma on exit +int vid_gammaworks, vid_3dfxgamma; + +/* +================ +VID_Gamma_SetGamma -- apply gamma correction +================ +*/ +void VID_Gamma_SetGamma (void) +{ + if (maindc) + { + if (vid_gammaworks) + if (SetDeviceGammaRamp(maindc, vid_gammaramp) == false) + Con_Printf ("VID_Gamma_SetGamma: failed on SetDeviceGammaRamp\n"); + + if (vid_3dfxgamma) + if (wglSetDeviceGammaRamp3DFX(maindc, vid_gammaramp) == false) + Con_Printf ("VID_Gamma_SetGamma: failed on wglSetDeviceGammaRamp3DFX\n"); + } +} + +/* +================ +VID_Gamma_Restore -- restore system gamma +================ +*/ +void VID_Gamma_Restore (void) +{ + if (maindc) + { + if (vid_gammaworks) + if (SetDeviceGammaRamp(maindc, vid_systemgammaramp) == false) + Con_Printf ("VID_Gamma_Restore: failed on SetDeviceGammaRamp\n"); + + if (vid_3dfxgamma) + if (wglSetDeviceGammaRamp3DFX(maindc, vid_3dfxgammaramp) == false) + Con_Printf ("VID_Gamma_Restore: failed on wglSetDeviceGammaRamp3DFX\n"); + } +} + +/* +================ +VID_Gamma_Shutdown -- called on exit +================ +*/ +void VID_Gamma_Shutdown (void) +{ + VID_Gamma_Restore (); +} + +/* +================ +VID_Gamma_f -- callback when the cvar changes +================ +*/ +void VID_Gamma_f (void) +{ + static float oldgamma; + int i; + + if (vid_gamma.value == oldgamma) + return; + + oldgamma = vid_gamma.value; + + for (i=0; i<256; i++) + vid_gammaramp[i] = vid_gammaramp[i+256] = vid_gammaramp[i+512] = + CLAMP(0, (int) (255 * pow ((i+0.5)/255.5, vid_gamma.value) + 0.5), 255) << 8; + + VID_Gamma_SetGamma (); +} + +/* +================ +VID_Gamma_Init -- call on init +================ +*/ +void VID_Gamma_Init (void) +{ + vid_gammaworks = vid_3dfxgamma = false; + + if (strstr(gl_extensions, "WGL_3DFX_gamma_control")) + { + wglSetDeviceGammaRamp3DFX = (RAMPFUNC) wglGetProcAddress("wglSetDeviceGammaRamp3DFX"); + wglGetDeviceGammaRamp3DFX = (RAMPFUNC) wglGetProcAddress("wglGetDeviceGammaRamp3DFX"); + + if (wglGetDeviceGammaRamp3DFX (maindc, vid_3dfxgammaramp)) + vid_3dfxgamma = true; + + Con_Printf ("WGL_3DFX_gamma_control found\n"); + } + + if (GetDeviceGammaRamp (maindc, vid_systemgammaramp)) + vid_gammaworks = true; + + Cvar_RegisterVariable (&vid_gamma, VID_Gamma_f); +} + +//========================================================================== + +// direct draw software compatability stuff + +void VID_HandlePause (qboolean pause) +{ +} + +void VID_ForceLockState (int lk) +{ +} + +void VID_LockBuffer (void) +{ +} + +void VID_UnlockBuffer (void) +{ +} + +int VID_ForceUnlockedAndReturnState (void) +{ + return 0; +} + +void D_BeginDirectRect (int x, int y, byte *pbitmap, int width, int height) +{ +} + +void D_EndDirectRect (int x, int y, int width, int height) +{ +} + +/* +================ +CenterWindow +================ +*/ +void CenterWindow(HWND hWndCenter, int width, int height, BOOL lefttopjustify) +{ + RECT rect; + int CenterX, CenterY; + + CenterX = (GetSystemMetrics(SM_CXSCREEN) - width) / 2; + CenterY = (GetSystemMetrics(SM_CYSCREEN) - height) / 2; + if (CenterX > CenterY*2) + CenterX >>= 1; // dual screens + CenterX = (CenterX < 0) ? 0: CenterX; + CenterY = (CenterY < 0) ? 0: CenterY; + SetWindowPos (hWndCenter, NULL, CenterX, CenterY, 0, 0, + SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW | SWP_DRAWFRAME); +} + +/* +================ +VID_SetWindowedMode +================ +*/ +qboolean VID_SetWindowedMode (int modenum) +{ + HDC hdc; + int lastmodestate, width, height; + RECT rect; + + lastmodestate = modestate; + + WindowRect.top = WindowRect.left = 0; + + WindowRect.right = modelist[modenum].width; + WindowRect.bottom = modelist[modenum].height; + + DIBWidth = modelist[modenum].width; + DIBHeight = modelist[modenum].height; + + //johnfitz -- if width and height match desktop size, do aguirRe's trick of making the window have no titlebar/borders + if (DIBWidth == GetSystemMetrics(SM_CXSCREEN) && DIBHeight == GetSystemMetrics(SM_CYSCREEN)) + WindowStyle = WS_POPUP; // Window covers entire screen; no caption, borders etc + else + WindowStyle = WS_OVERLAPPED | WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX; + //johnfitz + ExWindowStyle = 0; + + rect = WindowRect; + AdjustWindowRectEx(&rect, WindowStyle, FALSE, 0); + + width = rect.right - rect.left; + height = rect.bottom - rect.top; + + // Create the DIB window + dibwindow = CreateWindowEx ( + ExWindowStyle, + "FitzQuake", //johnfitz -- was "WinQuake" + "FitzQuake", //johnfitz -- was "GLQuake" + WindowStyle, + rect.left, rect.top, + width, + height, + NULL, + NULL, + global_hInstance, + NULL); + + if (!dibwindow) + Sys_Error ("Couldn't create DIB window"); + + // Center and show the DIB window + CenterWindow(dibwindow, WindowRect.right - WindowRect.left, + WindowRect.bottom - WindowRect.top, false); + + ShowWindow (dibwindow, SW_SHOWDEFAULT); + UpdateWindow (dibwindow); + + modestate = MS_WINDOWED; + +// because we have set the background brush for the window to NULL +// (to avoid flickering when re-sizing the window on the desktop), +// we clear the window to black when created, otherwise it will be +// empty while Quake starts up. + hdc = GetDC(dibwindow); + PatBlt(hdc,0,0,WindowRect.right,WindowRect.bottom,BLACKNESS); + ReleaseDC(dibwindow, hdc); + + //johnfitz -- stuff + vid.width = modelist[modenum].width; + vid.height = modelist[modenum].height; + vid.conwidth = vid.width & 0xFFFFFFF8; + vid.conheight = vid.conwidth * vid.height / vid.width; + //johnfitz + + vid.numpages = 2; + + mainwindow = dibwindow; + + SendMessage (mainwindow, WM_SETICON, (WPARAM)TRUE, (LPARAM)hIcon); + SendMessage (mainwindow, WM_SETICON, (WPARAM)FALSE, (LPARAM)hIcon); + + return true; +} + +/* +================ +VID_SetFullDIBMode +================ +*/ +qboolean VID_SetFullDIBMode (int modenum) +{ + HDC hdc; + int lastmodestate, width, height; + RECT rect; + + if (!leavecurrentmode) + { + gdevmode.dmFields = DM_BITSPERPEL | + DM_PELSWIDTH | + DM_PELSHEIGHT | + DM_DISPLAYFREQUENCY; //johnfitz -- refreshrate + gdevmode.dmBitsPerPel = modelist[modenum].bpp; + gdevmode.dmPelsWidth = modelist[modenum].width << modelist[modenum].halfscreen; + gdevmode.dmPelsHeight = modelist[modenum].height; + gdevmode.dmDisplayFrequency = modelist[modenum].refreshrate; //johnfitz -- refreshrate + gdevmode.dmSize = sizeof (gdevmode); + + if (ChangeDisplaySettings (&gdevmode, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL) + Sys_Error ("Couldn't set fullscreen DIB mode"); + } + + lastmodestate = modestate; + modestate = MS_FULLDIB; + + WindowRect.top = WindowRect.left = 0; + + WindowRect.right = modelist[modenum].width; + WindowRect.bottom = modelist[modenum].height; + + DIBWidth = modelist[modenum].width; + DIBHeight = modelist[modenum].height; + + WindowStyle = WS_POPUP; + ExWindowStyle = 0; + + rect = WindowRect; + AdjustWindowRectEx(&rect, WindowStyle, FALSE, 0); + + width = rect.right - rect.left; + height = rect.bottom - rect.top; + + // Create the DIB window + dibwindow = CreateWindowEx ( + ExWindowStyle, + "FitzQuake", //johnfitz -- was "WinQuake" + "FitzQuake", //johnfitz -- was "GLQuake" + WindowStyle, + rect.left, rect.top, + width, + height, + NULL, + NULL, + global_hInstance, + NULL); + + if (!dibwindow) + Sys_Error ("Couldn't create DIB window"); + + ShowWindow (dibwindow, SW_SHOWDEFAULT); + UpdateWindow (dibwindow); + +// Because we have set the background brush for the window to NULL +// (to avoid flickering when re-sizing the window on the desktop), we +// clear the window to black when created, otherwise it will be +// empty while Quake starts up. + hdc = GetDC(dibwindow); + PatBlt(hdc,0,0,WindowRect.right,WindowRect.bottom,BLACKNESS); + ReleaseDC(dibwindow, hdc); + + //johnfitz -- stuff + vid.width = modelist[modenum].width; + vid.height = modelist[modenum].height; + vid.conwidth = vid.width & 0xFFFFFFF8; + vid.conheight = vid.conwidth * vid.height / vid.width; + //johnfitz + + vid.numpages = 2; + +// needed because we're not getting WM_MOVE messages fullscreen on NT + window_x = 0; + window_y = 0; + + mainwindow = dibwindow; + + SendMessage (mainwindow, WM_SETICON, (WPARAM)TRUE, (LPARAM)hIcon); + SendMessage (mainwindow, WM_SETICON, (WPARAM)FALSE, (LPARAM)hIcon); + + return true; +} + +/* +================ +VID_SetMode +================ +*/ +int VID_SetMode (int modenum) +{ + int original_mode, temp; + qboolean stat; + MSG msg; + HDC hdc; + + if ((windowed && (modenum != 0)) || + (!windowed && (modenum < 1)) || + (!windowed && (modenum >= nummodes))) + { + Sys_Error ("Bad video mode\n"); + } + +// so Con_Printfs don't mess us up by forcing vid and snd updates + temp = scr_disabled_for_loading; + scr_disabled_for_loading = true; + + CDAudio_Pause (); + + if (vid_modenum == NO_MODE) + original_mode = windowed_default; + else + original_mode = vid_modenum; + + // Set either the fullscreen or windowed mode + if (modelist[modenum].type == MS_WINDOWED) + { + if (_windowed_mouse.value && key_dest == key_game) + { + stat = VID_SetWindowedMode(modenum); + IN_ActivateMouse (); + IN_HideMouse (); + } + else + { + IN_DeactivateMouse (); + IN_ShowMouse (); + stat = VID_SetWindowedMode(modenum); + } + } + else if (modelist[modenum].type == MS_FULLDIB) + { + stat = VID_SetFullDIBMode(modenum); + IN_ActivateMouse (); + IN_HideMouse (); + } + else + { + Sys_Error ("VID_SetMode: Bad mode type in modelist"); + } + + //johnfitz -- re-initialize dinput becuase it's tied to the "mainwindow" object + if (COM_CheckParm ("-dinput")) + IN_InitDInput (); + //johnfitz + + window_width = DIBWidth; + window_height = DIBHeight; + VID_UpdateWindowStatus (); + + CDAudio_Resume (); + scr_disabled_for_loading = temp; + + if (!stat) + { + Sys_Error ("Couldn't set video mode"); + } + +// now we try to make sure we get the focus on the mode switch, because +// sometimes in some systems we don't. We grab the foreground, then +// finish setting up, pump all our messages, and sleep for a little while +// to let messages finish bouncing around the system, then we put +// ourselves at the top of the z order, then grab the foreground again, +// Who knows if it helps, but it probably doesn't hurt + SetForegroundWindow (mainwindow); + vid_modenum = modenum; + + while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) + { + TranslateMessage (&msg); + DispatchMessage (&msg); + } + + Sleep (100); + + SetWindowPos (mainwindow, HWND_TOP, 0, 0, 0, 0, + SWP_DRAWFRAME | SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW | + SWP_NOCOPYBITS); + + SetForegroundWindow (mainwindow); + +// fix the leftover Alt from any Alt-Tab or the like that switched us away + ClearAllStates (); + + if (!msg_suppress_1) + Con_SafePrintf ("Video mode %s initialized\n", VID_GetModeDescription (vid_modenum)); + + vid.recalc_refdef = 1; + + return true; +} + +/* +=============== +VID_Vsync_f -- johnfitz +=============== +*/ +void VID_Vsync_f (void) +{ + if (gl_swap_control) + { + if (vid_vsync.value) + { + if (!wglSwapIntervalEXT(1)) + Con_Printf ("VID_Vsync_f: failed on wglSwapIntervalEXT\n"); + } + else + { + if (!wglSwapIntervalEXT(0)) + Con_Printf ("VID_Vsync_f: failed on wglSwapIntervalEXT\n"); + } + } +} + +/* +=================== +VID_Restart -- johnfitz -- change video modes on the fly +=================== +*/ +void VID_Restart (void) +{ + HDC hdc; + HGLRC hrc; + int i; + qboolean mode_changed = false; + vmode_t oldmode; + + if (vid_locked) + return; + +// +// check cvars against current mode +// + if (vid_fullscreen.value) + { + if (modelist[vid_default].type == MS_WINDOWED) + mode_changed = true; + else if (modelist[vid_default].bpp != (int)vid_bpp.value) + mode_changed = true; + else if (modelist[vid_default].refreshrate != (int)vid_refreshrate.value) + mode_changed = true; + } + else + if (modelist[vid_default].type != MS_WINDOWED) + mode_changed = true; + + if (modelist[vid_default].width != (int)vid_width.value || + modelist[vid_default].height != (int)vid_height.value) + mode_changed = true; + + if (mode_changed) + { +// +// decide which mode to set +// + oldmode = modelist[vid_default]; + + if (vid_fullscreen.value) + { + for (i=1; i 0) ? (int)scr_conwidth.value : (scr_conscale.value > 0) ? (int)(vid.width/scr_conscale.value) : vid.width; + vid.conwidth = CLAMP (320, vid.conwidth, vid.width); + vid.conwidth &= 0xFFFFFFF8; + vid.conheight = vid.conwidth * vid.height / vid.width; + } +// +// keep cvars in line with actual mode +// + Cvar_Set ("vid_width", va("%i", modelist[vid_default].width)); + Cvar_Set ("vid_height", va("%i", modelist[vid_default].height)); + Cvar_Set ("vid_bpp", va("%i", modelist[vid_default].bpp)); + Cvar_Set ("vid_refreshrate", va("%i", modelist[vid_default].refreshrate)); + Cvar_Set ("vid_fullscreen", (windowed) ? "0" : "1"); +} + +/* +================ +VID_Test -- johnfitz -- like vid_restart, but asks for confirmation after switching modes +================ +*/ +void VID_Test (void) +{ + vmode_t oldmode; + qboolean mode_changed = false; + + if (vid_locked) + return; +// +// check cvars against current mode +// + if (vid_fullscreen.value) + { + if (modelist[vid_default].type == MS_WINDOWED) + mode_changed = true; + else if (modelist[vid_default].bpp != (int)vid_bpp.value) + mode_changed = true; + else if (modelist[vid_default].refreshrate != (int)vid_refreshrate.value) + mode_changed = true; + } + else + if (modelist[vid_default].type != MS_WINDOWED) + mode_changed = true; + + if (modelist[vid_default].width != (int)vid_width.value || + modelist[vid_default].height != (int)vid_height.value) + mode_changed = true; + + if (!mode_changed) + return; +// +// now try the switch +// + oldmode = modelist[vid_default]; + + VID_Restart (); + + //pop up confirmation dialoge + if (!SCR_ModalMessage("Would you like to keep this\nvideo mode? (y/n)\n", 5.0f)) + { + //revert cvars and mode + Cvar_Set ("vid_width", va("%i", oldmode.width)); + Cvar_Set ("vid_height", va("%i", oldmode.height)); + Cvar_Set ("vid_bpp", va("%i", oldmode.bpp)); + Cvar_Set ("vid_refreshrate", va("%i", oldmode.refreshrate)); + Cvar_Set ("vid_fullscreen", (oldmode.type == MS_WINDOWED) ? "0" : "1"); + VID_Restart (); + } +} + +/* +================ +VID_Unlock -- johnfitz +================ +*/ +void VID_Unlock (void) +{ + vid_locked = false; + + //sync up cvars in case they were changed during the lock + Cvar_Set ("vid_width", va("%i", modelist[vid_default].width)); + Cvar_Set ("vid_height", va("%i", modelist[vid_default].height)); + Cvar_Set ("vid_bpp", va("%i", modelist[vid_default].bpp)); + Cvar_Set ("vid_refreshrate", va("%i", modelist[vid_default].refreshrate)); + Cvar_Set ("vid_fullscreen", (windowed) ? "0" : "1"); +} + +/* +================ +VID_UpdateWindowStatus +================ +*/ +void VID_UpdateWindowStatus (void) +{ + window_rect.left = window_x; + window_rect.top = window_y; + window_rect.right = window_x + window_width; + window_rect.bottom = window_y + window_height; + window_center_x = (window_rect.left + window_rect.right) / 2; + window_center_y = (window_rect.top + window_rect.bottom) / 2; + + IN_UpdateClipCursor (); +} + +//============================================================================== +// +// OPENGL STUFF +// +//============================================================================== + +/* +=============== +GL_MakeNiceExtensionsList -- johnfitz +=============== +*/ +char *GL_MakeNiceExtensionsList (const char *in) +{ + char *copy, *token, *out; + int i, count; + + //each space will be replaced by 4 chars, so count the spaces before we malloc + for (i = 0, count = 1; i < strlen(in); i++) + if (in[i] == ' ') + count++; + out = Z_Malloc (strlen(in) + count*3 + 1); //usually about 1-2k + out[0] = 0; + + copy = Z_Malloc(strlen(in) + 1); + strcpy(copy, in); + + for (token = strtok(copy, " "); token; token = strtok(NULL, " ")) + { + strcat(out, "\n "); + strcat(out, token); + } + + Z_Free (copy); + return out; +} + +/* +=============== +GL_Info_f -- johnfitz +=============== +*/ +void GL_Info_f (void) +{ + static char *gl_extensions_nice = NULL; + static char *wgl_extensions_nice = NULL; + + if (!gl_extensions_nice) + gl_extensions_nice = GL_MakeNiceExtensionsList (gl_extensions); + + if (!wgl_extensions_nice) + wgl_extensions_nice = GL_MakeNiceExtensionsList (wgl_extensions); + + Con_SafePrintf ("GL_VENDOR: %s\n", gl_vendor); + Con_SafePrintf ("GL_RENDERER: %s\n", gl_renderer); + Con_SafePrintf ("GL_VERSION: %s\n", gl_version); + Con_Printf ("GL_EXTENSIONS: %s\n", gl_extensions_nice); + Con_Printf ("WGL_EXTENSIONS: %s\n", wgl_extensions_nice); +} + +/* +=============== +CheckArrayExtensions +=============== +*/ +void CheckArrayExtensions (void) +{ + char *tmp; + + /* check for texture extension */ + tmp = (unsigned char *)glGetString(GL_EXTENSIONS); + while (*tmp) + { + if (strncmp((const char*)tmp, "GL_EXT_vertex_array", strlen("GL_EXT_vertex_array")) == 0) + { + if ( +((glArrayElementEXT = wglGetProcAddress("glArrayElementEXT")) == NULL) || +((glColorPointerEXT = wglGetProcAddress("glColorPointerEXT")) == NULL) || +((glTexCoordPointerEXT = wglGetProcAddress("glTexCoordPointerEXT")) == NULL) || +((glVertexPointerEXT = wglGetProcAddress("glVertexPointerEXT")) == NULL) ) + { + Sys_Error ("GetProcAddress for vertex extension failed"); + return; + } + return; + } + tmp++; + } + + Sys_Error ("Vertex array extension not present"); +} + +/* +=============== +GL_CheckExtensions -- johnfitz +=============== +*/ +void GL_CheckExtensions (void) +{ + // + // multitexture + // + if (COM_CheckParm("-nomtex")) + Con_Warning ("Mutitexture disabled at command line\n"); + else + if (strstr(gl_extensions, "GL_ARB_multitexture")) + { + GL_MTexCoord2fFunc = (void *) wglGetProcAddress("glMultiTexCoord2fARB"); + GL_SelectTextureFunc = (void *) wglGetProcAddress("glActiveTextureARB"); + if (GL_MTexCoord2fFunc && GL_SelectTextureFunc) + { + Con_Printf("FOUND: ARB_multitexture\n"); + TEXTURE0 = GL_TEXTURE0_ARB; + TEXTURE1 = GL_TEXTURE1_ARB; + gl_mtexable = true; + } + else + Con_Warning ("multitexture not supported (wglGetProcAddress failed)\n"); + } + else + if (strstr(gl_extensions, "GL_SGIS_multitexture")) + { + GL_MTexCoord2fFunc = (void *) wglGetProcAddress("glMTexCoord2fSGIS"); + GL_SelectTextureFunc = (void *) wglGetProcAddress("glSelectTextureSGIS"); + if (GL_MTexCoord2fFunc && GL_SelectTextureFunc) + { + Con_Printf("FOUND: SGIS_multitexture\n"); + TEXTURE0 = TEXTURE0_SGIS; + TEXTURE1 = TEXTURE1_SGIS; + gl_mtexable = true; + } + else + Con_Warning ("multitexture not supported (wglGetProcAddress failed)\n"); + + } + else + Con_Warning ("multitexture not supported (extension not found)\n"); + // + // texture_env_combine + // + if (COM_CheckParm("-nocombine")) + Con_Warning ("texture_env_combine disabled at command line\n"); + else + if (strstr(gl_extensions, "GL_ARB_texture_env_combine")) + { + Con_Printf("FOUND: ARB_texture_env_combine\n"); + gl_texture_env_combine = true; + } + else + if (strstr(gl_extensions, "GL_EXT_texture_env_combine")) + { + Con_Printf("FOUND: EXT_texture_env_combine\n"); + gl_texture_env_combine = true; + } + else + Con_Warning ("texture_env_combine not supported\n"); + // + // texture_env_add + // + if (COM_CheckParm("-noadd")) + Con_Warning ("texture_env_add disabled at command line\n"); + else + if (strstr(gl_extensions, "GL_ARB_texture_env_add")) + { + Con_Printf("FOUND: ARB_texture_env_add\n"); + gl_texture_env_add = true; + } + else + if (strstr(gl_extensions, "GL_EXT_texture_env_add")) + { + Con_Printf("FOUND: EXT_texture_env_add\n"); + gl_texture_env_add = true; + } + else + Con_Warning ("texture_env_add not supported\n"); + + // + // swap control + // + if (strstr(gl_extensions, "GL_EXT_swap_control") || strstr(wgl_extensions, "WGL_EXT_swap_control")) + { + wglSwapIntervalEXT = (SETSWAPFUNC) wglGetProcAddress("wglSwapIntervalEXT"); + wglGetSwapIntervalEXT = (GETSWAPFUNC) wglGetProcAddress("wglGetSwapIntervalEXT"); + + if (wglSwapIntervalEXT && wglGetSwapIntervalEXT) + { + if (!wglSwapIntervalEXT(0)) + Con_Warning ("vertical sync not supported (wglSwapIntervalEXT failed)\n"); + else if (wglGetSwapIntervalEXT() == -1) + Con_Warning ("vertical sync not supported (swap interval is -1.) Make sure you don't have vertical sync disabled in your driver settings.\n"); + else + { + Con_Printf("FOUND: WGL_EXT_swap_control\n"); + gl_swap_control = true; + } + } + else + Con_Warning ("vertical sync not supported (wglGetProcAddress failed)\n"); + } + else + Con_Warning ("vertical sync not supported (extension not found)\n"); + + // + // anisotropic filtering + // + if (strstr(gl_extensions, "GL_EXT_texture_filter_anisotropic")) + { + float test1,test2; + int tex; + + // test to make sure we really have control over it + // 1.0 and 2.0 should always be legal values + glGenTextures(1, &tex); + glBindTexture (GL_TEXTURE_2D, tex); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); + glGetTexParameterfv (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, &test1); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 2.0f); + glGetTexParameterfv (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, &test2); + glDeleteTextures(1, &tex); + + if (test1 == 1 && test2 == 2) + { + Con_Printf("FOUND: EXT_texture_filter_anisotropic\n"); + gl_anisotropy_able = true; + } + else + Con_Warning ("anisotropic filtering locked by driver. Current driver setting is %f\n", test1); + + //get max value either way, so the menu and stuff know it + glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &gl_max_anisotropy); + } + else + Con_Warning ("texture_filter_anisotropic not supported\n"); +} + +/* +=============== +GetWGLExtensions -- johnfitz +=============== +*/ +void GetWGLExtensions (void) +{ + const char *(*wglGetExtensionsStringARB) (HDC hdc); + const char *(*wglGetExtensionsStringEXT) (); + + if (wglGetExtensionsStringARB = (void *) wglGetProcAddress ("wglGetExtensionsStringARB")) + wgl_extensions = wglGetExtensionsStringARB (maindc); + else if (wglGetExtensionsStringEXT = (void *) wglGetProcAddress ("wglGetExtensionsStringEXT")) + wgl_extensions = wglGetExtensionsStringEXT (); + else + wgl_extensions = ""; +} + +/* +=============== +GL_SetupState -- johnfitz + +does all the stuff from GL_Init that needs to be done every time a new GL render context is created +GL_Init will still do the stuff that only needs to be done once +=============== +*/ +void GL_SetupState (void) +{ + glClearColor (0.15,0.15,0.15,0); //johnfitz -- originally 1,0,0,0 + glCullFace(GL_BACK); //johnfitz -- glquake used CCW with backwards culling -- let's do it right + glFrontFace(GL_CW); //johnfitz -- glquake used CCW with backwards culling -- let's do it right + glEnable(GL_TEXTURE_2D); + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GREATER, 0.666); + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + glShadeModel (GL_FLAT); + glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); //johnfitz + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glDepthRange (0, 1); //johnfitz -- moved here becuase gl_ztrick is gone. + glDepthFunc (GL_LEQUAL); //johnfitz -- moved here becuase gl_ztrick is gone. +} + +/* +=============== +GL_Init +=============== +*/ +void GL_Init (void) +{ + gl_vendor = glGetString (GL_VENDOR); + gl_renderer = glGetString (GL_RENDERER); + gl_version = glGetString (GL_VERSION); + gl_extensions = glGetString (GL_EXTENSIONS); + + GetWGLExtensions (); //johnfitz + GL_CheckExtensions (); //johnfitz + + Cmd_AddCommand ("gl_info", GL_Info_f); //johnfitz + + Cvar_RegisterVariable (&vid_vsync, VID_Vsync_f); //johnfitz + + if (strnicmp(gl_renderer,"PowerVR",7)==0) + fullsbardraw = true; + + if (strnicmp(gl_renderer,"Permedia",8)==0) + isPermedia = true; + + //johnfitz -- intel video workarounds from Baker + if (!strcmp(gl_vendor, "Intel")) + { + Con_Printf ("Intel Display Adapter detected\n"); + isIntelVideo = true; + } + //johnfitz + +#if 0 + //johnfitz -- confirm presence of stencil buffer + glGetIntegerv(GL_STENCIL_BITS, &gl_stencilbits); + if(!gl_stencilbits) + Con_Warning ("Could not create stencil buffer\n"); + else + Con_Printf ("%i bit stencil buffer\n", gl_stencilbits); +#endif + + GL_SetupState (); //johnfitz +} + +/* +================= +GL_BeginRendering -- sets values of glx, gly, glwidth, glheight +================= +*/ +void GL_BeginRendering (int *x, int *y, int *width, int *height) +{ + *x = *y = 0; + *width = WindowRect.right - WindowRect.left; + *height = WindowRect.bottom - WindowRect.top; +} + +/* +================= +GL_EndRendering +================= +*/ +void GL_EndRendering (void) +{ + if (!scr_skipupdate || block_drawing) + SwapBuffers(maindc); + +// handle the mouse state when windowed if that's changed + if (modestate == MS_WINDOWED) + { + if (!_windowed_mouse.value) { + if (windowed_mouse) { + IN_DeactivateMouse (); + IN_ShowMouse (); + windowed_mouse = false; + } + } else { + windowed_mouse = true; + if (key_dest == key_game && !mouseactive && ActiveApp) { + IN_ActivateMouse (); + IN_HideMouse (); + } else if (mouseactive && key_dest != key_game) { + IN_DeactivateMouse (); + IN_ShowMouse (); + } + } + } + if (fullsbardraw) + Sbar_Changed(); +} + +void VID_SetDefaultMode (void) +{ + IN_DeactivateMouse (); +} + + +void VID_Shutdown (void) +{ + HGLRC hRC; + HDC hDC; + + if (vid_initialized) + { + vid_canalttab = false; + hRC = wglGetCurrentContext(); + hDC = wglGetCurrentDC(); + + wglMakeCurrent(NULL, NULL); + + if (hRC) + wglDeleteContext(hRC); + + VID_Gamma_Shutdown (); //johnfitz + + if (hDC && dibwindow) + ReleaseDC(dibwindow, hDC); + + if (modestate == MS_FULLDIB) + ChangeDisplaySettings (NULL, 0); + + if (maindc && dibwindow) + ReleaseDC (dibwindow, maindc); + + AppActivate(false, false); + } +} + +//========================================================================== + + +BOOL bSetupPixelFormat(HDC hDC) +{ + static PIXELFORMATDESCRIPTOR pfd = { + sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd + 1, // version number + PFD_DRAW_TO_WINDOW | // support window + PFD_SUPPORT_OPENGL | // support OpenGL + PFD_DOUBLEBUFFER, // double buffered + PFD_TYPE_RGBA, // RGBA type + 24, // 24-bit color depth + 0, 0, 0, 0, 0, 0, // color bits ignored + 0, // no alpha buffer + 0, // shift bit ignored + 0, // no accumulation buffer + 0, 0, 0, 0, // accum bits ignored + 32, // 32-bit z-buffer + 0, // no stencil buffer + 0, // no auxiliary buffer + PFD_MAIN_PLANE, // main layer + 0, // reserved + 0, 0, 0 // layer masks ignored + }; + int pixelformat; + PIXELFORMATDESCRIPTOR test; //johnfitz + + if ( (pixelformat = ChoosePixelFormat(hDC, &pfd)) == 0 ) + { + MessageBox(NULL, "ChoosePixelFormat failed", "Error", MB_OK); + return FALSE; + } + + DescribePixelFormat(hDC, pixelformat, sizeof(PIXELFORMATDESCRIPTOR), &test); //johnfitz + + if (SetPixelFormat(hDC, pixelformat, &pfd) == FALSE) + { + MessageBox(NULL, "SetPixelFormat failed", "Error", MB_OK); + return FALSE; + } + + return TRUE; +} + + + +byte scantokey[128] = + { +// 0 1 2 3 4 5 6 7 +// 8 9 A B C D E F + 0 , 27, '1', '2', '3', '4', '5', '6', + '7', '8', '9', '0', '-', '=', K_BACKSPACE, 9, // 0 + 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', + 'o', 'p', '[', ']', 13 , K_CTRL,'a', 's', // 1 + 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', + '\'' , '`', K_SHIFT,'\\', 'z', 'x', 'c', 'v', // 2 + 'b', 'n', 'm', ',', '.', '/', K_SHIFT,'*', + K_ALT,' ', 0 , K_F1, K_F2, K_F3, K_F4, K_F5, // 3 + K_F6, K_F7, K_F8, K_F9, K_F10, K_PAUSE , 0 , K_HOME, + K_UPARROW,K_PGUP,'-',K_LEFTARROW,'5',K_RIGHTARROW,'+',K_END, //4 + K_DOWNARROW,K_PGDN,K_INS,K_DEL,0,0, 0, K_F11, + K_F12,0 , 0 , 0 , 0 , 0 , 0 , 0, // 5 + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, // 6 + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 // 7 + }; + +byte shiftscantokey[128] = + { +// 0 1 2 3 4 5 6 7 +// 8 9 A B C D E F + 0 , 27, '!', '@', '#', '$', '%', '^', + '&', '*', '(', ')', '_', '+', K_BACKSPACE, 9, // 0 + 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', + 'O', 'P', '{', '}', 13 , K_CTRL,'A', 'S', // 1 + 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':', + '"' , '~', K_SHIFT,'|', 'Z', 'X', 'C', 'V', // 2 + 'B', 'N', 'M', '<', '>', '?', K_SHIFT,'*', + K_ALT,' ', 0 , K_F1, K_F2, K_F3, K_F4, K_F5, // 3 + K_F6, K_F7, K_F8, K_F9, K_F10, K_PAUSE , 0 , K_HOME, + K_UPARROW,K_PGUP,'_',K_LEFTARROW,'%',K_RIGHTARROW,'+',K_END, //4 + K_DOWNARROW,K_PGDN,K_INS,K_DEL,0,0, 0, K_F11, + K_F12,0 , 0 , 0 , 0 , 0 , 0 , 0, // 5 + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, // 6 + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0, + 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 // 7 + }; + + +/* +======= +MapKey + +Map from windows to quake keynums +======= +*/ +int MapKey (int key) +{ + /* + key = (key>>16)&255; + if (key > 127) + return 0; + if (scantokey[key] == 0) + Con_DPrintf("key 0x%02x has no translation\n", key); + return scantokey[key]; + */ + + int extended; + extern cvar_t cl_keypad; + + extended = (key >> 24) & 1; + + key = (key>>16)&255; + if (key > 127) + return 0; + + key = scantokey[key]; + + if (cl_keypad.value) { + if (extended) { + switch (key) { + case K_ENTER: return KP_ENTER; + case '/': return KP_SLASH; + case K_PAUSE: return KP_NUMLOCK; + }; + } else { + switch (key) { + case K_HOME: return KP_HOME; + case K_UPARROW: return KP_UPARROW; + case K_PGUP: return KP_PGUP; + case K_LEFTARROW: return KP_LEFTARROW; + case K_RIGHTARROW: return KP_RIGHTARROW; + case K_END: return KP_END; + case K_DOWNARROW: return KP_DOWNARROW; + case K_PGDN: return KP_PGDN; + case K_INS: return KP_INS; + case K_DEL: return KP_DEL; + } + } + } else { + // cl_keypad 0, compatibility mode + switch (key) { + case KP_STAR: return '*'; + case KP_MINUS: return '-'; + case KP_5: return '5'; + case KP_PLUS: return '+'; + } + } + + return key; +} + +/* +=================================================================== + +MAIN WINDOW + +=================================================================== +*/ + +/* +================ +ClearAllStates +================ +*/ +void ClearAllStates (void) +{ + //johnfitz -- moved some code into Key_ClearStates + Key_ClearStates (); + IN_ClearStates (); +} + +void AppActivate(BOOL fActive, BOOL minimize) +/**************************************************************************** +* +* Function: AppActivate +* Parameters: fActive - True if app is activating +* +* Description: If the application is activating, then swap the system +* into SYSPAL_NOSTATIC mode so that our palettes will display +* correctly. +* +****************************************************************************/ +{ + MSG msg; + HDC hdc; + int i, t; + static BOOL sound_active; + + ActiveApp = fActive; + Minimized = minimize; + +// enable/disable sound on focus gain/loss + if (!ActiveApp && sound_active) + { + S_BlockSound (); + sound_active = false; + } + else if (ActiveApp && !sound_active) + { + S_UnblockSound (); + sound_active = true; + } + + if (fActive) + { + if (modestate == MS_FULLDIB) + { + IN_ActivateMouse (); + IN_HideMouse (); + if (vid_canalttab && vid_wassuspended) { + vid_wassuspended = false; + ChangeDisplaySettings (&gdevmode, CDS_FULLSCREEN); + ShowWindow(mainwindow, SW_SHOWNORMAL); + MoveWindow(mainwindow, 0, 0, gdevmode.dmPelsWidth, gdevmode.dmPelsHeight, false); //johnfitz -- alt-tab fix via Baker + } + } + else if ((modestate == MS_WINDOWED) && _windowed_mouse.value && key_dest == key_game) + { + IN_ActivateMouse (); + IN_HideMouse (); + } + VID_Gamma_SetGamma (); //johnfitz + } + + if (!fActive) + { + if (modestate == MS_FULLDIB) + { + IN_DeactivateMouse (); + IN_ShowMouse (); + if (vid_canalttab) { + ChangeDisplaySettings (NULL, 0); + vid_wassuspended = true; + } + } + else if ((modestate == MS_WINDOWED) && _windowed_mouse.value) + { + IN_DeactivateMouse (); + IN_ShowMouse (); + } + VID_Gamma_Restore (); //johnfitz + } +} + + +/* main window procedure */ +LONG WINAPI MainWndProc ( + HWND hWnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + LONG lRet = 1; + int fwKeys, xPos, yPos, fActive, fMinimized, temp; + extern unsigned int uiWheelMessage; + + if ( uMsg == uiWheelMessage ) + uMsg = WM_MOUSEWHEEL; + + switch (uMsg) + { + case WM_KILLFOCUS: + if (modestate == MS_FULLDIB) + ShowWindow(mainwindow, SW_SHOWMINNOACTIVE); + break; + + case WM_CREATE: + break; + + case WM_MOVE: + window_x = (int) LOWORD(lParam); + window_y = (int) HIWORD(lParam); + VID_UpdateWindowStatus (); + break; + + case WM_KEYDOWN: + case WM_SYSKEYDOWN: + Key_Event (MapKey(lParam), true); + break; + + case WM_KEYUP: + case WM_SYSKEYUP: + Key_Event (MapKey(lParam), false); + break; + + case WM_SYSCHAR: + // keep Alt-Space from happening + break; + + // this is complicated because Win32 seems to pack multiple mouse events into + // one update sometimes, so we always check all states and look for events + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + case WM_RBUTTONDOWN: + case WM_RBUTTONUP: + case WM_MBUTTONDOWN: + case WM_MBUTTONUP: + case WM_MOUSEMOVE: + temp = 0; + + if (wParam & MK_LBUTTON) + temp |= 1; + + if (wParam & MK_RBUTTON) + temp |= 2; + + if (wParam & MK_MBUTTON) + temp |= 4; + + IN_MouseEvent (temp); + + break; + + // JACK: This is the mouse wheel with the Intellimouse + // Its delta is either positive or neg, and we generate the proper + // Event. + case WM_MOUSEWHEEL: + if ((short) HIWORD(wParam) > 0) { + Key_Event(K_MWHEELUP, true); + Key_Event(K_MWHEELUP, false); + } else { + Key_Event(K_MWHEELDOWN, true); + Key_Event(K_MWHEELDOWN, false); + } + break; + + case WM_SIZE: + break; + + case WM_CLOSE: + if (MessageBox (mainwindow, "Are you sure you want to quit?", "Confirm Exit", + MB_YESNO | MB_SETFOREGROUND | MB_ICONQUESTION) == IDYES) + { + Sys_Quit (); + } + + break; + + case WM_ACTIVATE: + fActive = LOWORD(wParam); + fMinimized = (BOOL) HIWORD(wParam); + AppActivate(!(fActive == WA_INACTIVE), fMinimized); + + // fix the leftover Alt from any Alt-Tab or the like that switched us away + ClearAllStates (); + + break; + + case WM_DESTROY: + { + if (dibwindow) + DestroyWindow (dibwindow); + + PostQuitMessage (0); + } + break; + + case MM_MCINOTIFY: + lRet = CDAudio_MessageHandler (hWnd, uMsg, wParam, lParam); + break; + + default: + /* pass all unhandled messages to DefWindowProc */ + lRet = DefWindowProc (hWnd, uMsg, wParam, lParam); + break; + } + + /* return 1 if handled message, 0 if not */ + return lRet; +} + +//========================================================================== +// +// COMMANDS +// +//========================================================================== + +/* +================= +VID_NumModes +================= +*/ +int VID_NumModes (void) +{ + return nummodes; +} + + +/* +================= +VID_GetModePtr +================= +*/ +vmode_t *VID_GetModePtr (int modenum) +{ + + if ((modenum >= 0) && (modenum < nummodes)) + return &modelist[modenum]; + else + return &badmode; +} + + +/* +================= +VID_GetModeDescription +================= +*/ +char *VID_GetModeDescription (int mode) +{ + char *pinfo; + vmode_t *pv; + static char temp[100]; + + if ((mode < 0) || (mode >= nummodes)) + return NULL; + + if (!leavecurrentmode) + { + pv = VID_GetModePtr (mode); + pinfo = pv->modedesc; + } + else + { + sprintf (temp, "Desktop resolution (%ix%ix%i)", //johnfitz -- added bpp + modelist[MODE_FULLSCREEN_DEFAULT].width, + modelist[MODE_FULLSCREEN_DEFAULT].height, + modelist[MODE_FULLSCREEN_DEFAULT].bpp); //johnfitz -- added bpp + pinfo = temp; + } + + return pinfo; +} + +// KJB: Added this to return the mode driver name in description for console +/* +================= +VID_GetExtModeDescription +================= +*/ +char *VID_GetExtModeDescription (int mode) +{ + static char pinfo[40]; + vmode_t *pv; + + if ((mode < 0) || (mode >= nummodes)) + return NULL; + + pv = VID_GetModePtr (mode); + if (modelist[mode].type == MS_FULLDIB) + { + if (!leavecurrentmode) + { + sprintf(pinfo,"%s fullscreen", pv->modedesc); + } + else + { + sprintf (pinfo, "Desktop resolution (%ix%ix%i)", //johnfitz -- added bpp + modelist[MODE_FULLSCREEN_DEFAULT].width, + modelist[MODE_FULLSCREEN_DEFAULT].height, + modelist[MODE_FULLSCREEN_DEFAULT].bpp); //johnfitz -- added bpp + } + } + else + { + if (modestate == MS_WINDOWED) + sprintf(pinfo, "%s windowed", pv->modedesc); + else + sprintf(pinfo, "windowed"); + } + + return pinfo; +} + +/* +================= +VID_DescribeCurrentMode_f +================= +*/ +void VID_DescribeCurrentMode_f (void) +{ + Con_Printf ("%s\n", VID_GetExtModeDescription (vid_modenum)); +} + +/* +================= +VID_DescribeModes_f -- johnfitz -- changed formatting, and added refresh rates after each mode. +================= +*/ +void VID_DescribeModes_f (void) +{ + int i, lnummodes, t; + char *pinfo; + vmode_t *pv; + int lastwidth=0, lastheight=0, lastbpp=0, count=0; + + lnummodes = VID_NumModes (); + + t = leavecurrentmode; + leavecurrentmode = 0; + + for (i=1 ; iwidth && lastheight == pv->height && lastbpp == pv->bpp) + { + Con_SafePrintf (",%i", pv->refreshrate); + } + else + { + if (count>0) + Con_SafePrintf ("\n"); + Con_SafePrintf (" %4i x %4i x %i : %i", pv->width, pv->height, pv->bpp, pv->refreshrate); + lastwidth = pv->width; + lastheight = pv->height; + lastbpp = pv->bpp; + count++; + } + } + Con_Printf ("\n%i modes\n", count); + + leavecurrentmode = t; +} + +//========================================================================== +// +// INIT +// +//========================================================================== + +/* +================= +VID_InitDIB +================= +*/ +void VID_InitDIB (HINSTANCE hInstance) +{ + DEVMODE devmode; //johnfitz + WNDCLASS wc; + HDC hdc; + int i; + + /* Register the frame class */ + wc.style = 0; + wc.lpfnWndProc = (WNDPROC)MainWndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = hInstance; + wc.hIcon = 0; + wc.hCursor = LoadCursor (NULL,IDC_ARROW); + wc.hbrBackground = NULL; + wc.lpszMenuName = 0; + wc.lpszClassName = "FitzQuake"; //johnfitz -- was WinQuake + + if (!RegisterClass (&wc) ) + Sys_Error ("Couldn't register window class"); + + modelist[0].type = MS_WINDOWED; + + if (COM_CheckParm("-width")) + modelist[0].width = Q_atoi(com_argv[COM_CheckParm("-width")+1]); + else + modelist[0].width = 640; + + if (modelist[0].width < 320) + modelist[0].width = 320; + + if (COM_CheckParm("-height")) + modelist[0].height= Q_atoi(com_argv[COM_CheckParm("-height")+1]); + else + modelist[0].height = modelist[0].width * 240/320; + + if (modelist[0].height < 200) //johnfitz -- was 240 + modelist[0].height = 200; //johnfitz -- was 240 + + //johnfitz -- get desktop bit depth + hdc = GetDC(NULL); + modelist[0].bpp = GetDeviceCaps(hdc, BITSPIXEL); + ReleaseDC(NULL, hdc); + //johnfitz + + //johnfitz -- get refreshrate + if (EnumDisplaySettings (NULL, ENUM_CURRENT_SETTINGS, &devmode)) + modelist[0].refreshrate = devmode.dmDisplayFrequency; + //johnfitz + + sprintf (modelist[0].modedesc, "%dx%dx%d %dHz", //johnfitz -- added bpp, refreshrate + modelist[0].width, + modelist[0].height, + modelist[0].bpp, //johnfitz -- added bpp + modelist[0].refreshrate); //johnfitz -- added refreshrate + + modelist[0].modenum = MODE_WINDOWED; + modelist[0].dib = 1; + modelist[0].fullscreen = 0; + modelist[0].halfscreen = 0; + + nummodes = 1; +} + +/* +================= +VID_InitFullDIB +================= +*/ +void VID_InitFullDIB (HINSTANCE hInstance) +{ + DEVMODE devmode; + int i, modenum, cmodes, originalnummodes, existingmode, numlowresmodes; + int j, bpp, done; + BOOL stat; + +// enumerate >8 bpp modes + originalnummodes = nummodes; + modenum = 0; + + do + { + stat = EnumDisplaySettings (NULL, modenum, &devmode); + + if ((devmode.dmBitsPerPel >= 15) && + (devmode.dmPelsWidth <= MAXWIDTH) && + (devmode.dmPelsHeight <= MAXHEIGHT) && + (nummodes < MAX_MODE_LIST)) + { + devmode.dmFields = DM_BITSPERPEL | + DM_PELSWIDTH | + DM_PELSHEIGHT | + DM_DISPLAYFREQUENCY; //johnfitz -- refreshrate + + if (ChangeDisplaySettings (&devmode, CDS_TEST | CDS_FULLSCREEN) == + DISP_CHANGE_SUCCESSFUL) + { + modelist[nummodes].type = MS_FULLDIB; + modelist[nummodes].width = devmode.dmPelsWidth; + modelist[nummodes].height = devmode.dmPelsHeight; + modelist[nummodes].modenum = 0; + modelist[nummodes].halfscreen = 0; + modelist[nummodes].dib = 1; + modelist[nummodes].fullscreen = 1; + modelist[nummodes].bpp = devmode.dmBitsPerPel; + modelist[nummodes].refreshrate = devmode.dmDisplayFrequency; //johnfitz -- refreshrate + sprintf (modelist[nummodes].modedesc, "%dx%dx%d %dHz", //johnfitz -- refreshrate + devmode.dmPelsWidth, + devmode.dmPelsHeight, + devmode.dmBitsPerPel, + devmode.dmDisplayFrequency); //johnfitz -- refreshrate + + // if the width is more than twice the height, reduce it by half because this + // is probably a dual-screen monitor + if (!COM_CheckParm("-noadjustaspect")) + { + if (modelist[nummodes].width > (modelist[nummodes].height << 1)) + { + modelist[nummodes].width >>= 1; + modelist[nummodes].halfscreen = 1; + sprintf (modelist[nummodes].modedesc, "%dx%dx%d %dHz", //johnfitz -- refreshrate + modelist[nummodes].width, + modelist[nummodes].height, + modelist[nummodes].bpp, + modelist[nummodes].refreshrate); //johnfitz -- refreshrate + } + } + + for (i=originalnummodes, existingmode = 0 ; i=vid_menu_nummodes) + i = 0; + else if (i<0) + i = vid_menu_nummodes-1; + } + + Cvar_SetValue ("vid_width",(float)vid_menu_modes[i].width); + Cvar_SetValue ("vid_height",(float)vid_menu_modes[i].height); + VID_Menu_RebuildBppList (); + VID_Menu_RebuildRateList (); + VID_Menu_CalcAspectRatio (); +} + +/* +================ +VID_Menu_ChooseNextBpp + +chooses next bpp in order, then updates vid_bpp cvar, then updates refreshrate list +================ +*/ +void VID_Menu_ChooseNextBpp (int dir) +{ + int i; + + for (i=0;i=vid_menu_numbpps) + i = 0; + else if (i<0) + i = vid_menu_numbpps-1; + } + + Cvar_SetValue ("vid_bpp",(float)vid_menu_bpps[i]); + VID_Menu_RebuildRateList (); +} + +/* +================ +VID_Menu_ChooseNextRate + +chooses next refresh rate in order, then updates vid_refreshrate cvar +================ +*/ +void VID_Menu_ChooseNextRate (int dir) +{ + int i; + + for (i=0;i=vid_menu_numrates) + i = 0; + else if (i<0) + i = vid_menu_numrates-1; + } + + Cvar_SetValue ("vid_refreshrate",(float)vid_menu_rates[i]); +} + +/* +================ +VID_MenuKey +================ +*/ +void VID_MenuKey (int key) +{ + switch (key) + { + case K_ESCAPE: + VID_SyncCvars (); //sync cvars before leaving menu. FIXME: there are other ways to leave menu + S_LocalSound ("misc/menu1.wav"); + M_Menu_Options_f (); + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + video_options_cursor--; + if (video_options_cursor < 0) + video_options_cursor = VIDEO_OPTIONS_ITEMS-1; + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + video_options_cursor++; + if (video_options_cursor >= VIDEO_OPTIONS_ITEMS) + video_options_cursor = 0; + break; + + case K_LEFTARROW: + S_LocalSound ("misc/menu3.wav"); + switch (video_options_cursor) + { + case 0: + VID_Menu_ChooseNextMode (-1); + break; + case 1: + VID_Menu_ChooseNextBpp (-1); + break; + case 2: + VID_Menu_ChooseNextRate (-1); + break; + case 3: + Cbuf_AddText ("toggle vid_fullscreen\n"); + break; + case 4: + case 5: + default: + break; + } + break; + + case K_RIGHTARROW: + S_LocalSound ("misc/menu3.wav"); + switch (video_options_cursor) + { + case 0: + VID_Menu_ChooseNextMode (1); + break; + case 1: + VID_Menu_ChooseNextBpp (1); + break; + case 2: + VID_Menu_ChooseNextRate (1); + break; + case 3: + Cbuf_AddText ("toggle vid_fullscreen\n"); + break; + case 4: + case 5: + default: + break; + } + break; + + case K_ENTER: + m_entersound = true; + switch (video_options_cursor) + { + case 0: + VID_Menu_ChooseNextMode (1); + break; + case 1: + VID_Menu_ChooseNextBpp (1); + break; + case 2: + VID_Menu_ChooseNextRate (1); + break; + case 3: + Cbuf_AddText ("toggle vid_fullscreen\n"); + break; + case 4: + Cbuf_AddText ("vid_test\n"); + break; + case 5: + Cbuf_AddText ("vid_restart\n"); + break; + default: + break; + } + break; + + default: + break; + } +} + +/* +================ +VID_MenuDraw +================ +*/ +void VID_MenuDraw (void) +{ + int i = 0; + qpic_t *p; + char *title; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp")); + + //p = Draw_CachePic ("gfx/vidmodes.lmp"); + p = Draw_CachePic ("gfx/p_option.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + + // title + title = "Video Options"; + M_PrintWhite ((320-8*strlen(title))/2, 32, title); + + // options + M_Print (16, video_cursor_table[i], " Video mode"); + M_Print (184, video_cursor_table[i], va("%ix%i (%i:%i)", (int)vid_width.value, (int)vid_height.value, vid_menu_rwidth, vid_menu_rheight)); + i++; + + M_Print (16, video_cursor_table[i], " Color depth"); + M_Print (184, video_cursor_table[i], va("%i", (int)vid_bpp.value)); + i++; + + M_Print (16, video_cursor_table[i], " Refresh rate"); + M_Print (184, video_cursor_table[i], va("%i Hz", (int)vid_refreshrate.value)); + i++; + + M_Print (16, video_cursor_table[i], " Fullscreen"); + M_DrawCheckbox (184, video_cursor_table[i], (int)vid_fullscreen.value); + i++; + + M_Print (16, video_cursor_table[i], " Test changes"); + i++; + + M_Print (16, video_cursor_table[i], " Apply changes"); + + // cursor + M_DrawCharacter (168, video_cursor_table[video_options_cursor], 12+((int)(realtime*4)&1)); + + // notes "345678901234567890123456789012345678" +// M_Print (16, 172, "Windowed modes always use the desk- "); +// M_Print (16, 180, "top color depth, and can never be "); +// M_Print (16, 188, "larger than the desktop resolution. "); +} + +/* +================ +VID_Menu_f +================ +*/ +void VID_Menu_f (void) +{ + key_dest = key_menu; + m_state = m_video; + m_entersound = true; + + //set all the cvars to match the current mode when entering the menu + VID_SyncCvars (); + + //set up bpp and rate lists based on current cvars + VID_Menu_RebuildBppList (); + VID_Menu_RebuildRateList (); + + //aspect ratio + VID_Menu_CalcAspectRatio (); +} diff --git a/quakespasm/Quake/gl_vidsdl.c b/quakespasm/Quake/gl_vidsdl.c new file mode 100644 index 00000000..fcd96fdb --- /dev/null +++ b/quakespasm/Quake/gl_vidsdl.c @@ -0,0 +1,1852 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// gl_vidnt.c -- NT GL vid component + +#include "quakedef.h" +#include "resource.h" + +#define MAX_MODE_LIST 600 //johnfitz -- was 30 +#define VID_ROW_SIZE 3 +#define WARP_WIDTH 320 +#define WARP_HEIGHT 200 +#define MAXWIDTH 10000 +#define MAXHEIGHT 10000 +#define BASEWIDTH 320 +#define BASEHEIGHT 200 +#define SDL_DEFAULT_FLAGS SDL_OPENGL + +typedef struct { + modestate_t type; + int width; + int height; + int modenum; + int dib; + int fullscreen; + int bpp; + int halfscreen; + char modedesc[17]; +} vmode_t; + +typedef struct { + int width; + int height; +} lmode_t; + +lmode_t lowresmodes[] = { + {320, 200}, + {320, 240}, + {400, 300}, + {512, 384}, +}; + +const char *gl_vendor; +const char *gl_renderer; +const char *gl_version; +const char *gl_extensions; + +qboolean DDActive; +qboolean scr_skipupdate; + +static vmode_t modelist[MAX_MODE_LIST]; +static int nummodes; +static vmode_t badmode; + +static qboolean vid_initialized = false; +static qboolean windowed, leavecurrentmode; +static qboolean vid_canalttab = false; +extern qboolean mouseactive; // from in_win.c + +SDL_Surface *draw_context; + +int vid_modenum = NO_MODE; +int vid_realmode; +int vid_default = MODE_WINDOWED; +unsigned char vid_curpal[256*3]; +static qboolean fullsbardraw = false; + +glvert_t glv; +viddef_t vid; // global video state + +//unsigned short d_8to16table[256]; //johnfitz -- never used +//unsigned char d_15to8table[65536]; //johnfitz -- never used + + +PFNGLARRAYELEMENTEXTPROC glArrayElementEXT = NULL; +PFNGLCOLORPOINTEREXTPROC glColorPointerEXT = NULL; +PFNGLTEXCOORDPOINTEREXTPROC glTexCoordPointerEXT = NULL; +PFNGLVERTEXPOINTEREXTPROC glVertexPointerEXT = NULL; + +modestate_t modestate = MODE_WINDOWED; + +void VID_Menu_Init (void); //johnfitz +void VID_Menu_f (void); //johnfitz +void VID_MenuDraw (void); +void VID_MenuKey (int key); + +char *VID_GetModeDescription (int mode); +void ClearAllStates (void); +void VID_UpdateWindowStatus (void); +void GL_Init (void); + +PFNGLMULTITEXCOORD2FARBPROC GL_MTexCoord2fFunc = NULL; //johnfitz +PFNGLACTIVETEXTUREARBPROC GL_SelectTextureFunc = NULL; //johnfitz + +qboolean isPermedia = false; +qboolean isIntelVideo = false; //johnfitz -- intel video workarounds from Baker +qboolean gl_mtexable = false; +qboolean gl_texture_env_combine = false; //johnfitz +qboolean gl_texture_env_add = false; //johnfitz +qboolean gl_swap_control = false; //johnfitz +qboolean gl_anisotropy_able = false; //johnfitz +float gl_max_anisotropy; //johnfitz + +int gl_stencilbits; //johnfitz + +qboolean vid_locked = false; //johnfitz +qboolean vid_changed = false; + +void GL_SetupState (void); //johnfitz + +//==================================== + +//johnfitz -- new cvars +cvar_t vid_fullscreen = {"vid_fullscreen", "1", true}; +cvar_t vid_width = {"vid_width", "640", true}; +cvar_t vid_height = {"vid_height", "480", true}; +cvar_t vid_bpp = {"vid_bpp", "16", true}; +cvar_t vid_refreshrate = {"vid_refreshrate", "60", true}; +cvar_t vid_vsync = {"vid_vsync", "0", true}; +//johnfitz + +cvar_t _windowed_mouse = {"_windowed_mouse","1", true}; +cvar_t vid_gamma = {"gamma", "1", true}; //johnfitz -- moved here from view.c + +//========================================================================== +// +// HARDWARE GAMMA -- johnfitz +// +//========================================================================== + +//typedef int (WINAPI * RAMPFUNC)(); +//RAMPFUNC wglGetDeviceGammaRamp3DFX; +//RAMPFUNC wglSetDeviceGammaRamp3DFX; + +unsigned short vid_gamma_red[256]; +unsigned short vid_gamma_green[256]; +unsigned short vid_gamma_blue[256]; + +unsigned short vid_sysgamma_red[256]; +unsigned short vid_sysgamma_green[256]; +unsigned short vid_sysgamma_blue[256]; + +int vid_gammaworks; + +/* +================ +VID_Gamma_SetGamma -- apply gamma correction +================ +*/ +void VID_Gamma_SetGamma (void) +{ + if (draw_context && vid_gammaworks) + if (SDL_SetGammaRamp(&vid_gamma_red[0], &vid_gamma_green[0], &vid_gamma_blue[0]) == -1) + Con_Printf ("VID_Gamma_SetGamma: failed on SDL_SetGammaRamp\n"); +} + +/* +================ +VID_Gamma_Restore -- restore system gamma +================ +*/ +void VID_Gamma_Restore (void) +{ + if (draw_context && vid_gammaworks) + if (SDL_SetGammaRamp(&vid_sysgamma_red[0], &vid_sysgamma_green[0], &vid_sysgamma_blue[0]) == -1) + Con_Printf ("VID_Gamma_Restore: failed on SDL_SetGammaRamp\n"); +} + +/* +================ +VID_Gamma_Shutdown -- called on exit +================ +*/ +void VID_Gamma_Shutdown (void) +{ + VID_Gamma_Restore (); +} + +/* +================ +VID_Gamma_f -- callback when the cvar changes +================ +*/ +void VID_Gamma_f (void) +{ + static float oldgamma; + int i; + + if (vid_gamma.value == oldgamma) + return; + + oldgamma = vid_gamma.value; + + for (i=0; i<256; i++) + { + vid_gamma_red[i] = CLAMP(0, (int) (255 * pow ((i+0.5)/255.5, vid_gamma.value) + 0.5), 255) << 8; + vid_gamma_green[i] = vid_gamma_red[i]; + vid_gamma_blue[i] = vid_gamma_red[i]; + } + + VID_Gamma_SetGamma (); +} + +/* +================ +VID_Gamma_Init -- call on init +================ +*/ +void VID_Gamma_Init (void) +{ + vid_gammaworks = false; + + if (SDL_GetGammaRamp (&vid_sysgamma_red[0], &vid_sysgamma_green[0], &vid_sysgamma_blue[0]) != -1) + vid_gammaworks = true; + + Cvar_RegisterVariable (&vid_gamma, VID_Gamma_f); +} + +/* +================ +VID_SetMode +================ +*/ +int VID_SetMode (int modenum) +{ + int temp; + qboolean stat; + long int flags = SDL_DEFAULT_FLAGS; + char caption[50]; + + //TODO: check if video mode is supported using SDL_VideoModeOk + if ((windowed && (modenum != 0)) || + (!windowed && (modenum < 1)) || + (!windowed && (modenum >= nummodes))) + { + Sys_Error ("Bad video mode\n"); + } + +// so Con_Printfs don't mess us up by forcing vid and snd updates + temp = scr_disabled_for_loading; + scr_disabled_for_loading = true; + + CDAudio_Pause (); + + // set vertical sync + if (gl_swap_control) + { + if (vid_vsync.value) + { + if (SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 1) == -1) + Con_Printf ("VID_Vsync_f: failed on SDL_GL_SetAttribute\n"); + } + else + { + if (SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0) == -1) + Con_Printf ("VID_Vsync_f: failed on SDL_GL_SetAttribute\n"); + } + } + + if (modelist[modenum].type == MODE_WINDOWED) + { + if (_windowed_mouse.value && key_dest == key_game) + { + draw_context = SDL_SetVideoMode(modelist[modenum].width, modelist[modenum].height, modelist[modenum].bpp, flags); + stat = true; + } + else + { + draw_context = SDL_SetVideoMode(modelist[modenum].width, modelist[modenum].height, modelist[modenum].bpp, flags); + stat = true; + } + modestate = MODE_WINDOWED; + // TODO set icon and title + } + else if (modelist[modenum].type == MODE_FULLSCREEN_DEFAULT) + { + flags |= SDL_FULLSCREEN; + draw_context = SDL_SetVideoMode(modelist[modenum].width, modelist[modenum].height, modelist[modenum].bpp, flags); + + stat = true; + modestate = MODE_FULLSCREEN_DEFAULT; + } + else + { + Sys_Error ("VID_SetMode: Bad mode type in modelist"); + } + + //kristian -- set window caption + sprintf(caption, "FitzQuake (SDL port) Version %1.2f", FITZQUAKE_VERSION); + SDL_WM_SetCaption((const char* )&caption, (const char*)&caption); + + vid.width = modelist[modenum].width; + vid.height = modelist[modenum].height; + vid.conwidth = vid.width & 0xFFFFFFF8; + vid.conheight = vid.conwidth * vid.height / vid.width; + vid.numpages = 2; + vid.type = modelist[modenum].type; + + VID_UpdateWindowStatus (); + + CDAudio_Resume (); + scr_disabled_for_loading = temp; + + if (!stat) + { + Sys_Error ("Couldn't set video mode"); + } + + vid_modenum = modenum; + + // fix the leftover Alt from any Alt-Tab or the like that switched us away + ClearAllStates (); + + if (!msg_suppress_1) + Con_SafePrintf ("Video mode %s initialized\n", VID_GetModeDescription (vid_modenum)); + + vid.recalc_refdef = 1; + + // with SDL, this needs to be done every time the render context is recreated, so I moved it here + TexMgr_ReloadImages (); + GL_SetupState (); + + // no pending changes + vid_changed = false; + + return true; +} + +/* +=================== +VID_Changed_f -- kristian -- notify us that a value has changed that requires a vid_restart +=================== +*/ +void VID_Changed_f (void) +{ + vid_changed = true; +} + +/* +=================== +VID_Restart -- johnfitz -- change video modes on the fly +=================== +*/ +void VID_Restart (void) +{ + int i; + vmode_t oldmode; + + if (vid_locked || !vid_changed) + return; + +// +// decide which mode to set +// + oldmode = modelist[vid_default]; + + if (vid_fullscreen.value) + { + for (i=1; i 0) ? (int)scr_conwidth.value : vid.width; + vid.conwidth = CLAMP (320, vid.conwidth, vid.width); + vid.conwidth &= 0xFFFFFFF8; + vid.conheight = vid.conwidth * vid.height / vid.width; + // +// keep cvars in line with actual mode +// + Cvar_Set ("vid_width", va("%i", modelist[vid_default].width)); + Cvar_Set ("vid_height", va("%i", modelist[vid_default].height)); + Cvar_Set ("vid_bpp", va("%i", modelist[vid_default].bpp)); + Cvar_Set ("vid_fullscreen", (windowed) ? "0" : "1"); +} + +/* +================ +VID_Test -- johnfitz -- like vid_restart, but asks for confirmation after switching modes +================ +*/ +void VID_Test (void) +{ + vmode_t oldmode; + + if (vid_locked || !vid_changed) + return; +// +// now try the switch +// + oldmode = modelist[vid_default]; + + VID_Restart (); + + //pop up confirmation dialoge + if (!SCR_ModalMessage("Would you like to keep this\nvideo mode? (y/n)\n", 5.0f)) + { + //revert cvars and mode + Cvar_Set ("vid_width", va("%i", oldmode.width)); + Cvar_Set ("vid_height", va("%i", oldmode.height)); + Cvar_Set ("vid_bpp", va("%i", oldmode.bpp)); + Cvar_Set ("vid_fullscreen", (oldmode.type == MODE_WINDOWED) ? "0" : "1"); + VID_Restart (); + } +} + +/* +================ +VID_Unlock -- johnfitz +================ +*/ +void VID_Unlock (void) +{ + vid_locked = false; + + //sync up cvars in case they were changed during the lock + Cvar_Set ("vid_width", va("%i", modelist[vid_default].width)); + Cvar_Set ("vid_height", va("%i", modelist[vid_default].height)); + Cvar_Set ("vid_bpp", va("%i", modelist[vid_default].bpp)); + Cvar_Set ("vid_fullscreen", (windowed) ? "0" : "1"); +} + +/* +================ +VID_UpdateWindowStatus +================ +*/ +void VID_UpdateWindowStatus (void) +{ + //IN_UpdateClipCursor (); +} + +//============================================================================== +// +// OPENGL STUFF +// +//============================================================================== + +/* +=============== +GL_MakeNiceExtensionsList -- johnfitz +=============== +*/ +char *GL_MakeNiceExtensionsList (const char *in) +{ + char *copy, *token, *out; + int i, count; + + //each space will be replaced by 4 chars, so count the spaces before we malloc + for (i = 0, count = 1; i < strlen(in); i++) + if (in[i] == ' ') + count++; + out = Z_Malloc (strlen(in) + count*3 + 1); //usually about 1-2k + out[0] = 0; + + copy = Z_Malloc(strlen(in) + 1); + strcpy(copy, in); + + for (token = strtok(copy, " "); token; token = strtok(NULL, " ")) + { + strcat(out, "\n "); + strcat(out, token); + } + + Z_Free (copy); + return out; +} + +/* +=============== +GL_Info_f -- johnfitz +=============== +*/ +void GL_Info_f (void) +{ + static char *gl_extensions_nice = NULL; + + if (!gl_extensions_nice) + gl_extensions_nice = GL_MakeNiceExtensionsList (gl_extensions); + + Con_SafePrintf ("GL_VENDOR: %s\n", gl_vendor); + Con_SafePrintf ("GL_RENDERER: %s\n", gl_renderer); + Con_SafePrintf ("GL_VERSION: %s\n", gl_version); + Con_Printf ("GL_EXTENSIONS: %s\n", gl_extensions_nice); +} + +/* +=============== +CheckArrayExtensions +=============== +*/ +void CheckArrayExtensions (void) +{ + unsigned char *tmp; + + /* check for texture extension */ + tmp = (GLubyte *)glGetString(GL_EXTENSIONS); + while (*tmp) + { + if (strncmp((const char*)tmp, "GL_EXT_vertex_array", strlen("GL_EXT_vertex_array")) == 0) + { + if (((glArrayElementEXT = SDL_GL_GetProcAddress("glArrayElementEXT")) == NULL) || + ((glColorPointerEXT = SDL_GL_GetProcAddress("glColorPointerEXT")) == NULL) || + ((glTexCoordPointerEXT = SDL_GL_GetProcAddress("glTexCoordPointerEXT")) == NULL) || + ((glVertexPointerEXT = SDL_GL_GetProcAddress("glVertexPointerEXT")) == NULL) ) + { + Sys_Error ("GetProcAddress for vertex extension failed"); + return; + } + return; + } + tmp++; + } + + Sys_Error ("Vertex array extension not present"); +} + +/* +=============== +GL_CheckExtensions -- johnfitz +=============== +*/ +void GL_CheckExtensions (void) +{ + int swap_control; + + // + // multitexture + // + if (COM_CheckParm("-nomtex")) + Con_Printf ("WARNING: Mutitexture disabled at command line\n"); + else + if (strstr(gl_extensions, "GL_ARB_multitexture")) + { + GL_MTexCoord2fFunc = SDL_GL_GetProcAddress("glMultiTexCoord2fARB"); + GL_SelectTextureFunc = SDL_GL_GetProcAddress("glActiveTextureARB"); + if (GL_MTexCoord2fFunc && GL_SelectTextureFunc) + { + Con_Printf("FOUND: ARB_multitexture\n"); + TEXTURE0 = GL_TEXTURE0_ARB; + TEXTURE1 = GL_TEXTURE1_ARB; + gl_mtexable = true; + } + else + Con_Printf ("WARNING: multitexture not supported (SDL_GL_GetProcAddress failed)\n"); + } + else + if (strstr(gl_extensions, "GL_SGIS_multitexture")) + { + GL_MTexCoord2fFunc = SDL_GL_GetProcAddress("glMTexCoord2fSGIS"); + GL_SelectTextureFunc = SDL_GL_GetProcAddress("glSelectTextureSGIS"); + if (GL_MTexCoord2fFunc && GL_SelectTextureFunc) + { + Con_Printf("FOUND: SGIS_multitexture\n"); + TEXTURE0 = TEXTURE0_SGIS; + TEXTURE1 = TEXTURE1_SGIS; + gl_mtexable = true; + } + else + Con_Printf ("WARNING: multitexture not supported (SDL_GL_GetProcAddress failed)\n"); + + } + else + Con_Printf ("WARNING: multitexture not supported (extension not found)\n"); + // + // texture_env_combine + // + if (COM_CheckParm("-nocombine")) + Con_Printf ("WARNING: texture_env_combine disabled at command line\n"); + else + if (strstr(gl_extensions, "GL_ARB_texture_env_combine")) + { + Con_Printf("FOUND: ARB_texture_env_combine\n"); + gl_texture_env_combine = true; + } + else + if (strstr(gl_extensions, "GL_EXT_texture_env_combine")) + { + Con_Printf("FOUND: EXT_texture_env_combine\n"); + gl_texture_env_combine = true; + } + else + Con_Printf ("WARNING: texture_env_combine not supported\n"); + +#if 1 + // + // texture_env_add + // + if (COM_CheckParm("-noadd")) + Con_Warning ("texture_env_add disabled at command line\n"); + else + if (strstr(gl_extensions, "GL_ARB_texture_env_add")) + { + Con_Printf("FOUND: ARB_texture_env_add\n"); + gl_texture_env_add = true; + } + else + if (strstr(gl_extensions, "GL_EXT_texture_env_add")) + { + Con_Printf("FOUND: EXT_texture_env_add\n"); + gl_texture_env_add = true; + } + else + Con_Warning ("texture_env_add not supported\n"); +#endif + + // + // swap control + // + if (strstr(gl_extensions, "GL_EXT_swap_control")) + { + if (SDL_GL_SetAttribute(SDL_GL_SWAP_CONTROL, 0) == -1) { + Con_Printf("WARNING: vertical sync not supported (SDL_GL_SetAttribute failed)\n"); + } + else + { + if (SDL_GL_GetAttribute(SDL_GL_SWAP_CONTROL, &swap_control) == -1) { + Con_Printf("WARNING: vertical sync not supported (SDL_GL_GetAttribute failed). Make sure you don't have vertical sync disabled in your driver settings.\n"); + } else if (swap_control == -1) { + // TODO: check if this is correct - I don't know what SDL returns if vertical sync is disabled + Con_Printf("WARNING: vertical sync not supported (swap interval is -1.) Make sure you don't have vertical sync disabled in your driver settings.\n"); + } + else + { + Con_Printf("FOUND: WGL_EXT_swap_control\n"); + gl_swap_control = true; + } + } + } + else + Con_Printf ("WARNING: vertical sync not supported (extension not found)\n"); + + // + // anisotropic filtering + // + if (strstr(gl_extensions, "GL_EXT_texture_filter_anisotropic")) + { + float test1,test2; + GLuint tex; + + // test to make sure we really have control over it + // 1.0 and 2.0 should always be legal values + glGenTextures(1, &tex); + glBindTexture (GL_TEXTURE_2D, tex); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 1.0f); + glGetTexParameterfv (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, &test1); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, 2.0f); + glGetTexParameterfv (GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, &test2); + glDeleteTextures(1, &tex); + + if (test1 == 1 && test2 == 2) + { + Con_Printf("FOUND: EXT_texture_filter_anisotropic\n"); + gl_anisotropy_able = true; + } + else + Con_Printf("WARNING: anisotropic filtering locked by driver. Current driver setting is %f\n", test1); + + //get max value either way, so the menu and stuff know it + glGetFloatv (GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &gl_max_anisotropy); + } + else + Con_Printf ("WARNING: texture_filter_anisotropic not supported\n"); +} + +/* +=============== +GL_SetupState -- johnfitz + +does all the stuff from GL_Init that needs to be done every time a new GL render context is created +GL_Init will still do the stuff that only needs to be done once +=============== +*/ +void GL_SetupState (void) +{ + glClearColor (0.15,0.15,0.15,0); //johnfitz -- originally 1,0,0,0 + glCullFace(GL_BACK); //johnfitz -- glquake used CCW with backwards culling -- let's do it right + glFrontFace(GL_CW); //johnfitz -- glquake used CCW with backwards culling -- let's do it right + glEnable(GL_TEXTURE_2D); + glEnable(GL_ALPHA_TEST); + glAlphaFunc(GL_GREATER, 0.666); + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + glShadeModel (GL_FLAT); + glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); //johnfitz + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glDepthRange (0, 1); //johnfitz -- moved here becuase gl_ztrick is gone. + glDepthFunc (GL_LEQUAL); //johnfitz -- moved here becuase gl_ztrick is gone. +} + +/* +=============== +GL_Init +=============== +*/ +void GL_Init (void) +{ + gl_vendor = (const char *) glGetString (GL_VENDOR); + gl_renderer = (const char *) glGetString (GL_RENDERER); + gl_version = (const char *) glGetString (GL_VERSION); + gl_extensions = (const char *) glGetString (GL_EXTENSIONS); + + GL_CheckExtensions (); //johnfitz + + Cmd_AddCommand ("gl_info", GL_Info_f); //johnfitz + + Cvar_RegisterVariable (&vid_vsync, VID_Changed_f); //johnfitz + + if (SDL_strncasecmp(gl_renderer,"PowerVR",7)==0) + fullsbardraw = true; + + if (SDL_strncasecmp(gl_renderer,"Permedia",8)==0) + isPermedia = true; +#if 1 + //johnfitz -- intel video workarounds from Baker + if (!strcmp(gl_vendor, "Intel")) + { + Con_Printf ("Intel Display Adapter detected\n"); + isIntelVideo = true; + } + //johnfitz +#endif + +#if 0 + //johnfitz -- confirm presence of stencil buffer + glGetIntegerv(GL_STENCIL_BITS, &gl_stencilbits); + if(!gl_stencilbits) + Con_Printf ("WARNING: Could not create stencil buffer\n"); + else + Con_Printf ("%i bit stencil buffer\n", gl_stencilbits); +#endif + + GL_SetupState (); //johnfitz +} + +/* +================= +GL_BeginRendering -- sets values of glx, gly, glwidth, glheight +================= +*/ +void GL_BeginRendering (int *x, int *y, int *width, int *height) +{ + *x = *y = 0; + *width = vid.width; + *height = vid.height; +} + +/* +================= +GL_EndRendering +================= +*/ +void GL_EndRendering (void) +{ + if (!scr_skipupdate || block_drawing) + SDL_GL_SwapBuffers(); + + if (fullsbardraw) + Sbar_Changed(); +} + +void VID_SetDefaultMode (void) +{ +} + + +void VID_Shutdown (void) +{ + if (vid_initialized) + { + vid_canalttab = false; + VID_Gamma_Shutdown (); //johnfitz + + SDL_QuitSubSystem(SDL_INIT_VIDEO); + draw_context = NULL; + + PL_VID_Shutdown(); + } +} + +//========================================================================== + +/* +=================================================================== + +MAIN WINDOW + +=================================================================== +*/ + +/* +================ +ClearAllStates +================ +*/ +void ClearAllStates (void) +{ + int i; + +// send an up event for each key, to make sure the server clears them all + for (i=0 ; i<256 ; i++) + { + Key_Event (i, false); + } + + Key_ClearStates (); + IN_ClearStates (); +} + + + +//========================================================================== +// +// COMMANDS +// +//========================================================================== + +/* +================= +VID_NumModes +================= +*/ +int VID_NumModes (void) +{ + return nummodes; +} + + +/* +================= +VID_GetModePtr +================= +*/ +vmode_t *VID_GetModePtr (int modenum) +{ + + if ((modenum >= 0) && (modenum < nummodes)) + return &modelist[modenum]; + else + return &badmode; +} + + +/* +================= +VID_GetModeDescription +================= +*/ +char *VID_GetModeDescription (int mode) +{ + char *pinfo; + vmode_t *pv; + static char temp[100]; + + if ((mode < 0) || (mode >= nummodes)) + return NULL; + + if (!leavecurrentmode) + { + pv = VID_GetModePtr (mode); + pinfo = pv->modedesc; + } + else + { + sprintf (temp, "Desktop resolution (%ix%ix%i)", //johnfitz -- added bpp + modelist[MODE_FULLSCREEN_DEFAULT].width, + modelist[MODE_FULLSCREEN_DEFAULT].height, + modelist[MODE_FULLSCREEN_DEFAULT].bpp); //johnfitz -- added bpp + pinfo = temp; + } + + return pinfo; +} + +// KJB: Added this to return the mode driver name in description for console +/* +================= +VID_GetExtModeDescription +================= +*/ +char *VID_GetExtModeDescription (int mode) +{ + static char pinfo[40]; + vmode_t *pv; + + if ((mode < 0) || (mode >= nummodes)) + return NULL; + + pv = VID_GetModePtr (mode); + if (modelist[mode].type == MODE_FULLSCREEN_DEFAULT) + { + if (!leavecurrentmode) + { + sprintf(pinfo,"%s fullscreen", pv->modedesc); + } + else + { + sprintf (pinfo, "Desktop resolution (%ix%ix%i)", //johnfitz -- added bpp + modelist[MODE_FULLSCREEN_DEFAULT].width, + modelist[MODE_FULLSCREEN_DEFAULT].height, + modelist[MODE_FULLSCREEN_DEFAULT].bpp); //johnfitz -- added bpp + } + } + else + { + if (modestate == MODE_WINDOWED) + sprintf(pinfo, "%s windowed", pv->modedesc); + else + sprintf(pinfo, "windowed"); + } + + return pinfo; +} + +/* +================= +VID_DescribeCurrentMode_f +================= +*/ +void VID_DescribeCurrentMode_f (void) +{ + Con_Printf ("%s\n", VID_GetExtModeDescription (vid_modenum)); +} + +/* +================= +VID_DescribeModes_f -- johnfitz -- changed formatting, and added refresh rates after each mode. +================= +*/ +void VID_DescribeModes_f (void) +{ + int i, lnummodes, t; + vmode_t *pv; + int lastwidth=0, lastheight=0, lastbpp=0, count=0; + + lnummodes = VID_NumModes (); + + t = leavecurrentmode; + leavecurrentmode = 0; + + for (i=1 ; iwidth || lastheight != pv->height || lastbpp != pv->bpp) + { + if (count>0) + Con_SafePrintf ("\n"); + Con_SafePrintf (" %4i x %4i x %i", pv->width, pv->height, pv->bpp); + lastwidth = pv->width; + lastheight = pv->height; + lastbpp = pv->bpp; + count++; + } + } + Con_Printf ("\n%i modes\n", count); + + leavecurrentmode = t; +} + +//========================================================================== +// +// INIT +// +//========================================================================== + +/* +================= +VID_InitDIB +================= +*/ +void VID_InitDIB () +{ + const SDL_VideoInfo *info; + + modelist[0].type = MODE_WINDOWED; + + if (COM_CheckParm("-width")) + modelist[0].width = Q_atoi(com_argv[COM_CheckParm("-width")+1]); + else + modelist[0].width = 640; + + if (modelist[0].width < 320) + modelist[0].width = 320; + + if (COM_CheckParm("-height")) + modelist[0].height= Q_atoi(com_argv[COM_CheckParm("-height")+1]); + else + modelist[0].height = modelist[0].width * 240/320; + + if (modelist[0].height < 200) //johnfitz -- was 240 + modelist[0].height = 200; //johnfitz -- was 240 + + info = SDL_GetVideoInfo(); + modelist[0].bpp = info->vfmt->BitsPerPixel; + + sprintf (modelist[0].modedesc, "%dx%dx%d", //johnfitz -- added bpp + modelist[0].width, + modelist[0].height, + modelist[0].bpp); //johnfitz -- added bpp + + modelist[0].modenum = MODE_WINDOWED; + modelist[0].dib = 1; + modelist[0].fullscreen = 0; + modelist[0].halfscreen = 0; + + nummodes = 1; +} + +/* +================= +VID_InitFullDIB +================= +*/ +void VID_InitFullDIB () +{ + SDL_PixelFormat format; + SDL_Rect **modes; + long int flags; + int i, j, k, modenum, originalnummodes, existingmode; + int bpps[3] = {16, 24, 32}; // enumerate >8 bpp modes + + originalnummodes = nummodes; + modenum = 0; + format.palette = NULL; + + // enumerate fullscreen modes + flags = SDL_DEFAULT_FLAGS | SDL_FULLSCREEN; + for (i = 0; i < 3; i++) + { + if (nummodes >= MAX_MODE_LIST) + break; + + format.BitsPerPixel = bpps[i]; + modes = SDL_ListModes(&format, flags); + + if (modes == (SDL_Rect **)0 || modes == (SDL_Rect **)-1) + continue; + + for (j = 0; modes[j]; j++) + { + if (modes[j]->w > MAXWIDTH || modes[j]->h > MAXHEIGHT || nummodes >= MAX_MODE_LIST) + continue; + + modelist[nummodes].type = MODE_FULLSCREEN_DEFAULT; + modelist[nummodes].width = modes[j]->w; + modelist[nummodes].height = modes[j]->h; + modelist[nummodes].modenum = 0; + modelist[nummodes].halfscreen = 0; + modelist[nummodes].dib = 1; + modelist[nummodes].fullscreen = 1; + modelist[nummodes].bpp = bpps[i]; + + sprintf (modelist[nummodes].modedesc, "%dx%dx%d", + modelist[nummodes].width, + modelist[nummodes].height, + modelist[nummodes].bpp); //johnfitz -- refreshrate + + // if the width is more than twice the height, reduce it by half because this + // is probably a dual-screen monitor + if (!COM_CheckParm("-noadjustaspect")) + { + if (modelist[nummodes].width > (modelist[nummodes].height << 1)) + { + modelist[nummodes].width >>= 1; + modelist[nummodes].halfscreen = 1; + sprintf (modelist[nummodes].modedesc, "%dx%dx%d", + modelist[nummodes].width, + modelist[nummodes].height, + modelist[nummodes].bpp); + } + } + + for (k=originalnummodes, existingmode = 0 ; k < nummodes ; k++) + { + if ((modelist[nummodes].width == modelist[k].width) && + (modelist[nummodes].height == modelist[k].height) && + (modelist[nummodes].bpp == modelist[k].bpp)) + { + existingmode = 1; + break; + } + } + + if (!existingmode) + { + nummodes++; + } + } + modenum++; + } + + if (nummodes == originalnummodes) + Con_SafePrintf ("No fullscreen DIB modes found\n"); +} + +/* +=================== +VID_Init +=================== +*/ +void VID_Init (void) +{ + const SDL_VideoInfo *info; + int i, existingmode; + int basenummodes, width, height, bpp, findbpp, done; + char gldir[MAX_OSPATH]; + + //johnfitz -- clean up init readouts + //Con_Printf("------------- Init Video -------------\n"); + //Con_Printf("%cVideo Init\n", 2); + //johnfitz + + Cvar_RegisterVariable (&vid_fullscreen, VID_Changed_f); //johnfitz + Cvar_RegisterVariable (&vid_width, VID_Changed_f); //johnfitz + Cvar_RegisterVariable (&vid_height, VID_Changed_f); //johnfitz + Cvar_RegisterVariable (&vid_bpp, VID_Changed_f); //johnfitz + //Cvar_RegisterVariable (&vid_refreshrate, NULL); //johnfitz + Cvar_RegisterVariable (&_windowed_mouse, NULL); + + Cmd_AddCommand ("vid_unlock", VID_Unlock); //johnfitz + Cmd_AddCommand ("vid_restart", VID_Restart); //johnfitz + Cmd_AddCommand ("vid_test", VID_Test); //johnfitz + Cmd_AddCommand ("vid_describecurrentmode", VID_DescribeCurrentMode_f); + Cmd_AddCommand ("vid_describemodes", VID_DescribeModes_f); + + //InitCommonControls(); + + if (SDL_InitSubSystem(SDL_INIT_VIDEO) == -1) + Sys_Error("Could not initialize SDL Video"); + + SDL_putenv("SDL_VIDEO_CENTERED=center"); + + VID_InitDIB(); + basenummodes = nummodes = 1; + VID_InitFullDIB(); + + if (COM_CheckParm("-window")) + { + windowed = true; + vid_default = MODE_WINDOWED; + } + else + { + if (nummodes == 1) + Sys_Error ("No RGB fullscreen modes available"); + + windowed = false; + + if (COM_CheckParm("-mode")) + { + vid_default = Q_atoi(com_argv[COM_CheckParm("-mode")+1]); + } + else + { + if (COM_CheckParm("-current")) + { + info = SDL_GetVideoInfo(); + modelist[MODE_FULLSCREEN_DEFAULT].width = info->current_w; + modelist[MODE_FULLSCREEN_DEFAULT].height = info->current_h; + vid_default = MODE_FULLSCREEN_DEFAULT; + leavecurrentmode = 1; + } + else + { + if (COM_CheckParm("-width")) + { + width = Q_atoi(com_argv[COM_CheckParm("-width")+1]); + } + else + { + width = 640; + } + + if (COM_CheckParm("-bpp")) + { + bpp = Q_atoi(com_argv[COM_CheckParm("-bpp")+1]); + findbpp = 0; + } + else + { + bpp = 15; + findbpp = 1; + } + + if (COM_CheckParm("-height")) + height = Q_atoi(com_argv[COM_CheckParm("-height")+1]); + + // if they want to force it, add the specified mode to the list + if (COM_CheckParm("-force") && (nummodes < MAX_MODE_LIST)) + { + modelist[nummodes].type = MODE_FULLSCREEN_DEFAULT; + modelist[nummodes].width = width; + modelist[nummodes].height = height; + modelist[nummodes].modenum = 0; + modelist[nummodes].halfscreen = 0; + modelist[nummodes].dib = 1; + modelist[nummodes].fullscreen = 1; + modelist[nummodes].bpp = bpp; + sprintf (modelist[nummodes].modedesc, "%dx%dx%d", + modelist[nummodes].width, + modelist[nummodes].height, + modelist[nummodes].bpp); + + for (i=nummodes, existingmode = 0 ; i=vid_menu_nummodes) + i = 0; + else if (i<0) + i = vid_menu_nummodes-1; + } + + Cvar_Set ("vid_width",va("%i",vid_menu_modes[i].width)); + Cvar_Set ("vid_height",va("%i",vid_menu_modes[i].height)); + VID_Menu_RebuildBppList (); +} + +/* +================ +VID_Menu_ChooseNextBpp + +chooses next bpp in order, then updates vid_bpp cvar, then updates refreshrate list +================ +*/ +void VID_Menu_ChooseNextBpp (int dir) +{ + int i; + + for (i=0;i=vid_menu_numbpps) + i = 0; + else if (i<0) + i = vid_menu_numbpps-1; + } + + Cvar_Set ("vid_bpp",va("%i",vid_menu_bpps[i])); +} + +/* +================ +VID_Menu_ChooseNextRate + +chooses next refresh rate in order, then updates vid_refreshrate cvar +================ +*/ +void VID_Menu_ChooseNextRate (int dir) +{ + int i; + + for (i=0;i=vid_menu_numrates) + i = 0; + else if (i<0) + i = vid_menu_numrates-1; + } + + Cvar_Set ("vid_refreshrate",va("%i",vid_menu_rates[i])); +} + +/* +================ +VID_MenuKey +================ +*/ +void VID_MenuKey (int key) +{ + switch (key) + { + case K_ESCAPE: + VID_SyncCvars (); //sync cvars before leaving menu. FIXME: there are other ways to leave menu + S_LocalSound ("misc/menu1.wav"); + M_Menu_Options_f (); + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + video_options_cursor--; + if (video_options_cursor < 0) + video_options_cursor = VIDEO_OPTIONS_ITEMS-1; + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + video_options_cursor++; + if (video_options_cursor >= VIDEO_OPTIONS_ITEMS) + video_options_cursor = 0; + break; + + case K_LEFTARROW: + S_LocalSound ("misc/menu3.wav"); + switch (video_options_cursor) + { + case 0: + VID_Menu_ChooseNextMode (-1); + break; + case 1: + VID_Menu_ChooseNextBpp (-1); + break; + case 2: + VID_Menu_ChooseNextRate (-1); + break; + case 3: + Cbuf_AddText ("toggle vid_fullscreen\n"); + break; + case 4: + Cbuf_AddText ("toggle vid_vsync\n"); // kristian + break; + case 5: + case 6: + default: + break; + } + break; + + case K_RIGHTARROW: + S_LocalSound ("misc/menu3.wav"); + switch (video_options_cursor) + { + case 0: + VID_Menu_ChooseNextMode (1); + break; + case 1: + VID_Menu_ChooseNextBpp (1); + break; + case 2: + VID_Menu_ChooseNextRate (1); + break; + case 3: + Cbuf_AddText ("toggle vid_fullscreen\n"); + break; + case 4: + Cbuf_AddText ("toggle vid_vsync\n"); + break; + case 5: + case 6: + default: + break; + } + break; + + case K_ENTER: + m_entersound = true; + switch (video_options_cursor) + { + case 0: + VID_Menu_ChooseNextMode (1); + break; + case 1: + VID_Menu_ChooseNextBpp (1); + break; + case 2: + VID_Menu_ChooseNextRate (1); + break; + case 3: + Cbuf_AddText ("toggle vid_fullscreen\n"); + break; + case 4: + Cbuf_AddText ("toggle vid_fullscreen\n"); + break; + case 5: + Cbuf_AddText ("vid_test\n"); + break; + case 6: + Cbuf_AddText ("vid_restart\n"); + key_dest = key_game; + m_state = m_none; + IN_Activate(); + break; + default: + break; + } + break; + + default: + break; + } +} + +/* +================ +VID_MenuDraw +================ +*/ +void VID_MenuDraw (void) +{ + int i = 0; + qpic_t *p; + char *title; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp")); + + //p = Draw_CachePic ("gfx/vidmodes.lmp"); + p = Draw_CachePic ("gfx/p_option.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + + // title + title = "Video Options"; + M_PrintWhite ((320-8*strlen(title))/2, 32, title); + + // options + M_Print (16, video_cursor_table[i], " Video mode"); + M_Print (216, video_cursor_table[i], va("%ix%i", (int)vid_width.value, (int)vid_height.value)); + i++; + + M_Print (16, video_cursor_table[i], " Color depth"); + M_Print (216, video_cursor_table[i], va("%i", (int)vid_bpp.value)); + i++; + + M_Print (16, video_cursor_table[i], " Refresh rate"); +// M_Print (216, video_cursor_table[i], va("%i Hz", (int)vid_refreshrate.value)); refresh rates are disabled for now -- kristian + M_Print (216, video_cursor_table[i], "N/A"); + i++; + + M_Print (16, video_cursor_table[i], " Fullscreen"); + M_DrawCheckbox (216, video_cursor_table[i], (int)vid_fullscreen.value); + i++; + + // added vsync to the video menu -- kristian + M_Print (16, video_cursor_table[i], " Vertical Sync"); + if (gl_swap_control) + M_DrawCheckbox (216, video_cursor_table[i], (int)vid_vsync.value); + else + M_Print (216, video_cursor_table[i], "N/A"); + + i++; + + M_Print (16, video_cursor_table[i], " Test changes"); + i++; + + M_Print (16, video_cursor_table[i], " Apply changes"); + + // cursor + M_DrawCharacter (200, video_cursor_table[video_options_cursor], 12+((int)(realtime*4)&1)); + + // notes "345678901234567890123456789012345678" +// M_Print (16, 172, "Windowed modes always use the desk- "); +// M_Print (16, 180, "top color depth, and can never be "); +// M_Print (16, 188, "larger than the desktop resolution. "); +} + +/* +================ +VID_Menu_f +================ +*/ +void VID_Menu_f (void) +{ + key_dest = key_menu; + m_state = m_video; + m_entersound = true; + + //set all the cvars to match the current mode when entering the menu + VID_SyncCvars (); + + //set up bpp and rate lists based on current cvars + VID_Menu_RebuildBppList (); +} diff --git a/quakespasm/Quake/gl_warp.c b/quakespasm/Quake/gl_warp.c new file mode 100644 index 00000000..e064086f --- /dev/null +++ b/quakespasm/Quake/gl_warp.c @@ -0,0 +1,267 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. +*/ +//gl_warp.c -- warping animation support + +#include "quakedef.h" + +extern cvar_t r_drawflat; + +cvar_t r_oldwater = {"r_oldwater", "1"}; +cvar_t r_waterquality = {"r_waterquality", "8"}; +cvar_t r_waterwarp = {"r_waterwarp", "1"}; + +float load_subdivide_size; //johnfitz -- remember what subdivide_size value was when this map was loaded + +float turbsin[] = +{ + #include "gl_warp_sin.h" +}; + +#define WARPCALC(s,t) ((s + turbsin[(int)((t*2)+(cl.time*(128.0/M_PI))) & 255]) * (1.0/64)) //johnfitz -- correct warp +#define WARPCALC2(s,t) ((s + turbsin[(int)((t*0.125+cl.time)*(128.0/M_PI)) & 255]) * (1.0/64)) //johnfitz -- old warp + +//============================================================================== +// +// OLD-STYLE WATER +// +//============================================================================== + +extern model_t *loadmodel; + +msurface_t *warpface; + +cvar_t gl_subdivide_size = {"gl_subdivide_size", "128", true}; + +void BoundPoly (int numverts, float *verts, vec3_t mins, vec3_t maxs) +{ + int i, j; + float *v; + + mins[0] = mins[1] = mins[2] = 9999; + maxs[0] = maxs[1] = maxs[2] = -9999; + v = verts; + for (i=0 ; i maxs[j]) + maxs[j] = *v; + } +} + +void SubdividePolygon (int numverts, float *verts) +{ + int i, j, k; + vec3_t mins, maxs; + float m; + float *v; + vec3_t front[64], back[64]; + int f, b; + float dist[64]; + float frac; + glpoly_t *poly; + float s, t; + + if (numverts > 60) + Sys_Error ("numverts = %i", numverts); + + BoundPoly (numverts, verts, mins, maxs); + + for (i=0 ; i<3 ; i++) + { + m = (mins[i] + maxs[i]) * 0.5; + m = gl_subdivide_size.value * floor (m/gl_subdivide_size.value + 0.5); + if (maxs[i] - m < 8) + continue; + if (m - mins[i] < 8) + continue; + + // cut it + v = verts + i; + for (j=0 ; j= 0) + { + VectorCopy (v, front[f]); + f++; + } + if (dist[j] <= 0) + { + VectorCopy (v, back[b]); + b++; + } + if (dist[j] == 0 || dist[j+1] == 0) + continue; + if ( (dist[j] > 0) != (dist[j+1] > 0) ) + { + // clip point + frac = dist[j] / (dist[j] - dist[j+1]); + for (k=0 ; k<3 ; k++) + front[f][k] = back[b][k] = v[k] + frac*(v[3+k] - v[k]); + f++; + b++; + } + } + + SubdividePolygon (f, front[0]); + SubdividePolygon (b, back[0]); + return; + } + + poly = Hunk_Alloc (sizeof(glpoly_t) + (numverts-4) * VERTEXSIZE*sizeof(float)); + poly->next = warpface->polys->next; + warpface->polys->next = poly; + poly->numverts = numverts; + for (i=0 ; iverts[i]); + s = DotProduct (verts, warpface->texinfo->vecs[0]); + t = DotProduct (verts, warpface->texinfo->vecs[1]); + poly->verts[i][3] = s; + poly->verts[i][4] = t; + } +} + +/* +================ +GL_SubdivideSurface +================ +*/ +void GL_SubdivideSurface (msurface_t *fa) +{ + vec3_t verts[64]; + int i; + + warpface = fa; + + //the first poly in the chain is the undivided poly for newwater rendering. + //grab the verts from that. + for (i=0; ipolys->numverts; i++) + VectorCopy (fa->polys->verts[i], verts[i]); + + SubdividePolygon (fa->polys->numverts, verts[0]); +} + +/* +================ +DrawWaterPoly -- johnfitz +================ +*/ +void DrawWaterPoly (glpoly_t *p) +{ + float *v; + int i; + + if (load_subdivide_size > 48) + { + glBegin (GL_POLYGON); + v = p->verts[0]; + for (i=0 ; inumverts ; i++, v+= VERTEXSIZE) + { + glTexCoord2f (WARPCALC2(v[3],v[4]), WARPCALC2(v[4],v[3])); + glVertex3fv (v); + } + glEnd (); + } + else + { + glBegin (GL_POLYGON); + v = p->verts[0]; + for (i=0 ; inumverts ; i++, v+= VERTEXSIZE) + { + glTexCoord2f (WARPCALC(v[3],v[4]), WARPCALC(v[4],v[3])); + glVertex3fv (v); + } + glEnd (); + } +} + +//============================================================================== +// +// RENDER-TO-FRAMEBUFFER WATER +// +//============================================================================== + +/* +============= +R_UpdateWarpTextures -- johnfitz -- each frame, update warping textures +============= +*/ +void R_UpdateWarpTextures (void) +{ + texture_t *tx; + int i; + float x, y, x2, warptess; + + if (r_oldwater.value || cl.paused || r_drawflat_cheatsafe || r_lightmap_cheatsafe) + return; + + warptess = 128.0/CLAMP (3.0, floor(r_waterquality.value), 64.0); + + for (i=0; inumtextures; i++) + { + if (!(tx = cl.worldmodel->textures[i])) + continue; + + if (!tx->update_warp) + continue; + + //render warp + GL_SetCanvas (CANVAS_WARPIMAGE); + GL_Bind (tx->gltexture); + for (x=0.0; x<128.0; x=x2) + { + x2 = x + warptess; + glBegin (GL_TRIANGLE_STRIP); + for (y=0.0; y<128.01; y+=warptess) // .01 for rounding errors + { + glTexCoord2f (WARPCALC(x,y), WARPCALC(y,x)); + glVertex2f (x,y); + glTexCoord2f (WARPCALC(x2,y), WARPCALC(y,x2)); + glVertex2f (x2,y); + } + glEnd(); + } + + //copy to texture + GL_Bind (tx->warpimage); + glCopyTexSubImage2D (GL_TEXTURE_2D, 0, 0, 0, glx, gly+glheight-gl_warpimagesize, gl_warpimagesize, gl_warpimagesize); + + tx->update_warp = false; + } + + //if warp render went down into sbar territory, we need to be sure to refresh it next frame + if (gl_warpimagesize + sb_lines > glheight) + Sbar_Changed (); + + //if viewsize is less than 100, we need to redraw the frame around the viewport + scr_tileclear_updates = 0; +} diff --git a/quakespasm/Quake/gl_warp_sin.h b/quakespasm/Quake/gl_warp_sin.h new file mode 100644 index 00000000..3ca2e9c3 --- /dev/null +++ b/quakespasm/Quake/gl_warp_sin.h @@ -0,0 +1,52 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ + 0, 0.19633, 0.392541, 0.588517, 0.784137, 0.979285, 1.17384, 1.3677, + 1.56072, 1.75281, 1.94384, 2.1337, 2.32228, 2.50945, 2.69512, 2.87916, + 3.06147, 3.24193, 3.42044, 3.59689, 3.77117, 3.94319, 4.11282, 4.27998, + 4.44456, 4.60647, 4.76559, 4.92185, 5.07515, 5.22538, 5.37247, 5.51632, + 5.65685, 5.79398, 5.92761, 6.05767, 6.18408, 6.30677, 6.42566, 6.54068, + 6.65176, 6.75883, 6.86183, 6.9607, 7.05537, 7.14579, 7.23191, 7.31368, + 7.39104, 7.46394, 7.53235, 7.59623, 7.65552, 7.71021, 7.76025, 7.80562, + 7.84628, 7.88222, 7.91341, 7.93984, 7.96148, 7.97832, 7.99036, 7.99759, + 8, 7.99759, 7.99036, 7.97832, 7.96148, 7.93984, 7.91341, 7.88222, + 7.84628, 7.80562, 7.76025, 7.71021, 7.65552, 7.59623, 7.53235, 7.46394, + 7.39104, 7.31368, 7.23191, 7.14579, 7.05537, 6.9607, 6.86183, 6.75883, + 6.65176, 6.54068, 6.42566, 6.30677, 6.18408, 6.05767, 5.92761, 5.79398, + 5.65685, 5.51632, 5.37247, 5.22538, 5.07515, 4.92185, 4.76559, 4.60647, + 4.44456, 4.27998, 4.11282, 3.94319, 3.77117, 3.59689, 3.42044, 3.24193, + 3.06147, 2.87916, 2.69512, 2.50945, 2.32228, 2.1337, 1.94384, 1.75281, + 1.56072, 1.3677, 1.17384, 0.979285, 0.784137, 0.588517, 0.392541, 0.19633, + 9.79717e-16, -0.19633, -0.392541, -0.588517, -0.784137, -0.979285, -1.17384, -1.3677, + -1.56072, -1.75281, -1.94384, -2.1337, -2.32228, -2.50945, -2.69512, -2.87916, + -3.06147, -3.24193, -3.42044, -3.59689, -3.77117, -3.94319, -4.11282, -4.27998, + -4.44456, -4.60647, -4.76559, -4.92185, -5.07515, -5.22538, -5.37247, -5.51632, + -5.65685, -5.79398, -5.92761, -6.05767, -6.18408, -6.30677, -6.42566, -6.54068, + -6.65176, -6.75883, -6.86183, -6.9607, -7.05537, -7.14579, -7.23191, -7.31368, + -7.39104, -7.46394, -7.53235, -7.59623, -7.65552, -7.71021, -7.76025, -7.80562, + -7.84628, -7.88222, -7.91341, -7.93984, -7.96148, -7.97832, -7.99036, -7.99759, + -8, -7.99759, -7.99036, -7.97832, -7.96148, -7.93984, -7.91341, -7.88222, + -7.84628, -7.80562, -7.76025, -7.71021, -7.65552, -7.59623, -7.53235, -7.46394, + -7.39104, -7.31368, -7.23191, -7.14579, -7.05537, -6.9607, -6.86183, -6.75883, + -6.65176, -6.54068, -6.42566, -6.30677, -6.18408, -6.05767, -5.92761, -5.79398, + -5.65685, -5.51632, -5.37247, -5.22538, -5.07515, -4.92185, -4.76559, -4.60647, + -4.44456, -4.27998, -4.11282, -3.94319, -3.77117, -3.59689, -3.42044, -3.24193, + -3.06147, -2.87916, -2.69512, -2.50945, -2.32228, -2.1337, -1.94384, -1.75281, + -1.56072, -1.3677, -1.17384, -0.979285, -0.784137, -0.588517, -0.392541, -0.19633, diff --git a/quakespasm/Quake/glquake.h b/quakespasm/Quake/glquake.h new file mode 100644 index 00000000..afeedba9 --- /dev/null +++ b/quakespasm/Quake/glquake.h @@ -0,0 +1,274 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// disable data conversion warnings + +void GL_BeginRendering (int *x, int *y, int *width, int *height); +void GL_EndRendering (void); + +//johnfitz -- removed texture object stuff since they are standard in gl 1.1 + +typedef struct +{ + float x, y, z; + float s, t; + float r, g, b; +} glvert_t; + +extern glvert_t glv; + +extern int glx, gly, glwidth, glheight; + +// r_local.h -- private refresh defs + +#define ALIAS_BASE_SIZE_RATIO (1.0 / 11.0) + // normalizing factor so player model works out to about + // 1 pixel per triangle +#define MAX_LBM_HEIGHT 480 + +#define TILE_SIZE 128 // size of textures generated by R_GenTiledSurf + +#define SKYSHIFT 7 +#define SKYSIZE (1 << SKYSHIFT) +#define SKYMASK (SKYSIZE - 1) + +#define BACKFACE_EPSILON 0.01 + + +void R_TimeRefresh_f (void); +void R_ReadPointFile_f (void); +texture_t *R_TextureAnimation (texture_t *base, int frame); + +typedef struct surfcache_s +{ + struct surfcache_s *next; + struct surfcache_s **owner; // NULL is an empty chunk of memory + int lightadj[MAXLIGHTMAPS]; // checked for strobe flush + int dlight; + int size; // including header + unsigned width; + unsigned height; // DEBUG only needed for debug + float mipscale; + struct texture_s *texture; // checked for animating textures + byte data[4]; // width*height elements +} surfcache_t; + + +typedef struct +{ + pixel_t *surfdat; // destination for generated surface + int rowbytes; // destination logical width in bytes + msurface_t *surf; // description for surface to generate + fixed8_t lightadj[MAXLIGHTMAPS]; + // adjust for lightmap levels for dynamic lighting + texture_t *texture; // corrected for animating textures + int surfmip; // mipmapped ratio of surface texels / world pixels + int surfwidth; // in mipmapped texels + int surfheight; // in mipmapped texels +} drawsurf_t; + + +typedef enum { + pt_static, pt_grav, pt_slowgrav, pt_fire, pt_explode, pt_explode2, pt_blob, pt_blob2 +} ptype_t; + +// !!! if this is changed, it must be changed in d_ifacea.h too !!! +typedef struct particle_s +{ +// driver-usable fields + vec3_t org; + float color; +// drivers never touch the following fields + struct particle_s *next; + vec3_t vel; + float ramp; + float die; + ptype_t type; +} particle_t; + + +//==================================================== + +extern qboolean r_cache_thrash; // compatability +extern vec3_t modelorg, r_entorigin; +extern entity_t *currententity; +extern int r_visframecount; // ??? what difs? +extern int r_framecount; +extern mplane_t frustum[4]; + +// +// 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_refdef; +extern mleaf_t *r_viewleaf, *r_oldviewleaf; +extern int d_lightstylevalue[256]; // 8.8 fraction of base light value + +extern qboolean envmap; + +extern cvar_t r_norefresh; +extern cvar_t r_drawentities; +extern cvar_t r_drawworld; +extern cvar_t r_drawviewmodel; +extern cvar_t r_speeds; +extern cvar_t r_waterwarp; +extern cvar_t r_fullbright; +extern cvar_t r_lightmap; +extern cvar_t r_shadows; +extern cvar_t r_wateralpha; +extern cvar_t r_dynamic; +extern cvar_t r_novis; + +extern cvar_t gl_clear; +extern cvar_t gl_cull; +extern cvar_t gl_smoothmodels; +extern cvar_t gl_affinemodels; +extern cvar_t gl_polyblend; +extern cvar_t gl_flashblend; +extern cvar_t gl_nocolors; + +extern cvar_t gl_max_size; +extern cvar_t gl_playermip; + +extern float r_world_matrix[16]; + +extern const char *gl_vendor; +extern const char *gl_renderer; +extern const char *gl_version; +extern const char *gl_extensions; + +void R_TranslatePlayerSkin (int playernum); +void R_TranslateNewPlayerSkin (int playernum); //johnfitz -- this handles cases when the actual texture changes + +// Multitexture +#define TEXTURE0_SGIS 0x835E +#define TEXTURE1_SGIS 0x835F + +//#define APIENTRY /* */ + +//johnfitz -- modified multitexture support +/* +typedef void (APIENTRY *SELECTTEXFUNC) (GLenum); +typedef void (APIENTRY *MTEXCOORDFUNC) (GLenum, GLfloat, GLfloat); +extern MTEXCOORDFUNC GL_MTexCoord2fFunc; +extern SELECTTEXFUNC GL_SelectTextureFunc; +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +*/ +//johnfitz + + +extern PFNGLMULTITEXCOORD2FARBPROC GL_MTexCoord2fFunc; +extern PFNGLACTIVETEXTUREARBPROC GL_SelectTextureFunc; +extern GLenum TEXTURE0, TEXTURE1; + +//johnfitz -- anisotropic filtering +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +//johnfitz + +//johnfitz -- polygon offset +#define OFFSET_BMODEL 1 +#define OFFSET_NONE 0 +#define OFFSET_DECAL -1 +#define OFFSET_FOG -2 +#define OFFSET_SHOWTRIS -3 +void GL_PolygonOffset (int); +//johnfitz + +//johnfitz -- GL_EXT_texture_env_combine +//the values for GL_ARB_ are identical +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +extern qboolean gl_texture_env_combine; +//johnfitz + +extern qboolean gl_texture_env_add; //johnfitz -- for GL_EXT_texture_env_add + +extern qboolean isIntelVideo; //johnfitz -- intel video workarounds from Baker + +//johnfitz -- rendering statistics +extern int rs_brushpolys, rs_aliaspolys, rs_skypolys, rs_particles, rs_fogpolys; +extern int rs_dynamiclightmaps, rs_brushpasses, rs_aliaspasses, rs_skypasses; +extern float rs_megatexels; +//johnfitz + +//johnfitz -- track developer statistics that vary every frame +extern cvar_t devstats; +typedef struct { + int packetsize; + int edicts; + int visedicts; + int efrags; + int tempents; + int beams; + int dlights; +} devstats_t; +devstats_t dev_stats, dev_peakstats; +//johnfitz + +//ohnfitz -- reduce overflow warning spam +typedef struct { + double packetsize; + double efrags; + double beams; +} overflowtimes_t; +overflowtimes_t dev_overflows; //this stores the last time overflow messages were displayed, not the last time overflows occured +#define CONSOLE_RESPAM_TIME 3 // seconds between repeated warning messages +//johnfitz + +//johnfitz -- moved here from r_brush.c +#define MAX_LIGHTMAPS 256 //johnfitz -- was 64 +gltexture_t *lightmap_textures[MAX_LIGHTMAPS]; //johnfitz -- changed to an array +//johnfitz + +int gl_warpimagesize; //johnfitz -- for water warp + +qboolean r_drawflat_cheatsafe, r_fullbright_cheatsafe, r_lightmap_cheatsafe, r_drawworld_cheatsafe; //johnfitz + +//johnfitz -- fog functions called from outside gl_fog.c +void Fog_ParseServerMessage (void); +float *Fog_GetColor (void); +float Fog_GetDensity (void); +void Fog_EnableGFog (void); +void Fog_DisableGFog (void); +void Fog_StartAdditive (void); +void Fog_StopAdditive (void); +void Fog_SetupFrame (void); +void Fog_NewMap (void); +void Fog_Init (void); +//johnfitz diff --git a/quakespasm/Quake/host.c b/quakespasm/Quake/host.c new file mode 100644 index 00000000..4a9d0f48 --- /dev/null +++ b/quakespasm/Quake/host.c @@ -0,0 +1,899 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// host.c -- coordinates spawning and killing of local servers + +#include "quakedef.h" + +/* + +A server can allways be started, even if the system started out as a client +to a remote system. + +A client can NOT be started if the system started as a dedicated server. + +Memory is cleared / released when a server or client begins, not when they end. + +*/ + +quakeparms_t host_parms; + +qboolean host_initialized; // true if into command execution + +double host_frametime; +double host_time; +double realtime; // without any filtering or bounding +double oldrealtime; // last frame run +int host_framecount; + +int host_hunklevel; + +int minimum_memory; + +client_t *host_client; // current client + +jmp_buf host_abortserver; + +byte *host_colormap; + +cvar_t host_framerate = {"host_framerate","0"}; // set for slow motion +cvar_t host_speeds = {"host_speeds","0"}; // set for running times +cvar_t host_maxfps = {"host_maxfps", "72", true}; //johnfitz +cvar_t host_timescale = {"host_timescale", "0"}; //johnfitz +cvar_t max_edicts = {"max_edicts", "1024", true}; //johnfitz + +cvar_t sys_ticrate = {"sys_ticrate","0.05"}; // dedicated server +cvar_t serverprofile = {"serverprofile","0"}; + +cvar_t fraglimit = {"fraglimit","0",false,true}; +cvar_t timelimit = {"timelimit","0",false,true}; +cvar_t teamplay = {"teamplay","0",false,true}; +cvar_t samelevel = {"samelevel","0"}; +cvar_t noexit = {"noexit","0",false,true}; +cvar_t skill = {"skill","1"}; // 0 - 3 +cvar_t deathmatch = {"deathmatch","0"}; // 0, 1, or 2 +cvar_t coop = {"coop","0"}; // 0 or 1 + +cvar_t pausable = {"pausable","1"}; + +cvar_t developer = {"developer","0"}; + +cvar_t temp1 = {"temp1","0"}; + +cvar_t devstats = {"devstats","0"}; //johnfitz -- track developer statistics that vary every frame + +/* +================ +Max_Edicts_f -- johnfitz +================ +*/ +void Max_Edicts_f (void) +{ + static float oldval = 1024; //must match the default value for max_edicts + + //TODO: clamp it here? + + if (max_edicts.value == oldval) + return; + + if (cls.state == ca_connected || sv.active) + Con_Printf ("Changes to max_edicts will not take effect until the next time a map is loaded.\n"); + + oldval = max_edicts.value; +} + +/* +================ +Host_EndGame +================ +*/ +void Host_EndGame (char *message, ...) +{ + va_list argptr; + char string[1024]; + + va_start (argptr,message); + vsprintf (string,message,argptr); + va_end (argptr); + Con_DPrintf ("Host_EndGame: %s\n",string); + + if (sv.active) + Host_ShutdownServer (false); + + if (cls.state == ca_dedicated) + Sys_Error ("Host_EndGame: %s\n",string); // dedicated servers exit + + if (cls.demonum != -1) + CL_NextDemo (); + else + CL_Disconnect (); + + longjmp (host_abortserver, 1); +} + +/* +================ +Host_Error + +This shuts down both the client and server +================ +*/ +void Host_Error (char *error, ...) +{ + va_list argptr; + char string[1024]; + static qboolean inerror = false; + + if (inerror) + Sys_Error ("Host_Error: recursively entered"); + inerror = true; + + SCR_EndLoadingPlaque (); // reenable screen updates + + va_start (argptr,error); + vsprintf (string,error,argptr); + va_end (argptr); + Con_Printf ("Host_Error: %s\n",string); + + if (sv.active) + Host_ShutdownServer (false); + + if (cls.state == ca_dedicated) + Sys_Error ("Host_Error: %s\n",string); // dedicated servers exit + + CL_Disconnect (); + cls.demonum = -1; + cl.intermission = 0; //johnfitz -- for errors during intermissions (changelevel with no map found, etc.) + + inerror = false; + + longjmp (host_abortserver, 1); +} + +/* +================ +Host_FindMaxClients +================ +*/ +void Host_FindMaxClients (void) +{ + int i; + + svs.maxclients = 1; + + i = COM_CheckParm ("-dedicated"); + if (i) + { + cls.state = ca_dedicated; + if (i != (com_argc - 1)) + { + svs.maxclients = Q_atoi (com_argv[i+1]); + } + else + svs.maxclients = 8; + } + else + cls.state = ca_disconnected; + + i = COM_CheckParm ("-listen"); + if (i) + { + if (cls.state == ca_dedicated) + Sys_Error ("Only one of -dedicated or -listen can be specified"); + if (i != (com_argc - 1)) + svs.maxclients = Q_atoi (com_argv[i+1]); + else + svs.maxclients = 8; + } + if (svs.maxclients < 1) + svs.maxclients = 8; + else if (svs.maxclients > MAX_SCOREBOARD) + svs.maxclients = MAX_SCOREBOARD; + + svs.maxclientslimit = svs.maxclients; + if (svs.maxclientslimit < 4) + svs.maxclientslimit = 4; + svs.clients = Hunk_AllocName (svs.maxclientslimit*sizeof(client_t), "clients"); + + if (svs.maxclients > 1) + Cvar_SetValue ("deathmatch", 1.0); + else + Cvar_SetValue ("deathmatch", 0.0); +} + +/* +======================= +Host_InitLocal +====================== +*/ +void Host_InitLocal (void) +{ + Host_InitCommands (); + + Cvar_RegisterVariable (&host_framerate, NULL); + Cvar_RegisterVariable (&host_speeds, NULL); + Cvar_RegisterVariable (&host_maxfps, NULL); //johnfitz + Cvar_RegisterVariable (&host_timescale, NULL); //johnfitz + + Cvar_RegisterVariable (&max_edicts, Max_Edicts_f); //johnfitz + Cvar_RegisterVariable (&devstats, NULL); //johnfitz + + Cvar_RegisterVariable (&sys_ticrate, NULL); + Cvar_RegisterVariable (&serverprofile, NULL); + + Cvar_RegisterVariable (&fraglimit, NULL); + Cvar_RegisterVariable (&timelimit, NULL); + Cvar_RegisterVariable (&teamplay, NULL); + Cvar_RegisterVariable (&samelevel, NULL); + Cvar_RegisterVariable (&noexit, NULL); + Cvar_RegisterVariable (&skill, NULL); + Cvar_RegisterVariable (&developer, NULL); + Cvar_RegisterVariable (&deathmatch, NULL); + Cvar_RegisterVariable (&coop, NULL); + + Cvar_RegisterVariable (&pausable, NULL); + + Cvar_RegisterVariable (&temp1, NULL); + + Host_FindMaxClients (); + + host_time = 1.0; // so a think at time 0 won't get called +} + + +/* +=============== +Host_WriteConfiguration + +Writes key bindings and archived cvars to config.cfg +=============== +*/ +void Host_WriteConfiguration (void) +{ + FILE *f; + +// dedicated servers initialize the host but don't parse and set the +// config.cfg cvars + if (host_initialized & !isDedicated) + { + f = fopen (va("%s/config.cfg", com_gamedir), "w"); + if (!f) + { + Con_Printf ("Couldn't write config.cfg.\n"); + return; + } + + VID_SyncCvars (); //johnfitz -- write actual current mode to config file, in case cvars were messed with + + Key_WriteBindings (f); + Cvar_WriteVariables (f); + + //johnfitz -- extra commands to preserve state + fprintf (f, "vid_restart\n"); + if (in_mlook.state & 1) fprintf (f, "+mlook\n"); + //johnfitz + + fclose (f); + +//johnfitz -- also save fitzquake.rc +#if 0 + f = fopen (va("%s/fitzquake.rc", GAMENAME), "w"); //always save in id1 + if (!f) + { + Con_Printf ("Couldn't write fitzquake.rc.\n"); + return; + } + + Cvar_WriteVariables (f); + fprintf (f, "vid_restart\n"); + if (in_mlook.state & 1) fprintf (f, "+mlook\n"); + + fclose (f); +#endif +//johnfitz + } +} + + +/* +================= +SV_ClientPrintf + +Sends text across to be displayed +FIXME: make this just a stuffed echo? +================= +*/ +void SV_ClientPrintf (char *fmt, ...) +{ + va_list argptr; + char string[1024]; + + va_start (argptr,fmt); + vsprintf (string, fmt,argptr); + va_end (argptr); + + MSG_WriteByte (&host_client->message, svc_print); + MSG_WriteString (&host_client->message, string); +} + +/* +================= +SV_BroadcastPrintf + +Sends text to all active clients +================= +*/ +void SV_BroadcastPrintf (char *fmt, ...) +{ + va_list argptr; + char string[1024]; + int i; + + va_start (argptr,fmt); + vsprintf (string, fmt,argptr); + va_end (argptr); + + for (i=0 ; imessage, svc_stufftext); + MSG_WriteString (&host_client->message, string); +} + +/* +===================== +SV_DropClient + +Called when the player is getting totally kicked off the host +if (crash = true), don't bother sending signofs +===================== +*/ +void SV_DropClient (qboolean crash) +{ + int saveSelf; + int i; + client_t *client; + + if (!crash) + { + // send any final messages (don't check for errors) + if (NET_CanSendMessage (host_client->netconnection)) + { + MSG_WriteByte (&host_client->message, svc_disconnect); + NET_SendMessage (host_client->netconnection, &host_client->message); + } + + if (host_client->edict && host_client->spawned) + { + // call the prog function for removing a client + // this will set the body to a dead frame, among other things + saveSelf = pr_global_struct->self; + pr_global_struct->self = EDICT_TO_PROG(host_client->edict); + PR_ExecuteProgram (pr_global_struct->ClientDisconnect); + pr_global_struct->self = saveSelf; + } + + Sys_Printf ("Client %s removed\n",host_client->name); + } + +// break the net connection + NET_Close (host_client->netconnection); + host_client->netconnection = NULL; + +// free the client (the body stays around) + host_client->active = false; + host_client->name[0] = 0; + host_client->old_frags = -999999; + net_activeconnections--; + +// send notification to all clients + for (i=0, client = svs.clients ; iactive) + continue; + MSG_WriteByte (&client->message, svc_updatename); + MSG_WriteByte (&client->message, host_client - svs.clients); + MSG_WriteString (&client->message, ""); + MSG_WriteByte (&client->message, svc_updatefrags); + MSG_WriteByte (&client->message, host_client - svs.clients); + MSG_WriteShort (&client->message, 0); + MSG_WriteByte (&client->message, svc_updatecolors); + MSG_WriteByte (&client->message, host_client - svs.clients); + MSG_WriteByte (&client->message, 0); + } +} + +/* +================== +Host_ShutdownServer + +This only happens at the end of a game, not between levels +================== +*/ +void Host_ShutdownServer(qboolean crash) +{ + int i; + int count; + sizebuf_t buf; + char message[4]; + double start; + + if (!sv.active) + return; + + sv.active = false; + +// stop all client sounds immediately + if (cls.state == ca_connected) + CL_Disconnect (); + +// flush any pending messages - like the score!!! + start = Sys_FloatTime(); + do + { + count = 0; + for (i=0, host_client = svs.clients ; iactive && host_client->message.cursize) + { + if (NET_CanSendMessage (host_client->netconnection)) + { + NET_SendMessage(host_client->netconnection, &host_client->message); + SZ_Clear (&host_client->message); + } + else + { + NET_GetMessage(host_client->netconnection); + count++; + } + } + } + if ((Sys_FloatTime() - start) > 3.0) + break; + } + while (count); + +// make sure all the clients know we're disconnecting + buf.data = message; + buf.maxsize = 4; + buf.cursize = 0; + MSG_WriteByte(&buf, svc_disconnect); + count = NET_SendToAll(&buf, 5); + if (count) + Con_Printf("Host_ShutdownServer: NET_SendToAll failed for %u clients\n", count); + + for (i=0, host_client = svs.clients ; iactive) + SV_DropClient(crash); + +// +// clear structures +// + memset (&sv, 0, sizeof(sv)); + memset (svs.clients, 0, svs.maxclientslimit*sizeof(client_t)); +} + + +/* +================ +Host_ClearMemory + +This clears all the memory used by both the client and server, but does +not reinitialize anything. +================ +*/ +void Host_ClearMemory (void) +{ + Con_DPrintf ("Clearing memory\n"); + D_FlushCaches (); + Mod_ClearAll (); + if (host_hunklevel) + Hunk_FreeToLowMark (host_hunklevel); + + cls.signon = 0; + memset (&sv, 0, sizeof(sv)); + memset (&cl, 0, sizeof(cl)); +} + + +//============================================================================== +// +// Host Frame +// +//============================================================================== + +/* +=================== +Host_FilterTime + +Returns false if the time is too short to run a frame +=================== +*/ +qboolean Host_FilterTime (float time) +{ + float maxfps; //johnfitz + + realtime += time; + + //johnfitz -- max fps cvar + maxfps = CLAMP (10.0, host_maxfps.value, 1000.0); + if (!cls.timedemo && realtime - oldrealtime < 1.0/maxfps) + return false; // framerate is too high + //johnfitz + + host_frametime = realtime - oldrealtime; + oldrealtime = realtime; + + //johnfitz -- host_timescale is more intuitive than host_framerate + if (host_timescale.value > 0) + host_frametime *= host_timescale.value; + //johnfitz + else if (host_framerate.value > 0) + host_frametime = host_framerate.value; + else // don't allow really long or short frames + host_frametime = CLAMP (0.001, host_frametime, 0.1); //johnfitz -- use CLAMP + + return true; +} + +/* +=================== +Host_GetConsoleCommands + +Add them exactly as if they had been typed at the console +=================== +*/ +void Host_GetConsoleCommands (void) +{ + char *cmd; + + while (1) + { + cmd = Sys_ConsoleInput (); + if (!cmd) + break; + Cbuf_AddText (cmd); + } +} + +/* +================== +Host_ServerFrame +================== +*/ +void Host_ServerFrame (void) +{ + int i, active; //johnfitz + edict_t *ent; //johnfitz + +// run the world state + pr_global_struct->frametime = host_frametime; + +// set the time and clear the general datagram + SV_ClearDatagram (); + +// check for new clients + SV_CheckForNewClients (); + +// read client messages + SV_RunClients (); + +// move things around and think +// always pause in single player if in console or menus + if (!sv.paused && (svs.maxclients > 1 || key_dest == key_game) ) + SV_Physics (); + +//johnfitz -- devstats + if (cls.signon == SIGNONS) + { + for (i=0, active=0; ifree) + active++; + } + if (active > 600 && dev_peakstats.edicts <= 600) + Con_Warning ("%i edicts exceeds standard limit of 600.\n", active); + dev_stats.edicts = active; + dev_peakstats.edicts = max(active, dev_peakstats.edicts); + } +//johnfitz + +// send all messages to the clients + SV_SendClientMessages (); +} + +/* +================== +Host_Frame + +Runs all active servers +================== +*/ +void _Host_Frame (float time) +{ + static double time1 = 0; + static double time2 = 0; + static double time3 = 0; + int pass1, pass2, pass3; + + if (setjmp (host_abortserver) ) + return; // something bad happened, or the server disconnected + +// keep the random time dependent + rand (); + +// decide the simulation time + if (!Host_FilterTime (time)) + return; // don't run too fast, or packets will flood out + +// get new key events + //Sys_SendKeyEvents (); not needed for SDL + +// allow mice or other external controllers to add commands + IN_Commands (); + +// process console commands + Cbuf_Execute (); + + NET_Poll(); + +// if running the server locally, make intentions now + if (sv.active) + CL_SendCmd (); + +//------------------- +// +// server operations +// +//------------------- + +// check for commands typed to the host + Host_GetConsoleCommands (); + + if (sv.active) + Host_ServerFrame (); + +//------------------- +// +// client operations +// +//------------------- + +// if running the server remotely, send intentions now after +// the incoming messages have been read + if (!sv.active) + CL_SendCmd (); + + host_time += host_frametime; + +// fetch results from server + if (cls.state == ca_connected) + { + CL_ReadFromServer (); + } + +// update video + if (host_speeds.value) + time1 = Sys_FloatTime (); + + SCR_UpdateScreen (); + + CL_RunParticles (); //johnfitz -- seperated from rendering + + if (host_speeds.value) + time2 = Sys_FloatTime (); + +// update audio + if (cls.signon == SIGNONS) + { + S_Update (r_origin, vpn, vright, vup); + CL_DecayLights (); + } + else + S_Update (vec3_origin, vec3_origin, vec3_origin, vec3_origin); + + CDAudio_Update(); + + if (host_speeds.value) + { + pass1 = (time1 - time3)*1000; + time3 = Sys_FloatTime (); + pass2 = (time2 - time1)*1000; + pass3 = (time3 - time2)*1000; + Con_Printf ("%3i tot %3i server %3i gfx %3i snd\n", + pass1+pass2+pass3, pass1, pass2, pass3); + } + + host_framecount++; + +} + +void Host_Frame (float time) +{ + double time1, time2; + static double timetotal; + static int timecount; + int i, c, m; + + if (!serverprofile.value) + { + _Host_Frame (time); + return; + } + + time1 = Sys_FloatTime (); + _Host_Frame (time); + time2 = Sys_FloatTime (); + + timetotal += time2 - time1; + timecount++; + + if (timecount < 1000) + return; + + m = timetotal*1000/timecount; + timecount = 0; + timetotal = 0; + c = 0; + for (i=0 ; imemsize = minimum_memory; + + host_parms = *parms; + + if (parms->memsize < minimum_memory) + Sys_Error ("Only %4.1f megs of memory available, can't execute game", parms->memsize / (float)0x100000); + + com_argc = parms->argc; + com_argv = parms->argv; + + Memory_Init (parms->membase, parms->memsize); + Cbuf_Init (); + Cmd_Init (); + Cvar_Init (); //johnfitz + V_Init (); + Chase_Init (); + COM_Init (parms->basedir); + Host_InitLocal (); + W_LoadWadFile (); //johnfitz -- filename is now hard-coded for honesty + Key_Init (); + Con_Init (); + M_Init (); + PR_Init (); + Mod_Init (); + NET_Init (); + SV_Init (); + ExtraMaps_Init (); //johnfitz + Modlist_Init (); //johnfitz + + Con_Printf ("Exe: "__TIME__" "__DATE__"\n"); + Con_Printf ("%4.1f megabyte heap\n",parms->memsize/ (1024*1024.0)); + + if (cls.state != ca_dedicated) + { + host_colormap = (byte *)COM_LoadHunkFile ("gfx/colormap.lmp"); + if (!host_colormap) + Sys_Error ("Couldn't load gfx/colormap.lmp"); + + VID_Init (); + IN_Init (); // moved here, SDL inits the input system with the video system -- kristian + TexMgr_Init (); //johnfitz + Draw_Init (); + SCR_Init (); + R_Init (); + S_Init (); + CDAudio_Init (); + Sbar_Init (); + CL_Init (); + } + + Cbuf_InsertText ("exec quake.rc\n"); +// Cbuf_InsertText ("exec fitzquake.rc\n"); //johnfitz (inserted second so it'll be executed first) + + Cbuf_AddText ("\n\nvid_unlock\n"); //johnfitz -- in case the vid mode was locked during vid_init, we can unlock it now. + //note: added two newlines to the front becuase the command buffer swallows one of them. + + Hunk_AllocName (0, "-HOST_HUNKLEVEL-"); + host_hunklevel = Hunk_LowMark (); + + host_initialized = true; + + Con_Printf ("\n========= Quake Initialized =========\n\n"); //johnfitz - was Sys_Printf +} + + +/* +=============== +Host_Shutdown + +FIXME: this is a callback from Sys_Quit and Sys_Error. It would be better +to run quit through here before the final handoff to the sys code. +=============== +*/ +void Host_Shutdown(void) +{ + static qboolean isdown = false; + + if (isdown) + { + printf ("recursive shutdown\n"); + return; + } + isdown = true; + +// keep Con_Printf from trying to update the screen + scr_disabled_for_loading = true; + + Host_WriteConfiguration (); + + CDAudio_Shutdown (); + NET_Shutdown (); + S_Shutdown(); + + if (cls.state != ca_dedicated) + { + IN_Shutdown (); // input is only initialized in Host_Init if we're not dedicated -- kristian + VID_Shutdown(); + } +} + diff --git a/quakespasm/Quake/host_cmd.c b/quakespasm/Quake/host_cmd.c new file mode 100644 index 00000000..f7441aed --- /dev/null +++ b/quakespasm/Quake/host_cmd.c @@ -0,0 +1,2235 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 +#include "quakedef.h" + +extern cvar_t pausable; + +extern int com_nummissionpacks; //johnfitz + +int current_skill; + +void Mod_Print (void); + +/* +================== +Host_Quit_f +================== +*/ + +extern void M_Menu_Quit_f (void); + +void Host_Quit_f (void) +{ + if (key_dest != key_console && cls.state != ca_dedicated) + { + M_Menu_Quit_f (); + return; + } + CL_Disconnect (); + Host_ShutdownServer(false); + + Sys_Quit (); +} + +//============================================================================== +//johnfitz -- dynamic gamedir stuff +//============================================================================== + +// Declarations shared with common.c: +typedef struct +{ + char name[MAX_QPATH]; + int filepos, filelen; +} packfile_t; + +typedef struct pack_s +{ + char filename[MAX_OSPATH]; + int handle; + int numfiles; + packfile_t *files; +} pack_t; + +typedef struct searchpath_s +{ + char filename[MAX_OSPATH]; + pack_t *pack; // only one of filename / pack will be used + struct searchpath_s *next; +} searchpath_t; + +extern qboolean com_modified; +extern searchpath_t *com_searchpaths; +pack_t *COM_LoadPackFile (char *packfile); + +// Kill all the search packs until the game path is found. Kill it, then return +// the next path to it. +void KillGameDir(searchpath_t *search) +{ + searchpath_t *search_killer; + while (search) + { + if (*search->filename) + { + com_searchpaths = search->next; + Z_Free(search); + return; //once you hit the dir, youve already freed the paks + } + Sys_FileClose (search->pack->handle); //johnfitz + search_killer = search->next; + Z_Free(search->pack->files); + Z_Free(search->pack); + Z_Free(search); + search = search_killer; + } +} + +// Return the number of games in memory +int NumGames(searchpath_t *search) +{ + int found = 0; + while (search) + { + if (*search->filename) + found++; + search = search->next; + } + return found; +} + +void ExtraMaps_NewGame (void); + +/* +================== +Host_Game_f +================== +*/ +void Host_Game_f (void) +{ + int i; + searchpath_t *search = com_searchpaths; + pack_t *pak; + char pakfile[MAX_OSPATH]; //FIXME: it's confusing to use this string for two different things + + if (Cmd_Argc() > 1) + { + + if (!registered.value) //disable command for shareware quake + { + Con_Printf("You must have the registered version to use modified games\n"); + return; + } + + if (strstr(Cmd_Argv(1), "..")) + { + Con_Printf ("Relative pathnames are not allowed.\n"); + return; + } + + strcpy (pakfile, va("%s/%s", host_parms.basedir, Cmd_Argv(1))); + if (!Q_strcasecmp(pakfile, com_gamedir)) //no change + { + Con_Printf("\"game\" is already \"%s\"\n", COM_SkipPath(com_gamedir)); + return; + } + + com_modified = true; + + //Kill the server + CL_Disconnect (); + Host_ShutdownServer(true); + + //Write config file + Host_WriteConfiguration (); + + //Kill the extra game if it is loaded + if (NumGames(com_searchpaths) > 1 + com_nummissionpacks) + KillGameDir(com_searchpaths); + + strcpy (com_gamedir, pakfile); + + if (Q_strcasecmp(Cmd_Argv(1), GAMENAME)) //game is not id1 + { + search = Z_Malloc(sizeof(searchpath_t)); + strcpy (search->filename, pakfile); + search->next = com_searchpaths; + com_searchpaths = search; + + //Load the paks if any are found: + for (i = 0; ; i++) + { + sprintf (pakfile, "%s/pak%i.pak", com_gamedir, i); + pak = COM_LoadPackFile (pakfile); + if (!pak) + break; + search = Z_Malloc(sizeof(searchpath_t)); + search->pack = pak; + search->next = com_searchpaths; + com_searchpaths = search; + } + } + + //clear out and reload appropriate data + Cache_Flush (); + if (!isDedicated) + { + TexMgr_NewGame (); + Draw_NewGame (); + R_NewGame (); + } + ExtraMaps_NewGame (); + //Cbuf_InsertText ("exec quake.rc\n"); + + Con_Printf("\"game\" changed to \"%s\"\n", COM_SkipPath(com_gamedir)); + } + else //Diplay the current gamedir + Con_Printf("\"game\" is \"%s\"\n", COM_SkipPath(com_gamedir)); +} + +//============================================================================== +//johnfitz -- extramaps management +//============================================================================== + +typedef struct extralevel_s +{ + char name[32]; + struct extralevel_s *next; +} extralevel_t; + +extralevel_t *extralevels; + +void ExtraMaps_Add (char *name) +{ + extralevel_t *level,*cursor,*prev; + + //ingore duplicate + for (level = extralevels; level; level = level->next) + if (!Q_strcmp (name, level->name)) + return; + + level = Z_Malloc(sizeof(extralevel_t)); + strcpy (level->name, name); + + //insert each entry in alphabetical order + if (extralevels == NULL || Q_strcasecmp(level->name, extralevels->name) > 0) //insert at front + { + level->next = extralevels; + extralevels = level; + } + else //insert later + { + prev = extralevels; + cursor = extralevels->next; + while (cursor && (Q_strcasecmp(level->name, cursor->name) < 0)) + { + prev = cursor; + cursor = cursor->next; + } + level->next = prev->next; + prev->next = level; + } +} + +void ExtraMaps_Init (void) +{ + DIR *dir_p; + struct dirent *dir_t; + char filestring[MAX_OSPATH]; + char mapname[32]; + char ignorepakdir[32]; + searchpath_t *search; + pack_t *pak; + int i; + + //we don't want to list the maps in id1 pakfiles, becuase these are not "add-on" levels + sprintf (ignorepakdir, "/%s/", GAMENAME); + + for (search = com_searchpaths ; search ; search = search->next) + { + if (*search->filename) //directory + { + sprintf (filestring,"%s/maps/",search->filename); + dir_p = opendir(filestring); + + if (dir_p == NULL) + continue; + + while ((dir_t = readdir(dir_p)) != NULL) + { + if (!strstr(dir_t->d_name, ".bsp") && !strstr(dir_t->d_name, ".BSP")) + continue; + + COM_StripExtension(dir_t->d_name, mapname); + ExtraMaps_Add (mapname); + } + + closedir(dir_p); + } + else //pakfile + { + if (!strstr(search->pack->filename, ignorepakdir)) //don't list standard id maps + for (i=0, pak=search->pack; inumfiles ; i++) + if (strstr(pak->files[i].name, ".bsp")) + if (pak->files[i].filelen > 32*1024) // don't list files under 32k (ammo boxes etc) + { + COM_StripExtension(pak->files[i].name + 5, mapname); + ExtraMaps_Add (mapname); + } + } + } +} + +void ExtraMaps_Clear (void) +{ + extralevel_t *blah; + + while (extralevels) + { + blah = extralevels->next; + Z_Free(extralevels); + extralevels = blah; + } +} + +void ExtraMaps_NewGame (void) +{ + ExtraMaps_Clear (); + ExtraMaps_Init (); +} + +/* +================== +Host_Maps_f +================== +*/ +void Host_Maps_f (void) +{ + int i; + extralevel_t *level; + + for (level=extralevels, i=0; level; level=level->next, i++) + Con_SafePrintf (" %s\n", level->name); + + if (i) + Con_SafePrintf ("%i map(s)\n", i); + else + Con_SafePrintf ("no maps found\n"); +} + +//============================================================================== +//johnfitz -- modlist management +//============================================================================== + +typedef struct mod_s +{ + char name[MAX_OSPATH]; + struct mod_s *next; +} mod_t; + +mod_t *modlist; + +void Modlist_Add (char *name) +{ + mod_t *mod,*cursor,*prev; + + //ingore duplicate + for (mod = modlist; mod; mod = mod->next) + if (!Q_strcmp (name, mod->name)) + return; + + mod = Z_Malloc(sizeof(mod_t)); + strcpy (mod->name, name); + + //insert each entry in alphabetical order + if (modlist == NULL || Q_strcasecmp(mod->name, modlist->name) > 0) //insert at front + { + mod->next = modlist; + modlist = mod; + } + else //insert later + { + prev = modlist; + cursor = modlist->next; + while (cursor && (Q_strcasecmp(mod->name, cursor->name) < 0)) + { + prev = cursor; + cursor = cursor->next; + } + mod->next = prev->next; + prev->next = mod; + } +} + +void Modlist_Init (void) +{ + DIR *dir_p, *mod_dir_p; + struct dirent *dir_t, *mod_dir_t; + qboolean progs_found, pak_found; + char dir_string[MAX_OSPATH], mod_dir_string[MAX_OSPATH]; + int i; + + i = COM_CheckParm ("-basedir"); + if (i && i < com_argc-1) + sprintf (dir_string, "%s/", com_argv[i+1]); + else + sprintf (dir_string, "%s/", host_parms.basedir); + + dir_p = opendir(dir_string); + if (dir_p == NULL) + return; + + while ((dir_t = readdir(dir_p)) != NULL) + { + if ((strcmp(dir_t->d_name, ".") == 0) || (strcmp(dir_t->d_name, "..") == 0)) + continue; + + sprintf(mod_dir_string, "%s%s/", dir_string, dir_t->d_name); + mod_dir_p = opendir(mod_dir_string); + + if (mod_dir_p == NULL) + continue; + + progs_found = false; + pak_found = false; + + // find progs.dat and pak file(s) + while ((mod_dir_t = readdir(mod_dir_p)) != NULL) + { + if ((strcmp(mod_dir_t->d_name, ".") == 0) || (strcmp(mod_dir_t->d_name, "..") == 0)) + continue; + + if (Q_strcasecmp(mod_dir_t->d_name, "progs.dat") != -1) + progs_found = true; + + if (strstr(mod_dir_t->d_name, ".pak") || strstr(mod_dir_t->d_name, ".PAK")) + pak_found = true; + + if (progs_found || pak_found) + break; + } + closedir(mod_dir_p); + + if (!progs_found && !pak_found) + continue; + + Modlist_Add(dir_t->d_name); + } + + closedir(dir_p); +} + +/* +================== +Host_Mods_f -- johnfitz + +list all potential mod directories (contain either a pak file or a progs.dat) +================== +*/ +void Host_Mods_f (void) +{ + int i; + mod_t *mod; + + for (mod = modlist, i=0; mod; mod = mod->next, i++) + Con_SafePrintf (" %s\n", mod->name); + + if (i) + Con_SafePrintf ("%i mod(s)\n", i); + else + Con_SafePrintf ("no mods found\n"); +} + +//============================================================================== + +/* +============= +Host_Mapname_f -- johnfitz +============= +*/ +void Host_Mapname_f (void) +{ + char name[MAX_QPATH]; + + if (sv.active) + { + COM_StripExtension (sv.worldmodel->name + 5, name); + Con_Printf ("\"mapname\" is \"%s\"\n", name); + return; + } + + if (cls.state == ca_connected) + { + COM_StripExtension (cl.worldmodel->name + 5, name); + Con_Printf ("\"mapname\" is \"%s\"\n", name); + return; + } + + Con_Printf ("no map loaded\n"); +} + +/* +================== +Host_Status_f +================== +*/ +void Host_Status_f (void) +{ + client_t *client; + int seconds; + int minutes; + int hours = 0; + int j; + void (*print) (char *fmt, ...); + + if (cmd_source == src_command) + { + if (!sv.active) + { + Cmd_ForwardToServer (); + return; + } + print = Con_Printf; + } + else + print = SV_ClientPrintf; + + print ("host: %s\n", Cvar_VariableString ("hostname")); + print ("version: %4.2f\n", VERSION); + if (tcpipAvailable) + print ("tcp/ip: %s\n", my_tcpip_address); + if (ipxAvailable) + print ("ipx: %s\n", my_ipx_address); + print ("map: %s\n", sv.name); + print ("players: %i active (%i max)\n\n", net_activeconnections, svs.maxclients); + for (j=0, client = svs.clients ; jactive) + continue; + seconds = (int)(net_time - client->netconnection->connecttime); + minutes = seconds / 60; + if (minutes) + { + seconds -= (minutes * 60); + hours = minutes / 60; + if (hours) + minutes -= (hours * 60); + } + else + hours = 0; + print ("#%-2u %-16.16s %3i %2i:%02i:%02i\n", j+1, client->name, (int)client->edict->v.frags, hours, minutes, seconds); + print (" %s\n", client->netconnection->address); + } +} + +/* +================== +Host_God_f + +Sets client to godmode +================== +*/ +void Host_God_f (void) +{ + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + + if (pr_global_struct->deathmatch && !host_client->privileged) + return; + + //johnfitz -- allow user to explicitly set god mode to on or off + switch (Cmd_Argc()) + { + case 1: + sv_player->v.flags = (int)sv_player->v.flags ^ FL_GODMODE; + if (!((int)sv_player->v.flags & FL_GODMODE) ) + SV_ClientPrintf ("godmode OFF\n"); + else + SV_ClientPrintf ("godmode ON\n"); + break; + case 2: + if (Q_atof(Cmd_Argv(1))) + { + sv_player->v.flags = (int)sv_player->v.flags | FL_GODMODE; + SV_ClientPrintf ("godmode ON\n"); + } + else + { + sv_player->v.flags = (int)sv_player->v.flags & ~FL_GODMODE; + SV_ClientPrintf ("godmode OFF\n"); + } + break; + default: + Con_Printf("god [value] : toggle god mode. values: 0 = off, 1 = on\n"); + break; + } + //johnfitz +} + +/* +================== +Host_Notarget_f +================== +*/ +void Host_Notarget_f (void) +{ + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + + if (pr_global_struct->deathmatch && !host_client->privileged) + return; + + //johnfitz -- allow user to explicitly set notarget to on or off + switch (Cmd_Argc()) + { + case 1: + sv_player->v.flags = (int)sv_player->v.flags ^ FL_NOTARGET; + if (!((int)sv_player->v.flags & FL_NOTARGET) ) + SV_ClientPrintf ("notarget OFF\n"); + else + SV_ClientPrintf ("notarget ON\n"); + break; + case 2: + if (Q_atof(Cmd_Argv(1))) + { + sv_player->v.flags = (int)sv_player->v.flags | FL_NOTARGET; + SV_ClientPrintf ("notarget ON\n"); + } + else + { + sv_player->v.flags = (int)sv_player->v.flags & ~FL_NOTARGET; + SV_ClientPrintf ("notarget OFF\n"); + } + break; + default: + Con_Printf("notarget [value] : toggle notarget mode. values: 0 = off, 1 = on\n"); + break; + } + //johnfitz +} + +qboolean noclip_anglehack; + +/* +================== +Host_Noclip_f +================== +*/ +void Host_Noclip_f (void) +{ + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + + if (pr_global_struct->deathmatch && !host_client->privileged) + return; + + //johnfitz -- allow user to explicitly set noclip to on or off + switch (Cmd_Argc()) + { + case 1: + if (sv_player->v.movetype != MOVETYPE_NOCLIP) + { + noclip_anglehack = true; + sv_player->v.movetype = MOVETYPE_NOCLIP; + SV_ClientPrintf ("noclip ON\n"); + } + else + { + noclip_anglehack = false; + sv_player->v.movetype = MOVETYPE_WALK; + SV_ClientPrintf ("noclip OFF\n"); + } + break; + case 2: + if (Q_atof(Cmd_Argv(1))) + { + noclip_anglehack = true; + sv_player->v.movetype = MOVETYPE_NOCLIP; + SV_ClientPrintf ("noclip ON\n"); + } + else + { + noclip_anglehack = false; + sv_player->v.movetype = MOVETYPE_WALK; + SV_ClientPrintf ("noclip OFF\n"); + } + break; + default: + Con_Printf("noclip [value] : toggle noclip mode. values: 0 = off, 1 = on\n"); + break; + } + //johnfitz +} + +/* +================== +Host_Fly_f + +Sets client to flymode +================== +*/ +void Host_Fly_f (void) +{ + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + + if (pr_global_struct->deathmatch && !host_client->privileged) + return; + + //johnfitz -- allow user to explicitly set noclip to on or off + switch (Cmd_Argc()) + { + case 1: + if (sv_player->v.movetype != MOVETYPE_FLY) + { + sv_player->v.movetype = MOVETYPE_FLY; + SV_ClientPrintf ("flymode ON\n"); + } + else + { + sv_player->v.movetype = MOVETYPE_WALK; + SV_ClientPrintf ("flymode OFF\n"); + } + break; + case 2: + if (Q_atof(Cmd_Argv(1))) + { + sv_player->v.movetype = MOVETYPE_FLY; + SV_ClientPrintf ("flymode ON\n"); + } + else + { + sv_player->v.movetype = MOVETYPE_WALK; + SV_ClientPrintf ("flymode OFF\n"); + } + break; + default: + Con_Printf("fly [value] : toggle fly mode. values: 0 = off, 1 = on\n"); + break; + } + //johnfitz +} + + +/* +================== +Host_Ping_f + +================== +*/ +void Host_Ping_f (void) +{ + int i, j; + float total; + client_t *client; + + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + + SV_ClientPrintf ("Client ping times:\n"); + for (i=0, client = svs.clients ; iactive) + continue; + total = 0; + for (j=0 ; jping_times[j]; + total /= NUM_PING_TIMES; + SV_ClientPrintf ("%4i %s\n", (int)(total*1000), client->name); + } +} + +/* +=============================================================================== + +SERVER TRANSITIONS + +=============================================================================== +*/ + + +/* +====================== +Host_Map_f + +handle a +map +command from the console. Active clients are kicked off. +====================== +*/ +void Host_Map_f (void) +{ + int i; + char name[MAX_QPATH]; + + if (cmd_source != src_command) + return; + + cls.demonum = -1; // stop demo loop in case this fails + + CL_Disconnect (); + Host_ShutdownServer(false); + + IN_Activate(); + key_dest = key_game; // remove console or menu + SCR_BeginLoadingPlaque (); + + cls.mapstring[0] = 0; + for (i=0 ; i : continue game on a new level\n"); + return; + } + if (!sv.active || cls.demoplayback) + { + Con_Printf ("Only the server may changelevel\n"); + return; + } + + //johnfitz -- check for client having map before anything else + sprintf (level, "maps/%s.bsp", Cmd_Argv(1)); + if (COM_OpenFile (level, &i) == -1) + Host_Error ("cannot find map %s", level); + //johnfitz + + SV_SaveSpawnparms (); + strcpy (level, Cmd_Argv(1)); + SV_SpawnServer (level); +} + +/* +================== +Host_Restart_f + +Restarts the current server for a dead player +================== +*/ +void Host_Restart_f (void) +{ + char mapname[MAX_QPATH]; + + if (cls.demoplayback || !sv.active) + return; + + if (cmd_source != src_command) + return; + strcpy (mapname, sv.name); // must copy out, because it gets cleared + // in sv_spawnserver + SV_SpawnServer (mapname); +} + +/* +================== +Host_Reconnect_f + +This command causes the client to wait for the signon messages again. +This is sent just before a server changes levels +================== +*/ +void Host_Reconnect_f (void) +{ + SCR_BeginLoadingPlaque (); + cls.signon = 0; // need new connection messages +} + +/* +===================== +Host_Connect_f + +User command to connect to server +===================== +*/ +void Host_Connect_f (void) +{ + char name[MAX_QPATH]; + + cls.demonum = -1; // stop demo loop in case this fails + if (cls.demoplayback) + { + CL_StopPlayback (); + CL_Disconnect (); + } + strcpy (name, Cmd_Argv(1)); + CL_EstablishConnection (name); + Host_Reconnect_f (); +} + + +/* +=============================================================================== + +LOAD / SAVE GAME + +=============================================================================== +*/ + +#define SAVEGAME_VERSION 5 + +/* +=============== +Host_SavegameComment + +Writes a SAVEGAME_COMMENT_LENGTH character comment describing the current +=============== +*/ +void Host_SavegameComment (char *text) +{ + int i; + char kills[20]; + + for (i=0 ; i : save a game\n"); + return; + } + + if (strstr(Cmd_Argv(1), "..")) + { + Con_Printf ("Relative pathnames are not allowed.\n"); + return; + } + + for (i=0 ; iv.health <= 0) ) + { + Con_Printf ("Can't savegame with a dead player\n"); + return; + } + } + + sprintf (name, "%s/%s", com_gamedir, Cmd_Argv(1)); + COM_DefaultExtension (name, ".sav"); + + Con_Printf ("Saving game to %s...\n", name); + f = fopen (name, "w"); + if (!f) + { + Con_Printf ("ERROR: couldn't open.\n"); + return; + } + + fprintf (f, "%i\n", SAVEGAME_VERSION); + Host_SavegameComment (comment); + fprintf (f, "%s\n", comment); + for (i=0 ; ispawn_parms[i]); + fprintf (f, "%d\n", current_skill); + fprintf (f, "%s\n", sv.name); + fprintf (f, "%f\n",sv.time); + +// write the light styles + + for (i=0 ; i : load a game\n"); + return; + } + + cls.demonum = -1; // stop demo loop in case this fails + + sprintf (name, "%s/%s", com_gamedir, Cmd_Argv(1)); + COM_DefaultExtension (name, ".sav"); + +// we can't call SCR_BeginLoadingPlaque, because too much stack space has +// been used. The menu calls it before stuffing loadgame command +// SCR_BeginLoadingPlaque (); + + Con_Printf ("Loading game from %s...\n", name); + f = fopen (name, "r"); + if (!f) + { + Con_Printf ("ERROR: couldn't open.\n"); + return; + } + + fscanf (f, "%i\n", &version); + if (version != SAVEGAME_VERSION) + { + fclose (f); + Con_Printf ("Savegame is version %i, not %i\n", version, SAVEGAME_VERSION); + return; + } + fscanf (f, "%s\n", str); + for (i=0 ; iv, 0, progs->entityfields * 4); + ent->free = false; + ED_ParseEdict (start, ent); + + // link it into the bsp tree + if (!ent->free) + SV_LinkEdict (ent, false); + } + + entnum++; + } + + sv.num_edicts = entnum; + sv.time = time; + + fclose (f); + + for (i=0 ; ispawn_parms[i] = spawn_parms[i]; + + if (cls.state != ca_dedicated) + { + CL_EstablishConnection ("local"); + Host_Reconnect_f (); + } +} + +//============================================================================ + +/* +====================== +Host_Name_f +====================== +*/ +void Host_Name_f (void) +{ + char *newName; + + if (Cmd_Argc () == 1) + { + Con_Printf ("\"name\" is \"%s\"\n", cl_name.string); + return; + } + if (Cmd_Argc () == 2) + newName = Cmd_Argv(1); + else + newName = Cmd_Args(); + newName[15] = 0; + + if (cmd_source == src_command) + { + if (Q_strcmp(cl_name.string, newName) == 0) + return; + Cvar_Set ("_cl_name", newName); + if (cls.state == ca_connected) + Cmd_ForwardToServer (); + return; + } + + if (host_client->name[0] && strcmp(host_client->name, "unconnected") ) + if (Q_strcmp(host_client->name, newName) != 0) + Con_Printf ("%s renamed to %s\n", host_client->name, newName); + Q_strcpy (host_client->name, newName); + host_client->edict->v.netname = host_client->name - pr_strings; + +// send notification to all clients + + MSG_WriteByte (&sv.reliable_datagram, svc_updatename); + MSG_WriteByte (&sv.reliable_datagram, host_client - svs.clients); + MSG_WriteString (&sv.reliable_datagram, host_client->name); +} + + +void Host_Version_f (void) +{ + Con_Printf ("Quake Version %1.2f\n", VERSION); //johnfitz + Con_Printf ("FitzQuake (SDL port) Version %1.2f\n", FITZQUAKE_VERSION); //johnfitz + Con_Printf ("Exe: "__TIME__" "__DATE__"\n"); +} + +void Host_Say(qboolean teamonly) +{ + client_t *client; + client_t *save; + int j; + char *p; + // removed unsigned keyword -- kristian + char text[64]; + qboolean fromServer = false; + + if (cmd_source == src_command) + { + if (cls.state == ca_dedicated) + { + fromServer = true; + teamonly = false; + } + else + { + Cmd_ForwardToServer (); + return; + } + } + + if (Cmd_Argc () < 2) + return; + + save = host_client; + + p = Cmd_Args(); +// remove quotes if present + if (*p == '"') + { + p++; + p[Q_strlen(p)-1] = 0; + } + +// turn on color set 1 + if (!fromServer) + sprintf (text, "%c%s: ", 1, save->name); + else + sprintf (text, "%c<%s> ", 1, hostname.string); + + j = sizeof(text) - 2 - Q_strlen(text); // -2 for /n and null terminator + if (Q_strlen(p) > j) + p[j] = 0; + + strcat (text, p); + strcat (text, "\n"); + + for (j = 0, client = svs.clients; j < svs.maxclients; j++, client++) + { + if (!client || !client->active || !client->spawned) + continue; + if (teamplay.value && teamonly && client->edict->v.team != save->edict->v.team) + continue; + host_client = client; + SV_ClientPrintf("%s", text); + } + host_client = save; + + Sys_Printf("%s", &text[1]); +} + + +void Host_Say_f(void) +{ + Host_Say(false); +} + + +void Host_Say_Team_f(void) +{ + Host_Say(true); +} + + +void Host_Tell_f(void) +{ + client_t *client; + client_t *save; + int j; + char *p; + char text[64]; + + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + + if (Cmd_Argc () < 3) + return; + + Q_strcpy(text, host_client->name); + Q_strcat(text, ": "); + + p = Cmd_Args(); + +// remove quotes if present + if (*p == '"') + { + p++; + p[Q_strlen(p)-1] = 0; + } + +// check length & truncate if necessary + j = sizeof(text) - 2 - Q_strlen(text); // -2 for /n and null terminator + if (Q_strlen(p) > j) + p[j] = 0; + + strcat (text, p); + strcat (text, "\n"); + + save = host_client; + for (j = 0, client = svs.clients; j < svs.maxclients; j++, client++) + { + if (!client->active || !client->spawned) + continue; + if (Q_strcasecmp(client->name, Cmd_Argv(1))) + continue; + host_client = client; + SV_ClientPrintf("%s", text); + break; + } + host_client = save; +} + + +/* +================== +Host_Color_f +================== +*/ +void Host_Color_f(void) +{ + int top, bottom; + int playercolor; + + if (Cmd_Argc() == 1) + { + Con_Printf ("\"color\" is \"%i %i\"\n", ((int)cl_color.value) >> 4, ((int)cl_color.value) & 0x0f); + Con_Printf ("color <0-13> [0-13]\n"); + return; + } + + if (Cmd_Argc() == 2) + top = bottom = atoi(Cmd_Argv(1)); + else + { + top = atoi(Cmd_Argv(1)); + bottom = atoi(Cmd_Argv(2)); + } + + top &= 15; + if (top > 13) + top = 13; + bottom &= 15; + if (bottom > 13) + bottom = 13; + + playercolor = top*16 + bottom; + + if (cmd_source == src_command) + { + Cvar_SetValue ("_cl_color", playercolor); + if (cls.state == ca_connected) + Cmd_ForwardToServer (); + return; + } + + host_client->colors = playercolor; + host_client->edict->v.team = bottom + 1; + +// send notification to all clients + MSG_WriteByte (&sv.reliable_datagram, svc_updatecolors); + MSG_WriteByte (&sv.reliable_datagram, host_client - svs.clients); + MSG_WriteByte (&sv.reliable_datagram, host_client->colors); +} + +/* +================== +Host_Kill_f +================== +*/ +void Host_Kill_f (void) +{ + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + + if (sv_player->v.health <= 0) + { + SV_ClientPrintf ("Can't suicide -- allready dead!\n"); + return; + } + + pr_global_struct->time = sv.time; + pr_global_struct->self = EDICT_TO_PROG(sv_player); + PR_ExecuteProgram (pr_global_struct->ClientKill); +} + + +/* +================== +Host_Pause_f +================== +*/ +void Host_Pause_f (void) +{ + + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + if (!pausable.value) + SV_ClientPrintf ("Pause not allowed.\n"); + else + { + sv.paused ^= 1; + + if (sv.paused) + { + SV_BroadcastPrintf ("%s paused the game\n", pr_strings + sv_player->v.netname); + } + else + { + SV_BroadcastPrintf ("%s unpaused the game\n",pr_strings + sv_player->v.netname); + } + + // send notification to all clients + MSG_WriteByte (&sv.reliable_datagram, svc_setpause); + MSG_WriteByte (&sv.reliable_datagram, sv.paused); + } +} + +//=========================================================================== + + +/* +================== +Host_PreSpawn_f +================== +*/ +void Host_PreSpawn_f (void) +{ + if (cmd_source == src_command) + { + Con_Printf ("prespawn is not valid from the console\n"); + return; + } + + if (host_client->spawned) + { + Con_Printf ("prespawn not valid -- allready spawned\n"); + return; + } + + SZ_Write (&host_client->message, sv.signon.data, sv.signon.cursize); + MSG_WriteByte (&host_client->message, svc_signonnum); + MSG_WriteByte (&host_client->message, 2); + host_client->sendsignon = true; +} + +/* +================== +Host_Spawn_f +================== +*/ +void Host_Spawn_f (void) +{ + int i; + client_t *client; + edict_t *ent; + + if (cmd_source == src_command) + { + Con_Printf ("spawn is not valid from the console\n"); + return; + } + + if (host_client->spawned) + { + Con_Printf ("Spawn not valid -- allready spawned\n"); + return; + } + +// run the entrance script + if (sv.loadgame) + { // loaded games are fully inited allready + // if this is the last client to be connected, unpause + sv.paused = false; + } + else + { + // set up the edict + ent = host_client->edict; + + memset (&ent->v, 0, progs->entityfields * 4); + ent->v.colormap = NUM_FOR_EDICT(ent); + ent->v.team = (host_client->colors & 15) + 1; + ent->v.netname = host_client->name - pr_strings; + + // copy spawn parms out of the client_t + + for (i=0 ; i< NUM_SPAWN_PARMS ; i++) + (&pr_global_struct->parm1)[i] = host_client->spawn_parms[i]; + + // call the spawn function + + pr_global_struct->time = sv.time; + pr_global_struct->self = EDICT_TO_PROG(sv_player); + PR_ExecuteProgram (pr_global_struct->ClientConnect); + + if ((Sys_FloatTime() - host_client->netconnection->connecttime) <= sv.time) + Sys_Printf ("%s entered the game\n", host_client->name); + + PR_ExecuteProgram (pr_global_struct->PutClientInServer); + } + + +// send all current names, colors, and frag counts + SZ_Clear (&host_client->message); + +// send time of update + MSG_WriteByte (&host_client->message, svc_time); + MSG_WriteFloat (&host_client->message, sv.time); + + for (i=0, client = svs.clients ; imessage, svc_updatename); + MSG_WriteByte (&host_client->message, i); + MSG_WriteString (&host_client->message, client->name); + MSG_WriteByte (&host_client->message, svc_updatefrags); + MSG_WriteByte (&host_client->message, i); + MSG_WriteShort (&host_client->message, client->old_frags); + MSG_WriteByte (&host_client->message, svc_updatecolors); + MSG_WriteByte (&host_client->message, i); + MSG_WriteByte (&host_client->message, client->colors); + } + +// send all current light styles + for (i=0 ; imessage, svc_lightstyle); + MSG_WriteByte (&host_client->message, (char)i); + MSG_WriteString (&host_client->message, sv.lightstyles[i]); + } + +// +// send some stats +// + MSG_WriteByte (&host_client->message, svc_updatestat); + MSG_WriteByte (&host_client->message, STAT_TOTALSECRETS); + MSG_WriteLong (&host_client->message, pr_global_struct->total_secrets); + + MSG_WriteByte (&host_client->message, svc_updatestat); + MSG_WriteByte (&host_client->message, STAT_TOTALMONSTERS); + MSG_WriteLong (&host_client->message, pr_global_struct->total_monsters); + + MSG_WriteByte (&host_client->message, svc_updatestat); + MSG_WriteByte (&host_client->message, STAT_SECRETS); + MSG_WriteLong (&host_client->message, pr_global_struct->found_secrets); + + MSG_WriteByte (&host_client->message, svc_updatestat); + MSG_WriteByte (&host_client->message, STAT_MONSTERS); + MSG_WriteLong (&host_client->message, pr_global_struct->killed_monsters); + + +// +// send a fixangle +// Never send a roll angle, because savegames can catch the server +// in a state where it is expecting the client to correct the angle +// and it won't happen if the game was just loaded, so you wind up +// with a permanent head tilt + ent = EDICT_NUM( 1 + (host_client - svs.clients) ); + MSG_WriteByte (&host_client->message, svc_setangle); + for (i=0 ; i < 2 ; i++) + MSG_WriteAngle (&host_client->message, ent->v.angles[i] ); + MSG_WriteAngle (&host_client->message, 0 ); + + SV_WriteClientdataToMessage (sv_player, &host_client->message); + + MSG_WriteByte (&host_client->message, svc_signonnum); + MSG_WriteByte (&host_client->message, 3); + host_client->sendsignon = true; +} + +/* +================== +Host_Begin_f +================== +*/ +void Host_Begin_f (void) +{ + if (cmd_source == src_command) + { + Con_Printf ("begin is not valid from the console\n"); + return; + } + + host_client->spawned = true; +} + +//=========================================================================== + + +/* +================== +Host_Kick_f + +Kicks a user off of the server +================== +*/ +void Host_Kick_f (void) +{ + char *who; + char *message = NULL; + client_t *save; + int i; + qboolean byNumber = false; + + if (cmd_source == src_command) + { + if (!sv.active) + { + Cmd_ForwardToServer (); + return; + } + } + else if (pr_global_struct->deathmatch && !host_client->privileged) + return; + + save = host_client; + + if (Cmd_Argc() > 2 && Q_strcmp(Cmd_Argv(1), "#") == 0) + { + i = Q_atof(Cmd_Argv(2)) - 1; + if (i < 0 || i >= svs.maxclients) + return; + if (!svs.clients[i].active) + return; + host_client = &svs.clients[i]; + byNumber = true; + } + else + { + for (i = 0, host_client = svs.clients; i < svs.maxclients; i++, host_client++) + { + if (!host_client->active) + continue; + if (Q_strcasecmp(host_client->name, Cmd_Argv(1)) == 0) + break; + } + } + + if (i < svs.maxclients) + { + if (cmd_source == src_command) + if (cls.state == ca_dedicated) + who = "Console"; + else + who = cl_name.string; + else + who = save->name; + + // can't kick yourself! + if (host_client == save) + return; + + if (Cmd_Argc() > 2) + { + message = COM_Parse(Cmd_Args()); + if (byNumber) + { + message++; // skip the # + while (*message == ' ') // skip white space + message++; + message += Q_strlen(Cmd_Argv(2)); // skip the number + } + while (*message && *message == ' ') + message++; + } + if (message) + SV_ClientPrintf ("Kicked by %s: %s\n", who, message); + else + SV_ClientPrintf ("Kicked by %s\n", who); + SV_DropClient (false); + } + + host_client = save; +} + +/* +=============================================================================== + +DEBUGGING TOOLS + +=============================================================================== +*/ + +/* +================== +Host_Give_f +================== +*/ +void Host_Give_f (void) +{ + char *t; + int v; + eval_t *val; + + if (cmd_source == src_command) + { + Cmd_ForwardToServer (); + return; + } + + if (pr_global_struct->deathmatch && !host_client->privileged) + return; + + t = Cmd_Argv(1); + v = atoi (Cmd_Argv(2)); + + switch (t[0]) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + // MED 01/04/97 added hipnotic give stuff + if (hipnotic) + { + if (t[0] == '6') + { + if (t[1] == 'a') + sv_player->v.items = (int)sv_player->v.items | HIT_PROXIMITY_GUN; + else + sv_player->v.items = (int)sv_player->v.items | IT_GRENADE_LAUNCHER; + } + else if (t[0] == '9') + sv_player->v.items = (int)sv_player->v.items | HIT_LASER_CANNON; + else if (t[0] == '0') + sv_player->v.items = (int)sv_player->v.items | HIT_MJOLNIR; + else if (t[0] >= '2') + sv_player->v.items = (int)sv_player->v.items | (IT_SHOTGUN << (t[0] - '2')); + } + else + { + if (t[0] >= '2') + sv_player->v.items = (int)sv_player->v.items | (IT_SHOTGUN << (t[0] - '2')); + } + break; + + case 's': + if (rogue) + { + val = GetEdictFieldValue(sv_player, "ammo_shells1"); + if (val) + val->_float = v; + } + + sv_player->v.ammo_shells = v; + break; + case 'n': + if (rogue) + { + val = GetEdictFieldValue(sv_player, "ammo_nails1"); + if (val) + { + val->_float = v; + if (sv_player->v.weapon <= IT_LIGHTNING) + sv_player->v.ammo_nails = v; + } + } + else + { + sv_player->v.ammo_nails = v; + } + break; + case 'l': + if (rogue) + { + val = GetEdictFieldValue(sv_player, "ammo_lava_nails"); + if (val) + { + val->_float = v; + if (sv_player->v.weapon > IT_LIGHTNING) + sv_player->v.ammo_nails = v; + } + } + break; + case 'r': + if (rogue) + { + val = GetEdictFieldValue(sv_player, "ammo_rockets1"); + if (val) + { + val->_float = v; + if (sv_player->v.weapon <= IT_LIGHTNING) + sv_player->v.ammo_rockets = v; + } + } + else + { + sv_player->v.ammo_rockets = v; + } + break; + case 'm': + if (rogue) + { + val = GetEdictFieldValue(sv_player, "ammo_multi_rockets"); + if (val) + { + val->_float = v; + if (sv_player->v.weapon > IT_LIGHTNING) + sv_player->v.ammo_rockets = v; + } + } + break; + case 'h': + sv_player->v.health = v; + break; + case 'c': + if (rogue) + { + val = GetEdictFieldValue(sv_player, "ammo_cells1"); + if (val) + { + val->_float = v; + if (sv_player->v.weapon <= IT_LIGHTNING) + sv_player->v.ammo_cells = v; + } + } + else + { + sv_player->v.ammo_cells = v; + } + break; + case 'p': + if (rogue) + { + val = GetEdictFieldValue(sv_player, "ammo_plasma"); + if (val) + { + val->_float = v; + if (sv_player->v.weapon > IT_LIGHTNING) + sv_player->v.ammo_cells = v; + } + } + break; + //johnfitz -- give armour + case 'a': + if (v > 150) + { + sv_player->v.armortype = 0.8; + sv_player->v.armorvalue = v; + sv_player->v.items = sv_player->v.items - ((int)(sv_player->v.items) & (int)(IT_ARMOR1 | IT_ARMOR2 | IT_ARMOR3)) + IT_ARMOR3; + } + else if (v > 100) + { + sv_player->v.armortype = 0.6; + sv_player->v.armorvalue = v; + sv_player->v.items = sv_player->v.items - ((int)(sv_player->v.items) & (int)(IT_ARMOR1 | IT_ARMOR2 | IT_ARMOR3)) + IT_ARMOR2; + } + else if (v >= 0) + { + sv_player->v.armortype = 0.3; + sv_player->v.armorvalue = v; + sv_player->v.items = sv_player->v.items - ((int)(sv_player->v.items) & (int)(IT_ARMOR1 | IT_ARMOR2 | IT_ARMOR3)) + IT_ARMOR1; + } + break; + //johnfitz + } + + //johnfitz -- update currentammo to match new ammo (so statusbar updates correctly) + switch ((int)(sv_player->v.weapon)) + { + case IT_SHOTGUN: + case IT_SUPER_SHOTGUN: + sv_player->v.currentammo = sv_player->v.ammo_shells; + break; + case IT_NAILGUN: + case IT_SUPER_NAILGUN: + case RIT_LAVA_SUPER_NAILGUN: + sv_player->v.currentammo = sv_player->v.ammo_nails; + break; + case IT_GRENADE_LAUNCHER: + case IT_ROCKET_LAUNCHER: + case RIT_MULTI_GRENADE: + case RIT_MULTI_ROCKET: + sv_player->v.currentammo = sv_player->v.ammo_rockets; + break; + case IT_LIGHTNING: + case HIT_LASER_CANNON: + case HIT_MJOLNIR: + sv_player->v.currentammo = sv_player->v.ammo_cells; + break; + case RIT_LAVA_NAILGUN: //same as IT_AXE + if (rogue) + sv_player->v.currentammo = sv_player->v.ammo_nails; + break; + case RIT_PLASMA_GUN: //same as HIT_PROXIMITY_GUN + if (rogue) + sv_player->v.currentammo = sv_player->v.ammo_cells; + if (hipnotic) + sv_player->v.currentammo = sv_player->v.ammo_rockets; + break; + } + //johnfitz +} + +edict_t *FindViewthing (void) +{ + int i; + edict_t *e; + + for (i=0 ; iv.classname, "viewthing") ) + return e; + } + Con_Printf ("No viewthing on map\n"); + return NULL; +} + +/* +================== +Host_Viewmodel_f +================== +*/ +void Host_Viewmodel_f (void) +{ + edict_t *e; + model_t *m; + + e = FindViewthing (); + if (!e) + return; + + m = Mod_ForName (Cmd_Argv(1), false); + if (!m) + { + Con_Printf ("Can't load %s\n", Cmd_Argv(1)); + return; + } + + e->v.frame = 0; + cl.model_precache[(int)e->v.modelindex] = m; +} + +/* +================== +Host_Viewframe_f +================== +*/ +void Host_Viewframe_f (void) +{ + edict_t *e; + int f; + model_t *m; + + e = FindViewthing (); + if (!e) + return; + m = cl.model_precache[(int)e->v.modelindex]; + + f = atoi(Cmd_Argv(1)); + if (f >= m->numframes) + f = m->numframes-1; + + e->v.frame = f; +} + + +void PrintFrameName (model_t *m, int frame) +{ + aliashdr_t *hdr; + maliasframedesc_t *pframedesc; + + hdr = (aliashdr_t *)Mod_Extradata (m); + if (!hdr) + return; + pframedesc = &hdr->frames[frame]; + + Con_Printf ("frame %i: %s\n", frame, pframedesc->name); +} + +/* +================== +Host_Viewnext_f +================== +*/ +void Host_Viewnext_f (void) +{ + edict_t *e; + model_t *m; + + e = FindViewthing (); + if (!e) + return; + m = cl.model_precache[(int)e->v.modelindex]; + + e->v.frame = e->v.frame + 1; + if (e->v.frame >= m->numframes) + e->v.frame = m->numframes - 1; + + PrintFrameName (m, e->v.frame); +} + +/* +================== +Host_Viewprev_f +================== +*/ +void Host_Viewprev_f (void) +{ + edict_t *e; + model_t *m; + + e = FindViewthing (); + if (!e) + return; + + m = cl.model_precache[(int)e->v.modelindex]; + + e->v.frame = e->v.frame - 1; + if (e->v.frame < 0) + e->v.frame = 0; + + PrintFrameName (m, e->v.frame); +} + +/* +=============================================================================== + +DEMO LOOP CONTROL + +=============================================================================== +*/ + + +/* +================== +Host_Startdemos_f +================== +*/ +void Host_Startdemos_f (void) +{ + int i, c; + + if (cls.state == ca_dedicated) + { + if (!sv.active) + Cbuf_AddText ("map start\n"); + return; + } + + c = Cmd_Argc() - 1; + if (c > MAX_DEMOS) + { + Con_Printf ("Max %i demos in demoloop\n", MAX_DEMOS); + c = MAX_DEMOS; + } + Con_Printf ("%i demo(s) in loop\n", c); + + for (i=1 ; i>8; + header[14] = height&255; + header[15] = height>>8; + header[16] = bpp; // pixel size + if (upsidedown) + header[17] = 0x20; //upside-down attribute + + // swap red and blue bytes + bytes = bpp/8; + size = width*height*bytes; + for (i=0; i=0; row--) + { + //johnfitz -- fix for upside-down targas + realrow = upside_down ? row : rows - 1 - row; + pixbuf = targa_rgba + realrow*columns*4; + //johnfitz + for(column=0; column=0; row--) + { + //johnfitz -- fix for upside-down targas + realrow = upside_down ? row : rows - 1 - row; + pixbuf = targa_rgba + realrow*columns*4; + //johnfitz + for(column=0; column0) + row--; + else + goto breakOut; + //johnfitz -- fix for upside-down targas + realrow = upside_down ? row : rows - 1 - row; + pixbuf = targa_rgba + realrow*columns*4; + //johnfitz + } + } + } + else // non run-length packet + { + for(j=0;j0) + row--; + else + goto breakOut; + //johnfitz -- fix for upside-down targas + realrow = upside_down ? row : rows - 1 - row; + pixbuf = targa_rgba + realrow*columns*4; + //johnfitz + } + } + } + } + breakOut:; + } + } + + fclose(fin); + + *width = (int)(targa_header.width); + *height = (int)(targa_header.height); + return targa_rgba; +} + +//============================================================================== +// +// PCX +// +//============================================================================== + +typedef struct +{ + char signature; + char version; + char encoding; + char bits_per_pixel; + unsigned short xmin,ymin,xmax,ymax; + unsigned short hdpi,vdpi; + byte colortable[48]; + char reserved; + char color_planes; + unsigned short bytes_per_line; + unsigned short palette_type; + char filler[58]; +} pcxheader_t; + +/* +============ +Image_LoadPCX +============ +*/ +byte *Image_LoadPCX (FILE *f, int *width, int *height) +{ + pcxheader_t pcx; + int x, y, w, h, readbyte, runlength, start; + byte *p, *data; + byte palette[768]; + + start = ftell (f); //save start of file (since we might be inside a pak file, SEEK_SET might not be the start of the pcx) + + fread(&pcx, sizeof(pcx), 1, f); + pcx.xmin = (unsigned short)LittleShort (pcx.xmin); + pcx.ymin = (unsigned short)LittleShort (pcx.ymin); + pcx.xmax = (unsigned short)LittleShort (pcx.xmax); + pcx.ymax = (unsigned short)LittleShort (pcx.ymax); + pcx.bytes_per_line = (unsigned short)LittleShort (pcx.bytes_per_line); + + if (pcx.signature != 0x0A) + Sys_Error ("'%s' is not a valid PCX file", loadfilename); + + if (pcx.version != 5) + Sys_Error ("'%s' is version %i, should be 5", loadfilename, pcx.version); + + if (pcx.encoding != 1 || pcx.bits_per_pixel != 8 || pcx.color_planes != 1) + Sys_Error ("'%s' has wrong encoding or bit depth", loadfilename); + + w = pcx.xmax - pcx.xmin + 1; + h = pcx.ymax - pcx.ymin + 1; + + data = Hunk_Alloc((w*h+1)*4); //+1 to allow reading padding byte on last line + + //load palette + fseek (f, start + com_filesize - 768, SEEK_SET); + fread (palette, 1, 768, f); + + //back to start of image data + fseek (f, start + sizeof(pcx), SEEK_SET); + + for (y=0; y= 0xC0) + { + runlength = readbyte & 0x3F; + readbyte = fgetc(f); + } + else + runlength = 1; + + while(runlength--) + { + p[0] = palette[readbyte*3]; + p[1] = palette[readbyte*3+1]; + p[2] = palette[readbyte*3+2]; + p[3] = 255; + p += 4; + x++; + } + } + } + + fclose(f); + + *width = w; + *height = h; + return data; +} diff --git a/quakespasm/Quake/image.h b/quakespasm/Quake/image.h new file mode 100644 index 00000000..9d41f4aa --- /dev/null +++ b/quakespasm/Quake/image.h @@ -0,0 +1,28 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +//image.h -- image reading / writing + +//be sure to free the hunk after using these loading functions +byte *Image_LoadTGA (FILE *f, int *width, int *height); +byte *Image_LoadPCX (FILE *f, int *width, int *height); +byte *Image_LoadImage (char *name, int *width, int *height); + +qboolean Image_WriteTGA (char *name, byte *data, int width, int height, int bpp, qboolean upsidedown); diff --git a/quakespasm/Quake/in_sdl.c b/quakespasm/Quake/in_sdl.c new file mode 100644 index 00000000..b16cdedd --- /dev/null +++ b/quakespasm/Quake/in_sdl.c @@ -0,0 +1,168 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" + +// mouse variables +cvar_t m_filter = {"m_filter","0"}; + +// total accumulated mouse movement since last frame +// this gets updated from the main game loop via IN_MouseMove +int total_dx, total_dy = 0; + +int FilterMouseEvents (const SDL_Event *event) +{ + switch (event->type) { + case SDL_MOUSEMOTION: + case SDL_MOUSEBUTTONDOWN: + case SDL_MOUSEBUTTONUP: + return 0; + } + + return 1; +} + +void IN_Activate (void) +{ + if (SDL_WM_GrabInput(SDL_GRAB_QUERY) != SDL_GRAB_ON) + { + SDL_WM_GrabInput(SDL_GRAB_ON); + if (SDL_WM_GrabInput(SDL_GRAB_QUERY) != SDL_GRAB_ON) + Con_Printf("WARNING: SDL_WM_GrabInput(SDL_GRAB_ON) failed.\n"); + } + + if (SDL_ShowCursor(SDL_QUERY) != SDL_DISABLE) + { + SDL_ShowCursor(SDL_DISABLE); + if (SDL_ShowCursor(SDL_QUERY) != SDL_DISABLE) + Con_Printf("WARNING: SDL_ShowCursor(SDL_DISABLE) failed.\n"); + } + + if (SDL_GetEventFilter() != NULL) + SDL_SetEventFilter(NULL); + + total_dx = 0; + total_dy = 0; +} + +void IN_Deactivate (qboolean free_cursor) +{ + if (free_cursor) + { + if (SDL_WM_GrabInput(SDL_GRAB_QUERY) != SDL_GRAB_OFF) + { + SDL_WM_GrabInput(SDL_GRAB_OFF); + if (SDL_WM_GrabInput(SDL_GRAB_QUERY) != SDL_GRAB_OFF) + Con_Printf("WARNING: SDL_WM_GrabInput(SDL_GRAB_OFF) failed.\n"); + } + + if (SDL_ShowCursor(SDL_QUERY) != SDL_ENABLE) + { + SDL_ShowCursor(SDL_ENABLE); + if (SDL_ShowCursor(SDL_QUERY) != SDL_ENABLE) + Con_Printf("WARNING: SDL_ShowCursor(SDL_ENABLE) failed.\n"); + } + } + + // discard all mouse events when input is deactivated + if (SDL_GetEventFilter() != FilterMouseEvents) + SDL_SetEventFilter(FilterMouseEvents); +} + +void IN_Init (void) +{ + BuildKeyMaps(); + + if (SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL) == -1) + Con_Printf("Warning: SDL_EnableKeyRepeat() failed.\n"); + + IN_Activate(); +} + +void IN_Shutdown (void) +{ + IN_Deactivate(true); +} + +void IN_Commands (void) +{ + // TODO: implement this for joystick support +} + +extern cvar_t cl_maxpitch; //johnfitz -- variable pitch clamping +extern cvar_t cl_minpitch; //johnfitz -- variable pitch clamping + + +void IN_MouseMove(int dx, int dy) +{ + total_dx += dx; + total_dy += dy; +} + +void IN_Move (usercmd_t *cmd) +{ + int dmx, dmy; + + /* TODO: fix this + if (m_filter.value) + { + dmx = (2*mx - dmx) * 0.5; + dmy = (2*my - dmy) * 0.5; + } + */ + + dmx = total_dx * sensitivity.value; + dmy = total_dy * sensitivity.value; + + total_dx = 0; + total_dy = 0; + + if ( (in_strafe.state & 1) || (lookstrafe.value && (in_mlook.state & 1) )) + cmd->sidemove += m_side.value * dmx; + else + cl.viewangles[YAW] -= m_yaw.value * dmx; + + if (in_mlook.state & 1) + V_StopPitchDrift (); + + if ( (in_mlook.state & 1) && !(in_strafe.state & 1)) + { + cl.viewangles[PITCH] += m_pitch.value * dmy; + //johnfitz -- variable pitch clamping + if (cl.viewangles[PITCH] > cl_maxpitch.value) + cl.viewangles[PITCH] = cl_maxpitch.value; + if (cl.viewangles[PITCH] < cl_minpitch.value) + cl.viewangles[PITCH] = cl_minpitch.value; + //johnfitz + } + else + { + if ((in_strafe.state & 1) && noclip_anglehack) + cmd->upmove -= m_forward.value * dmy; + else + cmd->forwardmove -= m_forward.value * dmy; + } +} + +void IN_ClearStates (void) +{ +} diff --git a/quakespasm/Quake/input.h b/quakespasm/Quake/input.h new file mode 100644 index 00000000..a834c94c --- /dev/null +++ b/quakespasm/Quake/input.h @@ -0,0 +1,44 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// input.h -- external (non-keyboard) input devices + +void IN_Init (void); + +void IN_Shutdown (void); + +void IN_Commands (void); +// oportunity for devices to stick commands on the script buffer + +// mouse moved by dx and dy pixels +void IN_MouseMove(int dx, int dy); + +void IN_Move (usercmd_t *cmd); +// add additional movement on top of the keyboard move cmd + +void IN_ClearStates (void); +// restores all button and position states to defaults + +// called when the app becomes active +void IN_Activate (); + +// called when the app becomes inactive +void IN_Deactivate (qboolean free_cursor); diff --git a/quakespasm/Quake/keys.c b/quakespasm/Quake/keys.c new file mode 100644 index 00000000..6a946c0e --- /dev/null +++ b/quakespasm/Quake/keys.c @@ -0,0 +1,1141 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" + +/* + +key up events are sent even if in console mode + +*/ + +#define MAXCMDLINE 256 +char key_lines[32][MAXCMDLINE]; +int key_linepos; +int shift_down=false; +int key_lastpress; +int key_insert; //johnfitz -- insert key toggle (for editing) +double key_blinktime; //johnfitz -- fudge cursor blinking to make it easier to spot in certain cases + +int edit_line=0; +int history_line=0; + +keydest_t key_dest; + +int key_count; // incremented every key event + +char *keybindings[256]; +int keyshift[256]; // key to map to if shift held down in console +int key_repeats[256]; // if > 1, it is autorepeating +qboolean consolekeys[256]; // if true, can't be rebound while in console +qboolean menubound[256]; // if true, can't be rebound while in menu +qboolean keydown[256]; + +qboolean repeatkeys[256]; //johnfitz -- if true, autorepeat is enabled for this key + +typedef struct +{ + char *name; + int keynum; +} keyname_t; + +keyname_t keynames[] = +{ + {"TAB", K_TAB}, + {"ENTER", K_ENTER}, + {"ESCAPE", K_ESCAPE}, + {"SPACE", K_SPACE}, + {"BACKSPACE", K_BACKSPACE}, + {"UPARROW", K_UPARROW}, + {"DOWNARROW", K_DOWNARROW}, + {"LEFTARROW", K_LEFTARROW}, + {"RIGHTARROW", K_RIGHTARROW}, + + {"ALT", K_ALT}, + {"CTRL", K_CTRL}, + {"SHIFT", K_SHIFT}, + + //johnfitz -- keypad + {"KP_NUMLOCK", KP_NUMLOCK}, + {"KP_SLASH", KP_SLASH }, + {"KP_STAR", KP_STAR }, + {"KP_MINUS", KP_MINUS }, + {"KP_HOME", KP_HOME }, + {"KP_UPARROW", KP_UPARROW }, + {"KP_PGUP", KP_PGUP }, + {"KP_PLUS", KP_PLUS }, + {"KP_LEFTARROW", KP_LEFTARROW }, + {"KP_5", KP_5 }, + {"KP_RIGHTARROW", KP_RIGHTARROW }, + {"KP_END", KP_END }, + {"KP_DOWNARROW", KP_DOWNARROW }, + {"KP_PGDN", KP_PGDN }, + {"KP_ENTER", KP_ENTER }, + {"KP_INS", KP_INS }, + {"KP_DEL", KP_DEL }, + //johnfitz + + {"F1", K_F1}, + {"F2", K_F2}, + {"F3", K_F3}, + {"F4", K_F4}, + {"F5", K_F5}, + {"F6", K_F6}, + {"F7", K_F7}, + {"F8", K_F8}, + {"F9", K_F9}, + {"F10", K_F10}, + {"F11", K_F11}, + {"F12", K_F12}, + + {"INS", K_INS}, + {"DEL", K_DEL}, + {"PGDN", K_PGDN}, + {"PGUP", K_PGUP}, + {"HOME", K_HOME}, + {"END", K_END}, + + {"MOUSE1", K_MOUSE1}, + {"MOUSE2", K_MOUSE2}, + {"MOUSE3", K_MOUSE3}, + + {"JOY1", K_JOY1}, + {"JOY2", K_JOY2}, + {"JOY3", K_JOY3}, + {"JOY4", K_JOY4}, + + {"AUX1", K_AUX1}, + {"AUX2", K_AUX2}, + {"AUX3", K_AUX3}, + {"AUX4", K_AUX4}, + {"AUX5", K_AUX5}, + {"AUX6", K_AUX6}, + {"AUX7", K_AUX7}, + {"AUX8", K_AUX8}, + {"AUX9", K_AUX9}, + {"AUX10", K_AUX10}, + {"AUX11", K_AUX11}, + {"AUX12", K_AUX12}, + {"AUX13", K_AUX13}, + {"AUX14", K_AUX14}, + {"AUX15", K_AUX15}, + {"AUX16", K_AUX16}, + {"AUX17", K_AUX17}, + {"AUX18", K_AUX18}, + {"AUX19", K_AUX19}, + {"AUX20", K_AUX20}, + {"AUX21", K_AUX21}, + {"AUX22", K_AUX22}, + {"AUX23", K_AUX23}, + {"AUX24", K_AUX24}, + {"AUX25", K_AUX25}, + {"AUX26", K_AUX26}, + {"AUX27", K_AUX27}, + {"AUX28", K_AUX28}, + {"AUX29", K_AUX29}, + {"AUX30", K_AUX30}, + {"AUX31", K_AUX31}, + {"AUX32", K_AUX32}, + + {"PAUSE", K_PAUSE}, + + {"MWHEELUP", K_MWHEELUP}, + {"MWHEELDOWN", K_MWHEELDOWN}, + + {"SEMICOLON", ';'}, // because a raw semicolon seperates commands + + {NULL,0} +}; + + // dedicated before exiting +byte key_map[SDLK_LAST]; + +void BuildKeyMaps() +{ + int i; + + for (i = 0; i < SDLK_LAST; i++) + key_map[i] = 0; + + key_map[SDLK_BACKSPACE] = K_BACKSPACE; + key_map[SDLK_TAB] = K_TAB; + key_map[SDLK_RETURN] = K_ENTER; + key_map[SDLK_PAUSE] = K_PAUSE; + key_map[SDLK_ESCAPE] = K_ESCAPE; + key_map[SDLK_SPACE] = K_SPACE; + key_map[SDLK_EXCLAIM] = '!'; + key_map[SDLK_QUOTEDBL] = '"'; + key_map[SDLK_HASH] = '#'; + key_map[SDLK_DOLLAR] = '$'; + key_map[SDLK_AMPERSAND] = '&'; + key_map[SDLK_QUOTE] = '\''; + key_map[SDLK_LEFTPAREN] = '('; + key_map[SDLK_RIGHTPAREN] = ')'; + key_map[SDLK_ASTERISK] = '*'; + key_map[SDLK_PLUS] = '+'; + key_map[SDLK_COMMA] = ','; + key_map[SDLK_MINUS] = '-'; + key_map[SDLK_PERIOD] = '.'; + key_map[SDLK_SLASH] = '/'; + + key_map[SDLK_0] = '0'; + key_map[SDLK_1] = '1'; + key_map[SDLK_2] = '2'; + key_map[SDLK_3] = '3'; + key_map[SDLK_4] = '4'; + key_map[SDLK_5] = '5'; + key_map[SDLK_6] = '6'; + key_map[SDLK_7] = '7'; + key_map[SDLK_8] = '8'; + key_map[SDLK_9] = '9'; + + key_map[SDLK_COLON] = ':'; + key_map[SDLK_SEMICOLON] = ';'; + key_map[SDLK_LESS] = '<'; + key_map[SDLK_EQUALS] = '='; + key_map[SDLK_GREATER] = '>'; + key_map[SDLK_QUESTION] = '?'; + key_map[SDLK_AT] = '@'; + key_map[SDLK_LEFTBRACKET] = '['; + key_map[SDLK_BACKSLASH] = '\\'; + key_map[SDLK_RIGHTBRACKET] = ']'; + key_map[SDLK_CARET] = '^'; + key_map[SDLK_UNDERSCORE] = '_'; + key_map[SDLK_BACKQUOTE] = '`'; + + key_map[SDLK_a] = 'a'; + key_map[SDLK_b] = 'b'; + key_map[SDLK_c] = 'c'; + key_map[SDLK_d] = 'd'; + key_map[SDLK_e] = 'e'; + key_map[SDLK_f] = 'f'; + key_map[SDLK_g] = 'g'; + key_map[SDLK_h] = 'h'; + key_map[SDLK_i] = 'i'; + key_map[SDLK_j] = 'j'; + key_map[SDLK_k] = 'k'; + key_map[SDLK_l] = 'l'; + key_map[SDLK_m] = 'm'; + key_map[SDLK_n] = 'n'; + key_map[SDLK_o] = 'o'; + key_map[SDLK_p] = 'p'; + key_map[SDLK_q] = 'q'; + key_map[SDLK_r] = 'r'; + key_map[SDLK_s] = 's'; + key_map[SDLK_t] = 't'; + key_map[SDLK_u] = 'u'; + key_map[SDLK_v] = 'v'; + key_map[SDLK_w] = 'w'; + key_map[SDLK_x] = 'x'; + key_map[SDLK_y] = 'y'; + key_map[SDLK_z] = 'z'; + + key_map[SDLK_DELETE] = K_DEL; + + key_map[SDLK_KP0] = KP_INS; + key_map[SDLK_KP1] = KP_END; + key_map[SDLK_KP2] = KP_DOWNARROW; + key_map[SDLK_KP3] = KP_PGDN; + key_map[SDLK_KP4] = KP_LEFTARROW; + key_map[SDLK_KP5] = KP_5; + key_map[SDLK_KP6] = KP_RIGHTARROW; + key_map[SDLK_KP7] = KP_HOME; + key_map[SDLK_KP8] = KP_UPARROW; + key_map[SDLK_KP9] = KP_PGUP; + key_map[SDLK_KP_PERIOD] = KP_DEL; + key_map[SDLK_KP_DIVIDE] = KP_SLASH; + key_map[SDLK_KP_MULTIPLY] = KP_STAR; + key_map[SDLK_KP_MINUS] = KP_MINUS; + key_map[SDLK_KP_PLUS] = KP_PLUS; + key_map[SDLK_KP_ENTER] = KP_ENTER; + key_map[SDLK_KP_EQUALS] = 0; + + key_map[SDLK_UP] = K_UPARROW; + key_map[SDLK_DOWN] = K_DOWNARROW; + key_map[SDLK_RIGHT] = K_RIGHTARROW; + key_map[SDLK_LEFT] = K_LEFTARROW; + key_map[SDLK_INSERT] = K_INS; + key_map[SDLK_HOME] = K_HOME; + key_map[SDLK_END] = K_END; + key_map[SDLK_PAGEUP] = K_PGUP; + key_map[SDLK_PAGEDOWN] = K_PGDN; + + key_map[SDLK_F1] = K_F1; + key_map[SDLK_F2] = K_F2; + key_map[SDLK_F3] = K_F3; + key_map[SDLK_F4] = K_F4; + key_map[SDLK_F5] = K_F5; + key_map[SDLK_F6] = K_F6; + key_map[SDLK_F7] = K_F7; + key_map[SDLK_F8] = K_F8; + key_map[SDLK_F9] = K_F9; + key_map[SDLK_F10] = K_F10; + key_map[SDLK_F11] = K_F11; + key_map[SDLK_F12] = K_F12; + key_map[SDLK_F13] = 0; + key_map[SDLK_F14] = 0; + key_map[SDLK_F15] = 0; + + key_map[SDLK_NUMLOCK] = KP_NUMLOCK; + key_map[SDLK_CAPSLOCK] = 0; + key_map[SDLK_SCROLLOCK] = 0; + key_map[SDLK_RSHIFT] = K_SHIFT; + key_map[SDLK_LSHIFT] = K_SHIFT; + key_map[SDLK_RCTRL] = K_CTRL; + key_map[SDLK_LCTRL] = K_CTRL; + key_map[SDLK_RALT] = K_ALT; + key_map[SDLK_LALT] = K_ALT; + key_map[SDLK_RMETA] = 0; + key_map[SDLK_LMETA] = 0; + key_map[SDLK_LSUPER] = 0; + key_map[SDLK_RSUPER] = 0; + key_map[SDLK_MODE] = 0; + key_map[SDLK_COMPOSE] = 0; + key_map[SDLK_HELP] = 0; + key_map[SDLK_PRINT] = 0; + key_map[SDLK_SYSREQ] = 0; + key_map[SDLK_BREAK] = 0; + key_map[SDLK_MENU] = 0; + key_map[SDLK_POWER] = 0; + key_map[SDLK_EURO] = 0; + key_map[SDLK_UNDO] = 0; +} + +/* +======= +MapKey + +Map from SDL to quake keynums +======= +*/ +int Key_Map (SDL_KeyboardEvent *event) +{ + return key_map[(*event).keysym.sym]; + + /* TODO: keypad handling + if (cl_keypad.value) { + if (extended) { + switch (key) { + case K_ENTER: return KP_ENTER; + case '/': return KP_SLASH; + case K_PAUSE: return KP_NUMLOCK; + }; + } else { + switch (key) { + case K_HOME: return KP_HOME; + case K_UPARROW: return KP_UPARROW; + case K_PGUP: return KP_PGUP; + case K_LEFTARROW: return KP_LEFTARROW; + case K_RIGHTARROW: return KP_RIGHTARROW; + case K_END: return KP_END; + case K_DOWNARROW: return KP_DOWNARROW; + case K_PGDN: return KP_PGDN; + case K_INS: return KP_INS; + case K_DEL: return KP_DEL; + } + } + } else { + // cl_keypad 0, compatibility mode + switch (key) { + case KP_STAR: return '*'; + case KP_MINUS: return '-'; + case KP_5: return '5'; + case KP_PLUS: return '+'; + } + } + */ +} + +/* +============================================================================== + + LINE TYPING INTO THE CONSOLE + +============================================================================== +*/ + +/* +==================== +Key_Console -- johnfitz -- heavy revision + +Interactive line editing and console scrollback +==================== +*/ +void Key_Console (int key) +{ + extern int con_vislines; + extern char key_tabpartial[MAXCMDLINE]; + // char *cmd; unused -- kristian + + switch (key) + { + case K_ENTER: + case KP_ENTER: + key_tabpartial[0] = 0; + Cbuf_AddText (key_lines[edit_line]+1); // skip the prompt + Cbuf_AddText ("\n"); + Con_Printf ("%s\n",key_lines[edit_line]); + edit_line = (edit_line + 1) & 31; + history_line = edit_line; + key_lines[edit_line][0] = ']'; + key_lines[edit_line][1] = 0; //johnfitz -- otherwise old history items show up in the new edit line + key_linepos = 1; + if (cls.state == ca_disconnected) + SCR_UpdateScreen (); // force an update, because the command may take some time + return; + + case K_TAB: + Con_TabComplete (); + return; + + case K_BACKSPACE: + + key_tabpartial[0] = 0; + if (key_linepos > 1) + { + strcpy(key_lines[edit_line] + key_linepos - 1, key_lines[edit_line] + key_linepos); + key_linepos--; + } + return; + + case K_INS: + key_insert ^= 1; + return; + + case K_DEL: + key_tabpartial[0] = 0; + if (key_linepos < strlen(key_lines[edit_line])) + strcpy(key_lines[edit_line] + key_linepos, key_lines[edit_line] + key_linepos + 1); + return; + + case K_HOME: + if (keydown[K_CTRL]) + { + //skip initial empty lines + int i, x; + char *line; + extern int con_current, con_linewidth; + extern char *con_text; + //extern float scr_con_current; unused -- kristian + + for (i = con_current - con_totallines + 1 ; i <= con_current ; i++) + { + line = con_text + (i%con_totallines)*con_linewidth; + for (x=0 ; x>3)-1); + } + else + key_linepos = 1; + return; + + case K_END: + if (keydown[K_CTRL]) + con_backscroll = 0; + else + key_linepos = strlen(key_lines[edit_line]); + return; + + case K_PGUP: + //case K_MWHEELUP: + con_backscroll += keydown[K_CTRL] ? ((con_vislines>>3) - 4) : 2; + if (con_backscroll > con_totallines - (vid.height>>3) - 1) + con_backscroll = con_totallines - (vid.height>>3) - 1; + return; + + case K_PGDN: + //case K_MWHEELDOWN: + con_backscroll -= keydown[K_CTRL] ? ((con_vislines>>3) - 4) : 2; + if (con_backscroll < 0) + con_backscroll = 0; + return; + + case K_LEFTARROW: + if (key_linepos > 1) + { + key_linepos--; + key_blinktime = realtime; + } + return; + + case K_RIGHTARROW: + if (strlen(key_lines[edit_line]) == key_linepos) + { + if (strlen(key_lines[(edit_line + 31) & 31]) <= key_linepos) + return; // no character to get + + key_lines[edit_line][key_linepos] = key_lines[(edit_line + 31) & 31][key_linepos]; + key_linepos++; + key_lines[edit_line][key_linepos] = 0; + } + else + { + key_linepos++; + key_blinktime = realtime; + } + return; + + case K_UPARROW: + key_tabpartial[0] = 0; + do + { + history_line = (history_line - 1) & 31; + } while (history_line != edit_line + && !key_lines[history_line][1]); + if (history_line == edit_line) + history_line = (edit_line+1)&31; + Q_strcpy(key_lines[edit_line], key_lines[history_line]); + key_linepos = Q_strlen(key_lines[edit_line]); + return; + + case K_DOWNARROW: + key_tabpartial[0] = 0; + + if (history_line == edit_line) + { + //clear editline + key_lines[edit_line][1] = 0; + key_linepos = 1; + return; + } + + do { + history_line = (history_line + 1) & 31; + } while (history_line != edit_line + && !key_lines[history_line][1]); + if (history_line == edit_line) + { + key_lines[edit_line][0] = ']'; + key_linepos = 1; + } + else + { + Q_strcpy(key_lines[edit_line], key_lines[history_line]); + key_linepos = Q_strlen(key_lines[edit_line]); + } + return; + } + +//johnfitz -- clipboard pasting, stolen from zquake +/* TODO: make portable or remove + if ((key=='V' || key=='v') && keydown[K_CTRL]) + { + HANDLE th; + char *clipText; + int i; + + if (OpenClipboard(NULL)) { + th = GetClipboardData(CF_TEXT); + if (th) { + clipText = GlobalLock(th); + if (clipText) { + for (i=0; clipText[i]; i++) + if (clipText[i]=='\n' || clipText[i]=='\r' || clipText[i]=='\b') + break; + if (i + strlen(key_lines[edit_line]) > MAXCMDLINE-1) + i = MAXCMDLINE-1 - strlen(key_lines[edit_line]); + if (i > 0) + { // insert the string + memmove (key_lines[edit_line] + key_linepos + i, + key_lines[edit_line] + key_linepos, strlen(key_lines[edit_line]) - key_linepos + 1); + memcpy (key_lines[edit_line] + key_linepos, clipText, i); + key_linepos += i; + } + } + GlobalUnlock(th); + } + CloseClipboard(); + } + return; + } +*/ + if (key < 32 || key > 127) + return; // non printable + + //johnfitz -- stolen from darkplaces + if (key_linepos < MAXCMDLINE-1) + { + int i; + + key_tabpartial[0] = 0; //johnfitz + + if (key_insert) // check insert mode + { + // can't do strcpy to move string to right + i = strlen(key_lines[edit_line]) - 1; + + if (i == 254) + i--; + + for (; i >= key_linepos; i--) + key_lines[edit_line][i + 1] = key_lines[edit_line][i]; + } + + // only null terminate if at the end + i = key_lines[edit_line][key_linepos]; + key_lines[edit_line][key_linepos] = key; + key_linepos++; + + if (!i) + key_lines[edit_line][key_linepos] = 0; + } + //johnfitz +} + +//============================================================================ + +char chat_buffer[32]; +qboolean team_message = false; + +void Key_Message (int key) +{ + static int chat_bufferlen = 0; + + if (key == K_ENTER) + { + if (team_message) + Cbuf_AddText ("say_team \""); + else + Cbuf_AddText ("say \""); + Cbuf_AddText(chat_buffer); + Cbuf_AddText("\"\n"); + + key_dest = key_game; + chat_bufferlen = 0; + chat_buffer[0] = 0; + return; + } + + if (key == K_ESCAPE) + { + key_dest = key_game; + chat_bufferlen = 0; + chat_buffer[0] = 0; + return; + } + + if (key < 32 || key > 127) + return; // non printable + + if (key == K_BACKSPACE) + { + if (chat_bufferlen) + { + chat_bufferlen--; + chat_buffer[chat_bufferlen] = 0; + } + return; + } + + if (chat_bufferlen == 31) + return; // all full + + chat_buffer[chat_bufferlen++] = key; + chat_buffer[chat_bufferlen] = 0; +} + +//============================================================================ + + +/* +=================== +Key_StringToKeynum + +Returns a key number to be used to index keybindings[] by looking at +the given string. Single ascii characters return themselves, while +the K_* names are matched up. +=================== +*/ +int Key_StringToKeynum (char *str) +{ + keyname_t *kn; + + if (!str || !str[0]) + return -1; + if (!str[1]) + return str[0]; + + for (kn=keynames ; kn->name ; kn++) + { + if (!Q_strcasecmp(str,kn->name)) + return kn->keynum; + } + return -1; +} + +/* +=================== +Key_KeynumToString + +Returns a string (either a single ascii char, or a K_* name) for the +given keynum. +FIXME: handle quote special (general escape sequence?) +=================== +*/ +char *Key_KeynumToString (int keynum) +{ + keyname_t *kn; + static char tinystr[2]; + + if (keynum == -1) + return ""; + if (keynum > 32 && keynum < 127) + { // printable ascii + tinystr[0] = keynum; + tinystr[1] = 0; + return tinystr; + } + + for (kn=keynames ; kn->name ; kn++) + if (keynum == kn->keynum) + return kn->name; + + return ""; +} + + +/* +=================== +Key_SetBinding +=================== +*/ +void Key_SetBinding (int keynum, char *binding) +{ + char *new; + int l; + + if (keynum == -1) + return; + +// free old bindings + if (keybindings[keynum]) + { + Z_Free (keybindings[keynum]); + keybindings[keynum] = NULL; + } + +// allocate memory for new binding + l = Q_strlen (binding); + new = Z_Malloc (l+1); + Q_strcpy (new, binding); + new[l] = 0; + keybindings[keynum] = new; +} + +/* +=================== +Key_Unbind_f +=================== +*/ +void Key_Unbind_f (void) +{ + int b; + + if (Cmd_Argc() != 2) + { + Con_Printf ("unbind : remove commands from a key\n"); + return; + } + + b = Key_StringToKeynum (Cmd_Argv(1)); + if (b==-1) + { + Con_Printf ("\"%s\" isn't a valid key\n", Cmd_Argv(1)); + return; + } + + Key_SetBinding (b, ""); +} + +void Key_Unbindall_f (void) +{ + int i; + + for (i=0 ; i<256 ; i++) + if (keybindings[i]) + Key_SetBinding (i, ""); +} + +/* +============ +Key_Bindlist_f -- johnfitz +============ +*/ +void Key_Bindlist_f (void) +{ + int i, count; + + count = 0; + for (i=0 ; i<256 ; i++) + if (keybindings[i]) + if (*keybindings[i]) + { + Con_SafePrintf (" %s \"%s\"\n", Key_KeynumToString(i), keybindings[i]); + count++; + } + Con_SafePrintf ("%i bindings\n", count); +} + +/* +=================== +Key_Bind_f +=================== +*/ +void Key_Bind_f (void) +{ + int i, c, b; + char cmd[1024]; + + c = Cmd_Argc(); + + if (c != 2 && c != 3) + { + Con_Printf ("bind [command] : attach a command to a key\n"); + return; + } + b = Key_StringToKeynum (Cmd_Argv(1)); + if (b==-1) + { + Con_Printf ("\"%s\" isn't a valid key\n", Cmd_Argv(1)); + return; + } + + if (c == 2) + { + if (keybindings[b]) + Con_Printf ("\"%s\" = \"%s\"\n", Cmd_Argv(1), keybindings[b] ); + else + Con_Printf ("\"%s\" is not bound\n", Cmd_Argv(1) ); + return; + } + +// copy the rest of the command line + cmd[0] = 0; // start out with a null string + for (i=2 ; i< c ; i++) + { + if (i > 2) + strcat (cmd, " "); + strcat (cmd, Cmd_Argv(i)); + } + + Key_SetBinding (b, cmd); +} + +/* +============ +Key_WriteBindings + +Writes lines containing "bind key value" +============ +*/ +void Key_WriteBindings (FILE *f) +{ + int i; + + for (i=0 ; i<256 ; i++) + if (keybindings[i]) + if (*keybindings[i]) + fprintf (f, "bind \"%s\" \"%s\"\n", Key_KeynumToString(i), keybindings[i]); +} + + +/* +=================== +Key_Init +=================== +*/ +void Key_Init (void) +{ + int i; + + BuildKeyMaps(); + + for (i=0 ; i<32 ; i++) + { + key_lines[i][0] = ']'; + key_lines[i][1] = 0; + } + key_linepos = 1; + + key_blinktime = realtime; //johnfitz + +// +// init ascii characters in console mode +// + for (i=32 ; i<128 ; i++) + consolekeys[i] = true; + consolekeys[K_ENTER] = true; + consolekeys[KP_ENTER] = true; //johnfitz + consolekeys[K_TAB] = true; + consolekeys[K_LEFTARROW] = true; + consolekeys[K_RIGHTARROW] = true; + consolekeys[K_UPARROW] = true; + consolekeys[K_DOWNARROW] = true; + consolekeys[K_BACKSPACE] = true; + consolekeys[K_DEL] = true; //johnfitz + consolekeys[K_INS] = true; //johnfitz + consolekeys[K_HOME] = true; //johnfitz + consolekeys[K_END] = true; //johnfitz + consolekeys[K_PGUP] = true; + consolekeys[K_PGDN] = true; + consolekeys[K_SHIFT] = true; + consolekeys[K_MWHEELUP] = true; + consolekeys[K_MWHEELDOWN] = true; + consolekeys['`'] = false; + consolekeys['~'] = false; + + //johnfitz -- repeating keys + for (i=0 ; i<256 ; i++) + repeatkeys[i] = false; + repeatkeys[K_BACKSPACE] = true; + repeatkeys[K_DEL] = true; + repeatkeys[K_PAUSE] = true; + repeatkeys[K_PGUP] = true; + repeatkeys[K_PGDN] = true; + repeatkeys[K_LEFTARROW] = true; + repeatkeys[K_RIGHTARROW] = true; + //johnfitz + + for (i=0 ; i<256 ; i++) + keyshift[i] = i; + for (i='a' ; i<='z' ; i++) + keyshift[i] = i - 'a' + 'A'; + keyshift['1'] = '!'; + keyshift['2'] = '@'; + keyshift['3'] = '#'; + keyshift['4'] = '$'; + keyshift['5'] = '%'; + keyshift['6'] = '^'; + keyshift['7'] = '&'; + keyshift['8'] = '*'; + keyshift['9'] = '('; + keyshift['0'] = ')'; + keyshift['-'] = '_'; + keyshift['='] = '+'; + keyshift[','] = '<'; + keyshift['.'] = '>'; + keyshift['/'] = '?'; + keyshift[';'] = ':'; + keyshift['\''] = '"'; + keyshift['['] = '{'; + keyshift[']'] = '}'; + keyshift['`'] = '~'; + keyshift['\\'] = '|'; + + menubound[K_ESCAPE] = true; + for (i=0 ; i<12 ; i++) + menubound[K_F1+i] = true; + +// +// register our functions +// + Cmd_AddCommand ("bindlist",Key_Bindlist_f); //johnfitz + Cmd_AddCommand ("bind",Key_Bind_f); + Cmd_AddCommand ("unbind",Key_Unbind_f); + Cmd_AddCommand ("unbindall",Key_Unbindall_f); +} + +/* +=================== +Key_Event + +Called by the system between frames for both key up and key down events +Should NOT be called during an interrupt! +=================== +*/ +void Key_Event (int key, qboolean down) +{ + char *kb; + char cmd[1024]; + + keydown[key] = down; + + if (!down) + key_repeats[key] = 0; + + key_lastpress = key; + key_count++; + if (key_count <= 0) + { + return; // just catching keys for Con_NotifyBox + } + +// update auto-repeat status + if (down) + { + key_repeats[key]++; + if (key_dest != key_console && key_repeats[key] > 1 && !repeatkeys[key]) //johnfitz -- use repeatkeys[] + return; // ignore most autorepeats + + if (key >= 200 && !keybindings[key]) + Con_Printf ("%s is unbound, hit F4 to set.\n", Key_KeynumToString (key) ); + } + + if (key == K_SHIFT) + shift_down = down; + +// +// handle escape specialy, so the user can never unbind it +// + if (key == K_ESCAPE) + { + if (!down) + return; + switch (key_dest) + { + case key_message: + Key_Message (key); + break; + case key_menu: + M_Keydown (key); + break; + case key_game: + case key_console: + M_ToggleMenu_f (); + break; + default: + Sys_Error ("Bad key_dest"); + } + return; + } + +// johnfitz -- alt-enter to toggle fullscreen. FIXME -- this does NOT work +#if 0 + if (!down && (key == K_ENTER) && keydown[K_ALT]) + { + extern cvar_t vid_fullscreen; + if (vid_fullscreen.value) + Cvar_Set ("vid_fullscreen", "0"); + else + Cvar_Set ("vid_fullscreen", "1"); + VID_Restart (); + } +#endif +// johnfitz + +// +// key up events only generate commands if the game key binding is +// a button command (leading + sign). These will occur even in console mode, +// to keep the character from continuing an action started before a console +// switch. Button commands include the kenum as a parameter, so multiple +// downs can be matched with ups +// + if (!down) + { + kb = keybindings[key]; + if (kb && kb[0] == '+') + { + sprintf (cmd, "-%s %i\n", kb+1, key); + Cbuf_AddText (cmd); + } + if (keyshift[key] != key) + { + kb = keybindings[keyshift[key]]; + if (kb && kb[0] == '+') + { + sprintf (cmd, "-%s %i\n", kb+1, key); + Cbuf_AddText (cmd); + } + } + return; + } + +// +// during demo playback, most keys bring up the main menu +// + if (cls.demoplayback && down && consolekeys[key] && key_dest == key_game) + { + M_ToggleMenu_f (); + return; + } + +// +// if not a consolekey, send to the interpreter no matter what mode is +// + if ( (key_dest == key_menu && menubound[key]) + || (key_dest == key_console && !consolekeys[key]) + || (key_dest == key_game && ( !con_forcedup || !consolekeys[key] ) ) ) + { + kb = keybindings[key]; + if (kb) + { + if (kb[0] == '+') + { // button commands add keynum as a parm + sprintf (cmd, "%s %i\n", kb, key); + Cbuf_AddText (cmd); + } + else + { + Cbuf_AddText (kb); + Cbuf_AddText ("\n"); + } + } + return; + } + + if (!down) + return; // other systems only care about key down events + + if (shift_down) + { + key = keyshift[key]; + } + + switch (key_dest) + { + case key_message: + Key_Message (key); + break; + case key_menu: + M_Keydown (key); + break; + + case key_game: + case key_console: + Key_Console (key); + break; + default: + Sys_Error ("Bad key_dest"); + } +} + + +/* +=================== +Key_ClearStates +=================== +*/ +void Key_ClearStates (void) +{ + int i; + + for (i=0 ; i<256 ; i++) + { + keydown[i] = false; + key_repeats[i] = 0; + } +} + diff --git a/quakespasm/Quake/keys.h b/quakespasm/Quake/keys.h new file mode 100644 index 00000000..63282ea2 --- /dev/null +++ b/quakespasm/Quake/keys.h @@ -0,0 +1,154 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ + +// +// these are the key numbers that should be passed to Key_Event +// +#define K_TAB 9 +#define K_ENTER 13 +#define K_ESCAPE 27 +#define K_SPACE 32 + +// normal keys should be passed as lowercased ascii + +#define K_BACKSPACE 127 +#define K_UPARROW 128 +#define K_DOWNARROW 129 +#define K_LEFTARROW 130 +#define K_RIGHTARROW 131 + +#define K_ALT 132 +#define K_CTRL 133 +#define K_SHIFT 134 +#define K_F1 135 +#define K_F2 136 +#define K_F3 137 +#define K_F4 138 +#define K_F5 139 +#define K_F6 140 +#define K_F7 141 +#define K_F8 142 +#define K_F9 143 +#define K_F10 144 +#define K_F11 145 +#define K_F12 146 +#define K_INS 147 +#define K_DEL 148 +#define K_PGDN 149 +#define K_PGUP 150 +#define K_HOME 151 +#define K_END 152 + +//johnfitz -- keypad +#define KP_NUMLOCK 153 +#define KP_SLASH 154 +#define KP_STAR 155 +#define KP_MINUS 156 +#define KP_HOME 157 +#define KP_UPARROW 158 +#define KP_PGUP 159 +#define KP_PLUS 160 +#define KP_LEFTARROW 161 +#define KP_5 162 +#define KP_RIGHTARROW 163 +#define KP_END 164 +#define KP_DOWNARROW 165 +#define KP_PGDN 166 +#define KP_ENTER 167 +#define KP_INS 168 +#define KP_DEL 169 +//johnfitz + +#define K_PAUSE 255 + +// +// mouse buttons generate virtual keys +// +#define K_MOUSE1 200 +#define K_MOUSE2 201 +#define K_MOUSE3 202 + +// +// joystick buttons +// +#define K_JOY1 203 +#define K_JOY2 204 +#define K_JOY3 205 +#define K_JOY4 206 + +// +// aux keys are for multi-buttoned joysticks to generate so they can use +// the normal binding process +// +#define K_AUX1 207 +#define K_AUX2 208 +#define K_AUX3 209 +#define K_AUX4 210 +#define K_AUX5 211 +#define K_AUX6 212 +#define K_AUX7 213 +#define K_AUX8 214 +#define K_AUX9 215 +#define K_AUX10 216 +#define K_AUX11 217 +#define K_AUX12 218 +#define K_AUX13 219 +#define K_AUX14 220 +#define K_AUX15 221 +#define K_AUX16 222 +#define K_AUX17 223 +#define K_AUX18 224 +#define K_AUX19 225 +#define K_AUX20 226 +#define K_AUX21 227 +#define K_AUX22 228 +#define K_AUX23 229 +#define K_AUX24 230 +#define K_AUX25 231 +#define K_AUX26 232 +#define K_AUX27 233 +#define K_AUX28 234 +#define K_AUX29 235 +#define K_AUX30 236 +#define K_AUX31 237 +#define K_AUX32 238 + +// JACK: Intellimouse(c) Mouse Wheel Support + +#define K_MWHEELUP 239 +#define K_MWHEELDOWN 240 + + + +typedef enum {key_game, key_console, key_message, key_menu} keydest_t; + +extern keydest_t key_dest; +extern char *keybindings[256]; +extern int key_repeats[256]; +extern int key_count; // incremented every key event +extern int key_lastpress; + +void Key_Event (int key, qboolean down); +void Key_Init (void); +void Key_WriteBindings (FILE *f); +void Key_SetBinding (int keynum, char *binding); +void Key_ClearStates (void); + diff --git a/quakespasm/Quake/main.c b/quakespasm/Quake/main.c new file mode 100644 index 00000000..a0219f17 --- /dev/null +++ b/quakespasm/Quake/main.c @@ -0,0 +1,147 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 +#include "quakedef.h" + +#define DEFAULT_MEMORY 0x2000000 + +int main(int argc, char *argv[]) +{ + SDL_Event event; + quakeparms_t parms; + int t; + int done = 0; + double time, oldtime, newtime; + + parms.basedir = "."; + parms.cachedir = NULL; + + parms.argc = argc; + parms.argv = argv; + + COM_InitArgv(parms.argc, parms.argv); + + isDedicated = (COM_CheckParm("-dedicated") != 0); + + // default memory size + parms.memsize = DEFAULT_MEMORY; + + if (COM_CheckParm("-heapsize")) + { + t = COM_CheckParm("-heapsize") + 1; + if (t < com_argc) + parms.memsize = Q_atoi(com_argv[t]) * 1024; + } + + parms.membase = malloc (parms.memsize); + + if (!parms.membase) + Sys_Error ("Not enough memory free; check disk space\n"); + + // Sys_PageIn (parms.membase, parms.memsize); don't think this is needed -- kristian + + // TODO: dedicated server setup + + // S_BlockSound(); do I need this? + + Con_Printf("Host_Init\n"); + Host_Init(&parms); + + oldtime = Sys_FloatTime(); + while (!done) + { + // TODO: dedicated server loop + + while (!done && SDL_PollEvent (&event)) { + switch (event.type) { + case SDL_ACTIVEEVENT: + if (event.active.state & SDL_APPACTIVE & SDL_APPINPUTFOCUS) + if (event.active.gain) + { + IN_Activate(); + } + else + { + // TODO: handle sound + IN_Deactivate(vid.type == MODE_WINDOWED); + } + break; + case SDL_MOUSEMOTION: + IN_MouseMove(event.motion.xrel, event.motion.yrel); + break; + case SDL_MOUSEBUTTONDOWN: + case SDL_MOUSEBUTTONUP: + + switch (event.button.button) { + case SDL_BUTTON_LEFT: + Key_Event(K_MOUSE1, event.button.type == SDL_MOUSEBUTTONDOWN); + break; + case SDL_BUTTON_RIGHT: + Key_Event(K_MOUSE2, event.button.type == SDL_MOUSEBUTTONDOWN); + break; + case SDL_BUTTON_MIDDLE: + Key_Event(K_MOUSE3, event.button.type == SDL_MOUSEBUTTONDOWN); + break; + case SDL_BUTTON_WHEELUP: + Key_Event(K_MWHEELUP, event.button.type == SDL_MOUSEBUTTONDOWN); + break; + case SDL_BUTTON_WHEELDOWN: + Key_Event(K_MWHEELDOWN, event.button.type == SDL_MOUSEBUTTONDOWN); + break; + } + break; + case SDL_KEYDOWN: + case SDL_KEYUP: + // LSHIFT + ESC and circomflex always opens the console no matter what + if ((event.key.keysym.sym == SDLK_ESCAPE && (event.key.keysym.mod & KMOD_LSHIFT != 0)) || (event.key.keysym.sym == SDLK_CARET)) + { + if (event.key.type == SDL_KEYDOWN) + Con_ToggleConsole_f(); + } + else + { + Key_Event(Key_Map(&(event.key)), event.key.type == SDL_KEYDOWN); + } + break; + case SDL_QUIT: + done = 1; + break; + default: + break; + } + } + + newtime = Sys_FloatTime(); + time = newtime - oldtime; + + Host_Frame(time); + + // throttle the game loop just a little bit - noone needs more than 1000fps, I think + if (newtime - oldtime < 1) + SDL_Delay(1); + + oldtime = newtime; + } + + Sys_Quit(); + return 0; +} diff --git a/quakespasm/Quake/mathlib.c b/quakespasm/Quake/mathlib.c new file mode 100644 index 00000000..6371a487 --- /dev/null +++ b/quakespasm/Quake/mathlib.c @@ -0,0 +1,557 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// mathlib.c -- math primitives + +#include +#include "quakedef.h" + +void Sys_Error (char *error, ...); + +vec3_t vec3_origin = {0,0,0}; +int nanmask = 255<<23; + +/*-----------------------------------------------------------------*/ + + +//#define DEG2RAD( a ) ( a * M_PI ) / 180.0F +#define DEG2RAD( a ) ( (a) * M_PI_DIV_180 ) //johnfitz + +// kristian - missing math functions +#ifndef max +int max (int x, int y) +{ + if (x > y) + return x; + + return y; +} +#endif +#ifndef min +int min (int x, int y) +{ + if (x < y) + return x; + + return y; +} +#endif +// kristian + +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]; +} + +/* +** assumes "src" is normalized +*/ +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 = 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 + */ + VectorNormalize( dst ); +} + +//johnfitz -- removed RotatePointAroundVector() becuase it's no longer used and my compiler fucked it up anyway + +/*-----------------------------------------------------------------*/ + + +float anglemod(float a) +{ +#if 0 + if (a >= 0) + a -= 360*(int)(a/360); + else + a += 360*( 1 + (int)(-a/360) ); +#endif + a = (360.0/65536) * ((int)(a*(65536/360.0)) & 65535); + return a; +} + +/* +================== +BOPS_Error + +Split out like this for ASM to call. +================== +*/ +void BOPS_Error (void) +{ + Sys_Error ("BoxOnPlaneSide: Bad signbits"); +} + + +/* +================== +BoxOnPlaneSide + +Returns 1, 2, or 1 + 2 +================== +*/ +int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, mplane_t *p) +{ + float dist1, dist2; + int sides; + +#if 0 // this is done by the BOX_ON_PLANE_SIDE macro before calling this + // function +// fast axial cases + if (p->type < 3) + { + if (p->dist <= emins[p->type]) + return 1; + if (p->dist >= emaxs[p->type]) + return 2; + return 3; + } +#endif + +// general case + switch (p->signbits) + { + case 0: +dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; +dist2 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; + break; + case 1: +dist1 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; +dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; + break; + case 2: +dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; +dist2 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; + break; + case 3: +dist1 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; +dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; + break; + case 4: +dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; +dist2 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; + break; + case 5: +dist1 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2]; +dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2]; + break; + case 6: +dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; +dist2 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; + break; + case 7: +dist1 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2]; +dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2]; + break; + default: + dist1 = dist2 = 0; // shut up compiler + BOPS_Error (); + break; + } + +#if 0 + int i; + vec3_t corners[2]; + + for (i=0 ; i<3 ; i++) + { + if (plane->normal[i] < 0) + { + corners[0][i] = emins[i]; + corners[1][i] = emaxs[i]; + } + else + { + corners[1][i] = emins[i]; + corners[0][i] = emaxs[i]; + } + } + dist = DotProduct (plane->normal, corners[0]) - plane->dist; + dist2 = DotProduct (plane->normal, corners[1]) - plane->dist; + sides = 0; + if (dist1 >= 0) + sides = 1; + if (dist2 < 0) + sides |= 2; + +#endif + + sides = 0; + if (dist1 >= p->dist) + sides = 1; + if (dist2 < p->dist) + sides |= 2; + +#ifdef PARANOID +if (sides == 0) + Sys_Error ("BoxOnPlaneSide: sides==0"); +#endif + + return sides; +} + +//johnfitz -- the opposite of AngleVectors. this takes forward and generates pitch yaw roll +//TODO: take right and up vectors to properly set yaw and roll +void VectorAngles (const vec3_t forward, vec3_t angles) +{ + vec3_t temp; + + temp[0] = forward[0]; + temp[1] = forward[1]; + temp[2] = 0; + angles[PITCH] = -atan2(forward[2], Length(temp)) / M_PI_DIV_180; + angles[YAW] = atan2(forward[1], forward[0]) / M_PI_DIV_180; + angles[ROLL] = 0; +} + +void AngleVectors (vec3_t angles, vec3_t forward, vec3_t right, vec3_t up) +{ + float angle; + float sr, sp, sy, cr, cp, cy; + + angle = angles[YAW] * (M_PI*2 / 360); + sy = sin(angle); + cy = cos(angle); + angle = angles[PITCH] * (M_PI*2 / 360); + sp = sin(angle); + cp = cos(angle); + angle = angles[ROLL] * (M_PI*2 / 360); + sr = sin(angle); + cr = cos(angle); + + forward[0] = cp*cy; + forward[1] = cp*sy; + forward[2] = -sp; + right[0] = (-1*sr*sp*cy+-1*cr*-sy); + right[1] = (-1*sr*sp*sy+-1*cr*cy); + right[2] = -1*sr*cp; + up[0] = (cr*sp*cy+-sr*-sy); + up[1] = (cr*sp*sy+-sr*cy); + up[2] = cr*cp; +} + +int VectorCompare (vec3_t v1, vec3_t v2) +{ + int i; + + for (i=0 ; i<3 ; i++) + if (v1[i] != v2[i]) + return 0; + + return 1; +} + +void VectorMA (vec3_t veca, float scale, 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]; +} + + +vec_t _DotProduct (vec3_t v1, vec3_t v2) +{ + return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]; +} + +void _VectorSubtract (vec3_t veca, vec3_t vecb, vec3_t out) +{ + out[0] = veca[0]-vecb[0]; + out[1] = veca[1]-vecb[1]; + out[2] = veca[2]-vecb[2]; +} + +void _VectorAdd (vec3_t veca, vec3_t vecb, vec3_t out) +{ + out[0] = veca[0]+vecb[0]; + out[1] = veca[1]+vecb[1]; + out[2] = veca[2]+vecb[2]; +} + +void _VectorCopy (vec3_t in, vec3_t out) +{ + out[0] = in[0]; + out[1] = in[1]; + out[2] = in[2]; +} + +void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross) +{ + cross[0] = v1[1]*v2[2] - v1[2]*v2[1]; + cross[1] = v1[2]*v2[0] - v1[0]*v2[2]; + cross[2] = v1[0]*v2[1] - v1[1]*v2[0]; +} + +double sqrt(double x); + +vec_t Length(vec3_t v) +{ + int i; + float length; + + length = 0; + for (i=0 ; i< 3 ; i++) + length += v[i]*v[i]; + length = sqrt (length); // FIXME + + return length; +} + +float VectorNormalize (vec3_t v) +{ + float length, ilength; + + length = v[0]*v[0] + v[1]*v[1] + v[2]*v[2]; + length = sqrt (length); // FIXME + + if (length) + { + ilength = 1/length; + v[0] *= ilength; + v[1] *= ilength; + v[2] *= ilength; + } + + return length; + +} + +void VectorInverse (vec3_t v) +{ + v[0] = -v[0]; + v[1] = -v[1]; + v[2] = -v[2]; +} + +void VectorScale (vec3_t in, vec_t scale, vec3_t out) +{ + out[0] = in[0]*scale; + out[1] = in[1]*scale; + out[2] = in[2]*scale; +} + + +int Q_log2(int val) +{ + int answer=0; + while (val>>=1) + answer++; + return answer; +} + + +/* +================ +R_ConcatRotations +================ +*/ +void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3]) +{ + out[0][0] = in1[0][0] * in2[0][0] + in1[0][1] * in2[1][0] + + in1[0][2] * in2[2][0]; + out[0][1] = in1[0][0] * in2[0][1] + in1[0][1] * in2[1][1] + + in1[0][2] * in2[2][1]; + out[0][2] = in1[0][0] * in2[0][2] + in1[0][1] * in2[1][2] + + in1[0][2] * in2[2][2]; + out[1][0] = in1[1][0] * in2[0][0] + in1[1][1] * in2[1][0] + + in1[1][2] * in2[2][0]; + out[1][1] = in1[1][0] * in2[0][1] + in1[1][1] * in2[1][1] + + in1[1][2] * in2[2][1]; + out[1][2] = in1[1][0] * in2[0][2] + in1[1][1] * in2[1][2] + + in1[1][2] * in2[2][2]; + out[2][0] = in1[2][0] * in2[0][0] + in1[2][1] * in2[1][0] + + in1[2][2] * in2[2][0]; + out[2][1] = in1[2][0] * in2[0][1] + in1[2][1] * in2[1][1] + + in1[2][2] * in2[2][1]; + out[2][2] = in1[2][0] * in2[0][2] + in1[2][1] * in2[1][2] + + in1[2][2] * in2[2][2]; +} + + +/* +================ +R_ConcatTransforms +================ +*/ +void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4]) +{ + out[0][0] = in1[0][0] * in2[0][0] + in1[0][1] * in2[1][0] + + in1[0][2] * in2[2][0]; + out[0][1] = in1[0][0] * in2[0][1] + in1[0][1] * in2[1][1] + + in1[0][2] * in2[2][1]; + out[0][2] = in1[0][0] * in2[0][2] + in1[0][1] * in2[1][2] + + in1[0][2] * in2[2][2]; + out[0][3] = in1[0][0] * in2[0][3] + in1[0][1] * in2[1][3] + + in1[0][2] * in2[2][3] + in1[0][3]; + out[1][0] = in1[1][0] * in2[0][0] + in1[1][1] * in2[1][0] + + in1[1][2] * in2[2][0]; + out[1][1] = in1[1][0] * in2[0][1] + in1[1][1] * in2[1][1] + + in1[1][2] * in2[2][1]; + out[1][2] = in1[1][0] * in2[0][2] + in1[1][1] * in2[1][2] + + in1[1][2] * in2[2][2]; + out[1][3] = in1[1][0] * in2[0][3] + in1[1][1] * in2[1][3] + + in1[1][2] * in2[2][3] + in1[1][3]; + out[2][0] = in1[2][0] * in2[0][0] + in1[2][1] * in2[1][0] + + in1[2][2] * in2[2][0]; + out[2][1] = in1[2][0] * in2[0][1] + in1[2][1] * in2[1][1] + + in1[2][2] * in2[2][1]; + out[2][2] = in1[2][0] * in2[0][2] + in1[2][1] * in2[1][2] + + in1[2][2] * in2[2][2]; + out[2][3] = in1[2][0] * in2[0][3] + in1[2][1] * in2[1][3] + + in1[2][2] * in2[2][3] + in1[2][3]; +} + + +/* +=================== +FloorDivMod + +Returns mathematically correct (floor-based) quotient and remainder for +numer and denom, both of which should contain no fractional part. The +quotient must fit in 32 bits. +==================== +*/ + +void FloorDivMod (double numer, double denom, int *quotient, + int *rem) +{ + int q, r; + double x; + +#ifndef PARANOID + if (denom <= 0.0) + Sys_Error ("FloorDivMod: bad denominator %d\n", denom); + +// if ((floor(numer) != numer) || (floor(denom) != denom)) +// Sys_Error ("FloorDivMod: non-integer numer or denom %f %f\n", +// numer, denom); +#endif + + if (numer >= 0.0) + { + + x = floor(numer / denom); + q = (int)x; + r = (int)floor(numer - (x * denom)); + } + else + { + // + // perform operations with positive values, and fix mod to make floor-based + // + x = floor(-numer / denom); + q = -(int)x; + r = (int)floor(-numer - (x * denom)); + if (r != 0) + { + q--; + r = (int)denom - r; + } + } + + *quotient = q; + *rem = r; +} + + +/* +=================== +GreatestCommonDivisor +==================== +*/ +int GreatestCommonDivisor (int i1, int i2) +{ + if (i1 > i2) + { + if (i2 == 0) + return (i1); + return GreatestCommonDivisor (i2, i1 % i2); + } + else + { + if (i1 == 0) + return (i2); + return GreatestCommonDivisor (i1, i2 % i1); + } +} + + +#if !id386 + +// TODO: move to nonintel.c + +/* +=================== +Invert24To16 + +Inverts an 8.24 value to a 16.16 value +==================== +*/ + +fixed16_t Invert24To16(fixed16_t val) +{ + if (val < 256) + return (0xFFFFFFFF); + + return (fixed16_t) + (((double)0x10000 * (double)0x1000000 / (double)val) + 0.5); +} + +#endif diff --git a/quakespasm/Quake/mathlib.h b/quakespasm/Quake/mathlib.h new file mode 100644 index 00000000..8d57a46f --- /dev/null +++ b/quakespasm/Quake/mathlib.h @@ -0,0 +1,122 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// mathlib.h + +typedef float vec_t; +typedef vec_t vec3_t[3]; +typedef vec_t vec5_t[5]; + +typedef int fixed4_t; +typedef int fixed8_t; +typedef int fixed16_t; + +#ifndef M_PI +#define M_PI 3.14159265358979323846 // matches value in gcc v2 math.h +#endif + +#define M_PI_DIV_180 (M_PI / 180.0) //johnfitz + +struct mplane_s; + +extern vec3_t vec3_origin; +extern int nanmask; + +#define IS_NAN(x) (((*(int *)&x)&nanmask)==nanmask) + +#define CLAMP(min, x, max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x)) //johnfitz + +#define Q_rint(x) ((x) > 0 ? (int)((x) + 0.5) : (int)((x) - 0.5)) //johnfitz -- from joequake + +#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];} + +//johnfitz -- courtesy of lordhavoc +#define VectorNormalizeFast(_v)\ +{\ + float _y, _number;\ + _number = DotProduct(_v, _v);\ + if (_number != 0.0)\ + {\ + *((long *)&_y) = 0x5f3759df - ((* (long *) &_number) >> 1);\ + _y = _y * (1.5f - (_number * 0.5f * _y * _y));\ + VectorScale(_v, _y, _v);\ + }\ +} + +// kristian - missing math functions +#if !defined(max) +inline int max (int x, int y); +#endif +#if !defined(min) +inline int min (int x, int y); +#endif +// kristian + +void TurnVector (vec3_t out, const vec3_t forward, const vec3_t side, float angle); //johnfitz +void VectorAngles (const vec3_t forward, vec3_t angles); //johnfitz + +void VectorMA (vec3_t veca, float scale, vec3_t vecb, vec3_t vecc); + +vec_t _DotProduct (vec3_t v1, vec3_t v2); +void _VectorSubtract (vec3_t veca, vec3_t vecb, vec3_t out); +void _VectorAdd (vec3_t veca, vec3_t vecb, vec3_t out); +void _VectorCopy (vec3_t in, vec3_t out); + +int VectorCompare (vec3_t v1, vec3_t v2); +vec_t Length (vec3_t v); +void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross); +float VectorNormalize (vec3_t v); // returns vector length +void VectorInverse (vec3_t v); +void VectorScale (vec3_t in, vec_t scale, vec3_t out); +int Q_log2(int val); + +void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3]); +void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4]); + +void FloorDivMod (double numer, double denom, int *quotient, + int *rem); +fixed16_t Invert24To16(fixed16_t val); +int GreatestCommonDivisor (int i1, int i2); + +void AngleVectors (vec3_t angles, vec3_t forward, vec3_t right, vec3_t up); +int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct mplane_s *plane); +float anglemod(float a); + + + +#define BOX_ON_PLANE_SIDE(emins, emaxs, p) \ + (((p)->type < 3)? \ + ( \ + ((p)->dist <= (emins)[(p)->type])? \ + 1 \ + : \ + ( \ + ((p)->dist >= (emaxs)[(p)->type])?\ + 2 \ + : \ + 3 \ + ) \ + ) \ + : \ + BoxOnPlaneSide( (emins), (emaxs), (p))) diff --git a/quakespasm/Quake/menu.c b/quakespasm/Quake/menu.c new file mode 100644 index 00000000..03697422 --- /dev/null +++ b/quakespasm/Quake/menu.c @@ -0,0 +1,3155 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 "quakedef.h" + +void (*vid_menucmdfn)(void); //johnfitz +void (*vid_menudrawfn)(void); +void (*vid_menukeyfn)(int key); + +enum { + m_none, + m_main, + m_singleplayer, + m_load, + m_save, + m_multiplayer, + m_setup, + m_net, + m_options, + m_video, + m_keys, + m_help, + m_quit, + m_serialconfig, + m_modemconfig, + m_lanconfig, + m_gameoptions, + m_search, + m_slist +} m_state; + +void M_Menu_Main_f (void); + void M_Menu_SinglePlayer_f (void); + void M_Menu_Load_f (void); + void M_Menu_Save_f (void); + void M_Menu_MultiPlayer_f (void); + void M_Menu_Setup_f (void); + void M_Menu_Net_f (void); + void M_Menu_LanConfig_f (void); + void M_Menu_SerialConfig_f (void); + void M_Menu_ModemConfig_f (void); + void M_Menu_GameOptions_f (void); + void M_Menu_Search_f (void); + void M_Menu_ServerList_f (void); + void M_Menu_Options_f (void); + void M_Menu_Keys_f (void); + void M_Menu_Video_f (void); + void M_Menu_Help_f (void); + void M_Menu_Quit_f (void); + +void M_Main_Draw (void); + void M_SinglePlayer_Draw (void); + void M_Load_Draw (void); + void M_Save_Draw (void); + void M_MultiPlayer_Draw (void); + void M_Setup_Draw (void); + void M_Net_Draw (void); + void M_SerialConfig_Draw (void); + void M_ModemConfig_Draw (void); + void M_LanConfig_Draw (void); + void M_GameOptions_Draw (void); + void M_Search_Draw (void); + void M_ServerList_Draw (void); + void M_Options_Draw (void); + void M_Keys_Draw (void); + void M_Video_Draw (void); + void M_Help_Draw (void); + void M_Quit_Draw (void); + +void M_Main_Key (int key); + void M_SinglePlayer_Key (int key); + void M_Load_Key (int key); + void M_Save_Key (int key); + void M_MultiPlayer_Key (int key); + void M_Setup_Key (int key); + void M_Net_Key (int key); + void M_SerialConfig_Key (int key); + void M_ModemConfig_Key (int key); + void M_LanConfig_Key (int key); + void M_GameOptions_Key (int key); + void M_Search_Key (int key); + void M_ServerList_Key (int key); + void M_Options_Key (int key); + void M_Keys_Key (int key); + void M_Video_Key (int key); + void M_Help_Key (int key); + void M_Quit_Key (int key); + +qboolean m_entersound; // play after drawing a frame, so caching + // won't disrupt the sound +qboolean m_recursiveDraw; + +int m_return_state; +qboolean m_return_onerror; +char m_return_reason [32]; + +#define StartingGame (m_multiplayer_cursor == 1) +#define JoiningGame (m_multiplayer_cursor == 0) +#define SerialConfig (m_net_cursor == 0) +#define DirectConfig (m_net_cursor == 1) +#define IPXConfig (m_net_cursor == 2) +#define TCPIPConfig (m_net_cursor == 3) + +void M_ConfigureNetSubsystem(void); + +/* +================ +M_DrawCharacter + +Draws one solid graphics character +================ +*/ +void M_DrawCharacter (int cx, int line, int num) +{ + Draw_Character (cx, line, num); +} + +void M_Print (int cx, int cy, char *str) +{ + while (*str) + { + M_DrawCharacter (cx, cy, (*str)+128); + str++; + cx += 8; + } +} + +void M_PrintWhite (int cx, int cy, char *str) +{ + while (*str) + { + M_DrawCharacter (cx, cy, *str); + str++; + cx += 8; + } +} + +void M_DrawTransPic (int x, int y, qpic_t *pic) +{ + Draw_Pic (x, y, pic); //johnfitz -- simplified becuase centering is handled elsewhere +} + +void M_DrawPic (int x, int y, qpic_t *pic) +{ + Draw_Pic (x, y, pic); //johnfitz -- simplified becuase centering is handled elsewhere +} + +void M_DrawTransPicTranslate (int x, int y, qpic_t *pic, int top, int bottom) //johnfitz -- more parameters +{ + Draw_TransPicTranslate (x, y, pic, top, bottom); //johnfitz -- simplified becuase centering is handled elsewhere +} + +void M_DrawTextBox (int x, int y, int width, int lines) +{ + qpic_t *p; + int cx, cy; + int n; + + // draw left side + cx = x; + cy = y; + p = Draw_CachePic ("gfx/box_tl.lmp"); + M_DrawTransPic (cx, cy, p); + p = Draw_CachePic ("gfx/box_ml.lmp"); + for (n = 0; n < lines; n++) + { + cy += 8; + M_DrawTransPic (cx, cy, p); + } + p = Draw_CachePic ("gfx/box_bl.lmp"); + M_DrawTransPic (cx, cy+8, p); + + // draw middle + cx += 8; + while (width > 0) + { + cy = y; + p = Draw_CachePic ("gfx/box_tm.lmp"); + M_DrawTransPic (cx, cy, p); + p = Draw_CachePic ("gfx/box_mm.lmp"); + for (n = 0; n < lines; n++) + { + cy += 8; + if (n == 1) + p = Draw_CachePic ("gfx/box_mm2.lmp"); + M_DrawTransPic (cx, cy, p); + } + p = Draw_CachePic ("gfx/box_bm.lmp"); + M_DrawTransPic (cx, cy+8, p); + width -= 2; + cx += 16; + } + + // draw right side + cy = y; + p = Draw_CachePic ("gfx/box_tr.lmp"); + M_DrawTransPic (cx, cy, p); + p = Draw_CachePic ("gfx/box_mr.lmp"); + for (n = 0; n < lines; n++) + { + cy += 8; + M_DrawTransPic (cx, cy, p); + } + p = Draw_CachePic ("gfx/box_br.lmp"); + M_DrawTransPic (cx, cy+8, p); +} + +//============================================================================= + +int m_save_demonum; + +/* +================ +M_ToggleMenu_f +================ +*/ +void M_ToggleMenu_f (void) +{ + m_entersound = true; + + if (key_dest == key_menu) + { + if (m_state != m_main) + { + M_Menu_Main_f (); + return; + } + + IN_Activate(); + key_dest = key_game; + m_state = m_none; + return; + } + if (key_dest == key_console) + { + Con_ToggleConsole_f (); + } + else + { + M_Menu_Main_f (); + } +} + + +//============================================================================= +/* MAIN MENU */ + +int m_main_cursor; +#define MAIN_ITEMS 5 + + +void M_Menu_Main_f (void) +{ + if (key_dest != key_menu) + { + m_save_demonum = cls.demonum; + cls.demonum = -1; + } + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_main; + m_entersound = true; +} + + +void M_Main_Draw (void) +{ + int f; + qpic_t *p; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/ttl_main.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + M_DrawTransPic (72, 32, Draw_CachePic ("gfx/mainmenu.lmp") ); + + f = (int)(realtime * 10)%6; //johnfitz -- was host_time + + M_DrawTransPic (54, 32 + m_main_cursor * 20,Draw_CachePic( va("gfx/menudot%i.lmp", f+1 ) ) ); +} + + +void M_Main_Key (int key) +{ + switch (key) + { + case K_ESCAPE: + IN_Activate(); + key_dest = key_game; + m_state = m_none; + cls.demonum = m_save_demonum; + if (cls.demonum != -1 && !cls.demoplayback && cls.state != ca_connected) + CL_NextDemo (); + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + if (++m_main_cursor >= MAIN_ITEMS) + m_main_cursor = 0; + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + if (--m_main_cursor < 0) + m_main_cursor = MAIN_ITEMS - 1; + break; + + case K_ENTER: + m_entersound = true; + + switch (m_main_cursor) + { + case 0: + M_Menu_SinglePlayer_f (); + break; + + case 1: + M_Menu_MultiPlayer_f (); + break; + + case 2: + M_Menu_Options_f (); + break; + + case 3: + M_Menu_Help_f (); + break; + + case 4: + M_Menu_Quit_f (); + break; + } + } +} + +//============================================================================= +/* SINGLE PLAYER MENU */ + +int m_singleplayer_cursor; +#define SINGLEPLAYER_ITEMS 3 + + +void M_Menu_SinglePlayer_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_singleplayer; + m_entersound = true; +} + + +void M_SinglePlayer_Draw (void) +{ + int f; + qpic_t *p; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/ttl_sgl.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + M_DrawTransPic (72, 32, Draw_CachePic ("gfx/sp_menu.lmp") ); + + f = (int)(realtime * 10)%6; //johnfitz -- was host_time + + M_DrawTransPic (54, 32 + m_singleplayer_cursor * 20,Draw_CachePic( va("gfx/menudot%i.lmp", f+1 ) ) ); +} + + +void M_SinglePlayer_Key (int key) +{ + switch (key) + { + case K_ESCAPE: + M_Menu_Main_f (); + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + if (++m_singleplayer_cursor >= SINGLEPLAYER_ITEMS) + m_singleplayer_cursor = 0; + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + if (--m_singleplayer_cursor < 0) + m_singleplayer_cursor = SINGLEPLAYER_ITEMS - 1; + break; + + case K_ENTER: + m_entersound = true; + + switch (m_singleplayer_cursor) + { + case 0: + if (sv.active) + if (!SCR_ModalMessage("Are you sure you want to\nstart a new game?\n", 0.0f)) + break; + IN_Activate(); + key_dest = key_game; + if (sv.active) + Cbuf_AddText ("disconnect\n"); + Cbuf_AddText ("maxplayers 1\n"); + Cbuf_AddText ("deathmatch 0\n"); //johnfitz + Cbuf_AddText ("coop 0\n"); //johnfitz + Cbuf_AddText ("map start\n"); + break; + + case 1: + M_Menu_Load_f (); + break; + + case 2: + M_Menu_Save_f (); + break; + } + } +} + +//============================================================================= +/* LOAD/SAVE MENU */ + +int load_cursor; // 0 < load_cursor < MAX_SAVEGAMES + +#define MAX_SAVEGAMES 20 //johnfitz -- increased from 12 +char m_filenames[MAX_SAVEGAMES][SAVEGAME_COMMENT_LENGTH+1]; +int loadable[MAX_SAVEGAMES]; + +void M_ScanSaves (void) +{ + int i, j; + char name[MAX_OSPATH]; + FILE *f; + int version; + + for (i=0 ; iwidth)/2, 4, p); + + for (i=0 ; i< MAX_SAVEGAMES; i++) + M_Print (16, 32 + 8*i, m_filenames[i]); + +// line cursor + M_DrawCharacter (8, 32 + load_cursor*8, 12+((int)(realtime*4)&1)); +} + + +void M_Save_Draw (void) +{ + int i; + qpic_t *p; + + p = Draw_CachePic ("gfx/p_save.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + + for (i=0 ; i= MAX_SAVEGAMES) + load_cursor = 0; + break; + } +} + + +void M_Save_Key (int k) +{ + switch (k) + { + case K_ESCAPE: + M_Menu_SinglePlayer_f (); + break; + + case K_ENTER: + m_state = m_none; + IN_Activate(); + key_dest = key_game; + Cbuf_AddText (va("save s%i\n", load_cursor)); + return; + + case K_UPARROW: + case K_LEFTARROW: + S_LocalSound ("misc/menu1.wav"); + load_cursor--; + if (load_cursor < 0) + load_cursor = MAX_SAVEGAMES-1; + break; + + case K_DOWNARROW: + case K_RIGHTARROW: + S_LocalSound ("misc/menu1.wav"); + load_cursor++; + if (load_cursor >= MAX_SAVEGAMES) + load_cursor = 0; + break; + } +} + +//============================================================================= +/* MULTIPLAYER MENU */ + +int m_multiplayer_cursor; +#define MULTIPLAYER_ITEMS 3 + + +void M_Menu_MultiPlayer_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_multiplayer; + m_entersound = true; +} + + +void M_MultiPlayer_Draw (void) +{ + int f; + qpic_t *p; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/p_multi.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + M_DrawTransPic (72, 32, Draw_CachePic ("gfx/mp_menu.lmp") ); + + f = (int)(realtime * 10)%6; //johnfitz -- was host_time + + M_DrawTransPic (54, 32 + m_multiplayer_cursor * 20,Draw_CachePic( va("gfx/menudot%i.lmp", f+1 ) ) ); + + if (serialAvailable || ipxAvailable || tcpipAvailable) + return; + M_PrintWhite ((320/2) - ((27*8)/2), 148, "No Communications Available"); +} + + +void M_MultiPlayer_Key (int key) +{ + switch (key) + { + case K_ESCAPE: + M_Menu_Main_f (); + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + if (++m_multiplayer_cursor >= MULTIPLAYER_ITEMS) + m_multiplayer_cursor = 0; + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + if (--m_multiplayer_cursor < 0) + m_multiplayer_cursor = MULTIPLAYER_ITEMS - 1; + break; + + case K_ENTER: + m_entersound = true; + switch (m_multiplayer_cursor) + { + case 0: + if (serialAvailable || ipxAvailable || tcpipAvailable) + M_Menu_Net_f (); + break; + + case 1: + if (serialAvailable || ipxAvailable || tcpipAvailable) + M_Menu_Net_f (); + break; + + case 2: + M_Menu_Setup_f (); + break; + } + } +} + +//============================================================================= +/* SETUP MENU */ + +int setup_cursor = 4; +int setup_cursor_table[] = {40, 56, 80, 104, 140}; + +char setup_hostname[16]; +char setup_myname[16]; +int setup_oldtop; +int setup_oldbottom; +int setup_top; +int setup_bottom; + +#define NUM_SETUP_CMDS 5 + +void M_Menu_Setup_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_setup; + m_entersound = true; + Q_strcpy(setup_myname, cl_name.string); + Q_strcpy(setup_hostname, hostname.string); + setup_top = setup_oldtop = ((int)cl_color.value) >> 4; + setup_bottom = setup_oldbottom = ((int)cl_color.value) & 15; +} + + +void M_Setup_Draw (void) +{ + qpic_t *p; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/p_multi.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + + M_Print (64, 40, "Hostname"); + M_DrawTextBox (160, 32, 16, 1); + M_Print (168, 40, setup_hostname); + + M_Print (64, 56, "Your name"); + M_DrawTextBox (160, 48, 16, 1); + M_Print (168, 56, setup_myname); + + M_Print (64, 80, "Shirt color"); + M_Print (64, 104, "Pants color"); + + M_DrawTextBox (64, 140-8, 14, 1); + M_Print (72, 140, "Accept Changes"); + + p = Draw_CachePic ("gfx/bigbox.lmp"); + M_DrawTransPic (160, 64, p); + p = Draw_CachePic ("gfx/menuplyr.lmp"); + M_DrawTransPicTranslate (172, 72, p, setup_top, setup_bottom); + + M_DrawCharacter (56, setup_cursor_table [setup_cursor], 12+((int)(realtime*4)&1)); + + if (setup_cursor == 0) + M_DrawCharacter (168 + 8*strlen(setup_hostname), setup_cursor_table [setup_cursor], 10+((int)(realtime*4)&1)); + + if (setup_cursor == 1) + M_DrawCharacter (168 + 8*strlen(setup_myname), setup_cursor_table [setup_cursor], 10+((int)(realtime*4)&1)); +} + + +void M_Setup_Key (int k) +{ + int l; + + switch (k) + { + case K_ESCAPE: + M_Menu_MultiPlayer_f (); + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + setup_cursor--; + if (setup_cursor < 0) + setup_cursor = NUM_SETUP_CMDS-1; + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + setup_cursor++; + if (setup_cursor >= NUM_SETUP_CMDS) + setup_cursor = 0; + break; + + case K_LEFTARROW: + if (setup_cursor < 2) + return; + S_LocalSound ("misc/menu3.wav"); + if (setup_cursor == 2) + setup_top = setup_top - 1; + if (setup_cursor == 3) + setup_bottom = setup_bottom - 1; + break; + case K_RIGHTARROW: + if (setup_cursor < 2) + return; +forward: + S_LocalSound ("misc/menu3.wav"); + if (setup_cursor == 2) + setup_top = setup_top + 1; + if (setup_cursor == 3) + setup_bottom = setup_bottom + 1; + break; + + case K_ENTER: + if (setup_cursor == 0 || setup_cursor == 1) + return; + + if (setup_cursor == 2 || setup_cursor == 3) + goto forward; + + // setup_cursor == 4 (OK) + if (Q_strcmp(cl_name.string, setup_myname) != 0) + Cbuf_AddText ( va ("name \"%s\"\n", setup_myname) ); + if (Q_strcmp(hostname.string, setup_hostname) != 0) + Cvar_Set("hostname", setup_hostname); + if (setup_top != setup_oldtop || setup_bottom != setup_oldbottom) + Cbuf_AddText( va ("color %i %i\n", setup_top, setup_bottom) ); + m_entersound = true; + M_Menu_MultiPlayer_f (); + break; + + case K_BACKSPACE: + if (setup_cursor == 0) + { + if (strlen(setup_hostname)) + setup_hostname[strlen(setup_hostname)-1] = 0; + } + + if (setup_cursor == 1) + { + if (strlen(setup_myname)) + setup_myname[strlen(setup_myname)-1] = 0; + } + break; + + default: + if (k < 32 || k > 127) + break; + if (setup_cursor == 0) + { + l = strlen(setup_hostname); + if (l < 15) + { + setup_hostname[l+1] = 0; + setup_hostname[l] = k; + } + } + if (setup_cursor == 1) + { + l = strlen(setup_myname); + if (l < 15) + { + setup_myname[l+1] = 0; + setup_myname[l] = k; + } + } + } + + if (setup_top > 13) + setup_top = 0; + if (setup_top < 0) + setup_top = 13; + if (setup_bottom > 13) + setup_bottom = 0; + if (setup_bottom < 0) + setup_bottom = 13; +} + +//============================================================================= +/* NET MENU */ + +int m_net_cursor; +int m_net_items; +int m_net_saveHeight; + +char *net_helpMessage [] = +{ +/* .........1.........2.... */ + " ", + " Two computers connected", + " through two modems. ", + " ", + + " ", + " Two computers connected", + " by a null-modem cable. ", + " ", + + " Novell network LANs ", + " or Windows 95 DOS-box. ", + " ", + "(LAN=Local Area Network)", + + " Commonly used to play ", + " over the Internet, but ", + " also used on a Local ", + " Area Network. " +}; + +void M_Menu_Net_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_net; + m_entersound = true; + m_net_items = 4; + + if (m_net_cursor >= m_net_items) + m_net_cursor = 0; + m_net_cursor--; + M_Net_Key (K_DOWNARROW); +} + + +void M_Net_Draw (void) +{ + int f; + qpic_t *p; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/p_multi.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + + f = 32; + + if (serialAvailable) + { + p = Draw_CachePic ("gfx/netmen1.lmp"); + } + else + { +#ifdef _WIN32 + p = NULL; +#else + p = Draw_CachePic ("gfx/dim_modm.lmp"); +#endif + } + + if (p) + M_DrawTransPic (72, f, p); + + f += 19; + + if (serialAvailable) + { + p = Draw_CachePic ("gfx/netmen2.lmp"); + } + else + { +#ifdef _WIN32 + p = NULL; +#else + p = Draw_CachePic ("gfx/dim_drct.lmp"); +#endif + } + + if (p) + M_DrawTransPic (72, f, p); + + f += 19; + if (ipxAvailable) + p = Draw_CachePic ("gfx/netmen3.lmp"); + else + p = Draw_CachePic ("gfx/dim_ipx.lmp"); + M_DrawTransPic (72, f, p); + + f += 19; + if (tcpipAvailable) + p = Draw_CachePic ("gfx/netmen4.lmp"); + else + p = Draw_CachePic ("gfx/dim_tcp.lmp"); + M_DrawTransPic (72, f, p); + + if (m_net_items == 5) // JDC, could just be removed + { + f += 19; + p = Draw_CachePic ("gfx/netmen5.lmp"); + M_DrawTransPic (72, f, p); + } + + f = (320-26*8)/2; + M_DrawTextBox (f, 134, 24, 4); + f += 8; + M_Print (f, 142, net_helpMessage[m_net_cursor*4+0]); + M_Print (f, 150, net_helpMessage[m_net_cursor*4+1]); + M_Print (f, 158, net_helpMessage[m_net_cursor*4+2]); + M_Print (f, 166, net_helpMessage[m_net_cursor*4+3]); + + f = (int)(realtime * 10)%6; //johnfitz -- was host_time + M_DrawTransPic (54, 32 + m_net_cursor * 20,Draw_CachePic( va("gfx/menudot%i.lmp", f+1 ) ) ); +} + + +void M_Net_Key (int k) +{ +again: + switch (k) + { + case K_ESCAPE: + M_Menu_MultiPlayer_f (); + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + if (++m_net_cursor >= m_net_items) + m_net_cursor = 0; + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + if (--m_net_cursor < 0) + m_net_cursor = m_net_items - 1; + break; + + case K_ENTER: + m_entersound = true; + + switch (m_net_cursor) + { + case 0: + M_Menu_SerialConfig_f (); + break; + + case 1: + M_Menu_SerialConfig_f (); + break; + + case 2: + M_Menu_LanConfig_f (); + break; + + case 3: + M_Menu_LanConfig_f (); + break; + + case 4: +// multiprotocol + break; + } + } + + if (m_net_cursor == 0 && !serialAvailable) + goto again; + if (m_net_cursor == 1 && !serialAvailable) + goto again; + if (m_net_cursor == 2 && !ipxAvailable) + goto again; + if (m_net_cursor == 3 && !tcpipAvailable) + goto again; +} + +//============================================================================= +/* OPTIONS MENU */ + +#ifdef _WIN32 +#define OPTIONS_ITEMS 14 +#else +#define OPTIONS_ITEMS 13 +#endif + +#define SLIDER_RANGE 10 + +int options_cursor; + +void M_Menu_Options_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_options; + m_entersound = true; +} + + +void M_AdjustSliders (int dir) +{ + S_LocalSound ("misc/menu3.wav"); + + switch (options_cursor) + { + case 3: // screen size + scr_viewsize.value += dir * 10; + if (scr_viewsize.value < 30) + scr_viewsize.value = 30; + if (scr_viewsize.value > 120) + scr_viewsize.value = 120; + Cvar_SetValue ("viewsize", scr_viewsize.value); + break; + case 4: // gamma + vid_gamma.value -= dir * 0.05; + if (vid_gamma.value < 0.5) + vid_gamma.value = 0.5; + if (vid_gamma.value > 1) + vid_gamma.value = 1; + Cvar_SetValue ("gamma", vid_gamma.value); + break; + case 5: // mouse speed + sensitivity.value += dir * 0.5; + if (sensitivity.value < 1) + sensitivity.value = 1; + if (sensitivity.value > 11) + sensitivity.value = 11; + Cvar_SetValue ("sensitivity", sensitivity.value); + break; + case 6: // music volume +#ifdef _WIN32 + bgmvolume.value += dir * 1.0; +#else + bgmvolume.value += dir * 0.1; +#endif + if (bgmvolume.value < 0) + bgmvolume.value = 0; + if (bgmvolume.value > 1) + bgmvolume.value = 1; + Cvar_SetValue ("bgmvolume", bgmvolume.value); + break; + case 7: // sfx volume + volume.value += dir * 0.1; + if (volume.value < 0) + volume.value = 0; + if (volume.value > 1) + volume.value = 1; + Cvar_SetValue ("volume", volume.value); + break; + + case 8: // allways run + if (cl_forwardspeed.value > 200) + { + Cvar_SetValue ("cl_forwardspeed", 200); + Cvar_SetValue ("cl_backspeed", 200); + } + else + { + Cvar_SetValue ("cl_forwardspeed", 400); + Cvar_SetValue ("cl_backspeed", 400); + } + break; + + case 9: // invert mouse + Cvar_SetValue ("m_pitch", -m_pitch.value); + break; + + case 10: // lookspring + Cvar_SetValue ("lookspring", !lookspring.value); + break; + + case 11: // lookstrafe + Cvar_SetValue ("lookstrafe", !lookstrafe.value); + break; + } +} + + +void M_DrawSlider (int x, int y, float range) +{ + int i; + + if (range < 0) + range = 0; + if (range > 1) + range = 1; + M_DrawCharacter (x-8, y, 128); + for (i=0 ; iwidth)/2, 4, p); + + M_Print (16, 32, " Customize controls"); + M_Print (16, 40, " Go to console"); + M_Print (16, 48, " Reset to defaults"); + + M_Print (16, 56, " Screen size"); + r = (scr_viewsize.value - 30) / (120 - 30); + M_DrawSlider (220, 56, r); + + M_Print (16, 64, " Brightness"); + r = (1.0 - vid_gamma.value) / 0.5; + M_DrawSlider (220, 64, r); + + M_Print (16, 72, " Mouse Speed"); + r = (sensitivity.value - 1)/10; + M_DrawSlider (220, 72, r); + + M_Print (16, 80, " CD Music Volume"); + r = bgmvolume.value; + M_DrawSlider (220, 80, r); + + M_Print (16, 88, " Sound Volume"); + r = volume.value; + M_DrawSlider (220, 88, r); + + M_Print (16, 96, " Always Run"); + M_DrawCheckbox (220, 96, cl_forwardspeed.value > 200); + + M_Print (16, 104, " Invert Mouse"); + M_DrawCheckbox (220, 104, m_pitch.value < 0); + + M_Print (16, 112, " Lookspring"); + M_DrawCheckbox (220, 112, lookspring.value); + + M_Print (16, 120, " Lookstrafe"); + M_DrawCheckbox (220, 120, lookstrafe.value); + + if (vid_menudrawfn) + M_Print (16, 128, " Video Options"); + +// cursor + M_DrawCharacter (200, 32 + options_cursor*8, 12+((int)(realtime*4)&1)); +} + + +void M_Options_Key (int k) +{ + switch (k) + { + case K_ESCAPE: + M_Menu_Main_f (); + break; + + case K_ENTER: + m_entersound = true; + switch (options_cursor) + { + case 0: + M_Menu_Keys_f (); + break; + case 1: + m_state = m_none; + Con_ToggleConsole_f (); + break; + case 2: + Cbuf_AddText ("resetall\n"); //johnfitz + Cbuf_AddText ("exec default.cfg\n"); + break; + case 12: + M_Menu_Video_f (); + break; + default: + M_AdjustSliders (1); + break; + } + return; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + options_cursor--; + if (options_cursor < 0) + options_cursor = OPTIONS_ITEMS-1; + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + options_cursor++; + if (options_cursor >= OPTIONS_ITEMS) + options_cursor = 0; + break; + + case K_LEFTARROW: + M_AdjustSliders (-1); + break; + + case K_RIGHTARROW: + M_AdjustSliders (1); + break; + } + + if (options_cursor == 12 && vid_menudrawfn == NULL) + { + if (k == K_UPARROW) + options_cursor = 11; + else + options_cursor = 0; + } + +} + +//============================================================================= +/* KEYS MENU */ + +char *bindnames[][2] = +{ +{"+attack", "attack"}, +{"impulse 10", "change weapon"}, +{"+jump", "jump / swim up"}, +{"+forward", "walk forward"}, +{"+back", "backpedal"}, +{"+left", "turn left"}, +{"+right", "turn right"}, +{"+speed", "run"}, +{"+moveleft", "step left"}, +{"+moveright", "step right"}, +{"+strafe", "sidestep"}, +{"+lookup", "look up"}, +{"+lookdown", "look down"}, +{"centerview", "center view"}, +{"+mlook", "mouse look"}, +{"+klook", "keyboard look"}, +{"+moveup", "swim up"}, +{"+movedown", "swim down"} +}; + +#define NUMCOMMANDS (sizeof(bindnames)/sizeof(bindnames[0])) + +int keys_cursor; +int bind_grab; + +void M_Menu_Keys_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_keys; + m_entersound = true; +} + + +void M_FindKeysForCommand (char *command, int *twokeys) +{ + int count; + int j; + int l; + char *b; + + twokeys[0] = twokeys[1] = -1; + l = strlen(command); + count = 0; + + for (j=0 ; j<256 ; j++) + { + b = keybindings[j]; + if (!b) + continue; + if (!strncmp (b, command, l) ) + { + twokeys[count] = j; + count++; + if (count == 2) + break; + } + } +} + +void M_UnbindCommand (char *command) +{ + int j; + int l; + char *b; + + l = strlen(command); + + for (j=0 ; j<256 ; j++) + { + b = keybindings[j]; + if (!b) + continue; + if (!strncmp (b, command, l) ) + Key_SetBinding (j, ""); + } +} + + +void M_Keys_Draw (void) +{ + int i, l; + int keys[2]; + char *name; + int x, y; + qpic_t *p; + + p = Draw_CachePic ("gfx/ttl_cstm.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + + if (bind_grab) + M_Print (12, 32, "Press a key or button for this action"); + else + M_Print (18, 32, "Enter to change, backspace to clear"); + +// search for known bindings + for (i=0 ; i= NUMCOMMANDS) + keys_cursor = 0; + break; + + case K_ENTER: // go into bind mode + M_FindKeysForCommand (bindnames[keys_cursor][0], keys); + S_LocalSound ("misc/menu2.wav"); + if (keys[1] != -1) + M_UnbindCommand (bindnames[keys_cursor][0]); + bind_grab = true; + IN_Activate(); // activate to allow mouse key binding + break; + + case K_BACKSPACE: // delete bindings + case K_DEL: // delete bindings + S_LocalSound ("misc/menu2.wav"); + M_UnbindCommand (bindnames[keys_cursor][0]); + break; + } +} + +//============================================================================= +/* VIDEO MENU */ + +void M_Menu_Video_f (void) +{ + (*vid_menucmdfn) (); //johnfitz +} + + +void M_Video_Draw (void) +{ + (*vid_menudrawfn) (); +} + + +void M_Video_Key (int key) +{ + (*vid_menukeyfn) (key); +} + +//============================================================================= +/* HELP MENU */ + +int help_page; +#define NUM_HELP_PAGES 6 + + +void M_Menu_Help_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_help; + m_entersound = true; + help_page = 0; +} + + + +void M_Help_Draw (void) +{ + M_DrawPic (0, 0, Draw_CachePic ( va("gfx/help%i.lmp", help_page)) ); +} + + +void M_Help_Key (int key) +{ + switch (key) + { + case K_ESCAPE: + M_Menu_Main_f (); + break; + + case K_UPARROW: + case K_RIGHTARROW: + m_entersound = true; + if (++help_page >= NUM_HELP_PAGES) + help_page = 0; + break; + + case K_DOWNARROW: + case K_LEFTARROW: + m_entersound = true; + if (--help_page < 0) + help_page = NUM_HELP_PAGES-1; + break; + } + +} + +//============================================================================= +/* QUIT MENU */ + +int msgNumber; +int m_quit_prevstate; +qboolean wasInMenus; + +void M_Menu_Quit_f (void) +{ + if (m_state == m_quit) + return; + wasInMenus = (key_dest == key_menu); + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_quit_prevstate = m_state; + m_state = m_quit; + m_entersound = true; + msgNumber = rand()&7; +} + + +void M_Quit_Key (int key) +{ + switch (key) + { + case K_ESCAPE: + case 'n': + case 'N': + if (wasInMenus) + { + m_state = m_quit_prevstate; + m_entersound = true; + } + else + { + IN_Activate(); + key_dest = key_game; + m_state = m_none; + } + break; + + case 'Y': + case 'y': + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_console; + Host_Quit_f (); + break; + + default: + break; + } + +} + +void M_Quit_Draw (void) //johnfitz -- modified for new quit message +{ + char msg1[40]; + char msg2[40]; + char msg3[40]; + int boxlen, y; + + if (wasInMenus) + { + m_state = m_quit_prevstate; + m_recursiveDraw = true; + M_Draw (); + m_state = m_quit; + } + + sprintf(msg1, "FitzQuake version %1.2f", (float)FITZQUAKE_VERSION); + sprintf(msg2, "by John Fitzgibbons"); + sprintf(msg3, "Press y to quit"); + + //okay, this is kind of fucked up. M_DrawTextBox will always act as if + //width is even. Also, the width and lines values are for the interior of the box, + //but the x and y values include the border. + boxlen = max(strlen(msg1),max(strlen(msg2),strlen(msg3))) + 1; + if (boxlen & 1) boxlen++; + M_DrawTextBox (160-4*(boxlen+2), 76, boxlen, 4); + + //now do the text + M_Print (160-4*strlen(msg1), 88, msg1); + M_Print (160-4*strlen(msg2), 96, msg2); + M_PrintWhite (160-4*strlen(msg3), 104, msg3); +} + +//============================================================================= + +/* SERIAL CONFIG MENU */ + +int serialConfig_cursor; +int serialConfig_cursor_table[] = {48, 64, 80, 96, 112, 132}; +#define NUM_SERIALCONFIG_CMDS 6 + +static int ISA_uarts[] = {0x3f8,0x2f8,0x3e8,0x2e8}; +static int ISA_IRQs[] = {4,3,4,3}; +int serialConfig_baudrate[] = {9600,14400,19200,28800,38400,57600}; + +int serialConfig_comport; +int serialConfig_irq ; +int serialConfig_baud; +char serialConfig_phone[16]; + +void M_Menu_SerialConfig_f (void) +{ + int n; + int port; + int baudrate; + qboolean useModem; + + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_serialconfig; + m_entersound = true; + if (JoiningGame && SerialConfig) + serialConfig_cursor = 4; + else + serialConfig_cursor = 5; + + (*GetComPortConfig) (0, &port, &serialConfig_irq, &baudrate, &useModem); + + // map uart's port to COMx + for (n = 0; n < 4; n++) + if (ISA_uarts[n] == port) + break; + if (n == 4) + { + n = 0; + serialConfig_irq = 4; + } + serialConfig_comport = n + 1; + + // map baudrate to index + for (n = 0; n < 6; n++) + if (serialConfig_baudrate[n] == baudrate) + break; + if (n == 6) + n = 5; + serialConfig_baud = n; + + m_return_onerror = false; + m_return_reason[0] = 0; +} + + +void M_SerialConfig_Draw (void) +{ + qpic_t *p; + int basex; + char *startJoin; + char *directModem; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/p_multi.lmp"); + basex = (320-p->width)/2; + M_DrawPic (basex, 4, p); + + if (StartingGame) + startJoin = "New Game"; + else + startJoin = "Join Game"; + if (SerialConfig) + directModem = "Modem"; + else + directModem = "Direct Connect"; + M_Print (basex, 32, va ("%s - %s", startJoin, directModem)); + basex += 8; + + M_Print (basex, serialConfig_cursor_table[0], "Port"); + M_DrawTextBox (160, 40, 4, 1); + M_Print (168, serialConfig_cursor_table[0], va("COM%u", serialConfig_comport)); + + M_Print (basex, serialConfig_cursor_table[1], "IRQ"); + M_DrawTextBox (160, serialConfig_cursor_table[1]-8, 1, 1); + M_Print (168, serialConfig_cursor_table[1], va("%u", serialConfig_irq)); + + M_Print (basex, serialConfig_cursor_table[2], "Baud"); + M_DrawTextBox (160, serialConfig_cursor_table[2]-8, 5, 1); + M_Print (168, serialConfig_cursor_table[2], va("%u", serialConfig_baudrate[serialConfig_baud])); + + if (SerialConfig) + { + M_Print (basex, serialConfig_cursor_table[3], "Modem Setup..."); + if (JoiningGame) + { + M_Print (basex, serialConfig_cursor_table[4], "Phone number"); + M_DrawTextBox (160, serialConfig_cursor_table[4]-8, 16, 1); + M_Print (168, serialConfig_cursor_table[4], serialConfig_phone); + } + } + + if (JoiningGame) + { + M_DrawTextBox (basex, serialConfig_cursor_table[5]-8, 7, 1); + M_Print (basex+8, serialConfig_cursor_table[5], "Connect"); + } + else + { + M_DrawTextBox (basex, serialConfig_cursor_table[5]-8, 2, 1); + M_Print (basex+8, serialConfig_cursor_table[5], "OK"); + } + + M_DrawCharacter (basex-8, serialConfig_cursor_table [serialConfig_cursor], 12+((int)(realtime*4)&1)); + + if (serialConfig_cursor == 4) + M_DrawCharacter (168 + 8*strlen(serialConfig_phone), serialConfig_cursor_table [serialConfig_cursor], 10+((int)(realtime*4)&1)); + + if (*m_return_reason) + M_PrintWhite (basex, 148, m_return_reason); +} + + +void M_SerialConfig_Key (int key) +{ + int l; + + switch (key) + { + case K_ESCAPE: + M_Menu_Net_f (); + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + serialConfig_cursor--; + if (serialConfig_cursor < 0) + serialConfig_cursor = NUM_SERIALCONFIG_CMDS-1; + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + serialConfig_cursor++; + if (serialConfig_cursor >= NUM_SERIALCONFIG_CMDS) + serialConfig_cursor = 0; + break; + + case K_LEFTARROW: + if (serialConfig_cursor > 2) + break; + S_LocalSound ("misc/menu3.wav"); + + if (serialConfig_cursor == 0) + { + serialConfig_comport--; + if (serialConfig_comport == 0) + serialConfig_comport = 4; + serialConfig_irq = ISA_IRQs[serialConfig_comport-1]; + } + + if (serialConfig_cursor == 1) + { + serialConfig_irq--; + if (serialConfig_irq == 6) + serialConfig_irq = 5; + if (serialConfig_irq == 1) + serialConfig_irq = 7; + } + + if (serialConfig_cursor == 2) + { + serialConfig_baud--; + if (serialConfig_baud < 0) + serialConfig_baud = 5; + } + + break; + + case K_RIGHTARROW: + if (serialConfig_cursor > 2) + break; +forward: + S_LocalSound ("misc/menu3.wav"); + + if (serialConfig_cursor == 0) + { + serialConfig_comport++; + if (serialConfig_comport > 4) + serialConfig_comport = 1; + serialConfig_irq = ISA_IRQs[serialConfig_comport-1]; + } + + if (serialConfig_cursor == 1) + { + serialConfig_irq++; + if (serialConfig_irq == 6) + serialConfig_irq = 7; + if (serialConfig_irq == 8) + serialConfig_irq = 2; + } + + if (serialConfig_cursor == 2) + { + serialConfig_baud++; + if (serialConfig_baud > 5) + serialConfig_baud = 0; + } + + break; + + case K_ENTER: + if (serialConfig_cursor < 3) + goto forward; + + m_entersound = true; + + if (serialConfig_cursor == 3) + { + (*SetComPortConfig) (0, ISA_uarts[serialConfig_comport-1], serialConfig_irq, serialConfig_baudrate[serialConfig_baud], SerialConfig); + + M_Menu_ModemConfig_f (); + break; + } + + if (serialConfig_cursor == 4) + { + serialConfig_cursor = 5; + break; + } + + // serialConfig_cursor == 5 (OK/CONNECT) + (*SetComPortConfig) (0, ISA_uarts[serialConfig_comport-1], serialConfig_irq, serialConfig_baudrate[serialConfig_baud], SerialConfig); + + M_ConfigureNetSubsystem (); + + if (StartingGame) + { + M_Menu_GameOptions_f (); + break; + } + + m_return_state = m_state; + m_return_onerror = true; + IN_Activate(); + key_dest = key_game; + m_state = m_none; + + if (SerialConfig) + Cbuf_AddText (va ("connect \"%s\"\n", serialConfig_phone)); + else + Cbuf_AddText ("connect\n"); + break; + + case K_BACKSPACE: + if (serialConfig_cursor == 4) + { + if (strlen(serialConfig_phone)) + serialConfig_phone[strlen(serialConfig_phone)-1] = 0; + } + break; + + default: + if (key < 32 || key > 127) + break; + if (serialConfig_cursor == 4) + { + l = strlen(serialConfig_phone); + if (l < 15) + { + serialConfig_phone[l+1] = 0; + serialConfig_phone[l] = key; + } + } + } + + if (DirectConfig && (serialConfig_cursor == 3 || serialConfig_cursor == 4)) + if (key == K_UPARROW) + serialConfig_cursor = 2; + else + serialConfig_cursor = 5; + + if (SerialConfig && StartingGame && serialConfig_cursor == 4) + if (key == K_UPARROW) + serialConfig_cursor = 3; + else + serialConfig_cursor = 5; +} + +//============================================================================= +/* MODEM CONFIG MENU */ + +int modemConfig_cursor; +int modemConfig_cursor_table [] = {40, 56, 88, 120, 156}; +#define NUM_MODEMCONFIG_CMDS 5 + +char modemConfig_dialing; +char modemConfig_clear [16]; +char modemConfig_init [32]; +char modemConfig_hangup [16]; + +void M_Menu_ModemConfig_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_modemconfig; + m_entersound = true; + (*GetModemConfig) (0, &modemConfig_dialing, modemConfig_clear, modemConfig_init, modemConfig_hangup); +} + + +void M_ModemConfig_Draw (void) +{ + qpic_t *p; + int basex; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/p_multi.lmp"); + basex = (320-p->width)/2; + M_DrawPic (basex, 4, p); + basex += 8; + + if (modemConfig_dialing == 'P') + M_Print (basex, modemConfig_cursor_table[0], "Pulse Dialing"); + else + M_Print (basex, modemConfig_cursor_table[0], "Touch Tone Dialing"); + + M_Print (basex, modemConfig_cursor_table[1], "Clear"); + M_DrawTextBox (basex, modemConfig_cursor_table[1]+4, 16, 1); + M_Print (basex+8, modemConfig_cursor_table[1]+12, modemConfig_clear); + if (modemConfig_cursor == 1) + M_DrawCharacter (basex+8 + 8*strlen(modemConfig_clear), modemConfig_cursor_table[1]+12, 10+((int)(realtime*4)&1)); + + M_Print (basex, modemConfig_cursor_table[2], "Init"); + M_DrawTextBox (basex, modemConfig_cursor_table[2]+4, 30, 1); + M_Print (basex+8, modemConfig_cursor_table[2]+12, modemConfig_init); + if (modemConfig_cursor == 2) + M_DrawCharacter (basex+8 + 8*strlen(modemConfig_init), modemConfig_cursor_table[2]+12, 10+((int)(realtime*4)&1)); + + M_Print (basex, modemConfig_cursor_table[3], "Hangup"); + M_DrawTextBox (basex, modemConfig_cursor_table[3]+4, 16, 1); + M_Print (basex+8, modemConfig_cursor_table[3]+12, modemConfig_hangup); + if (modemConfig_cursor == 3) + M_DrawCharacter (basex+8 + 8*strlen(modemConfig_hangup), modemConfig_cursor_table[3]+12, 10+((int)(realtime*4)&1)); + + M_DrawTextBox (basex, modemConfig_cursor_table[4]-8, 2, 1); + M_Print (basex+8, modemConfig_cursor_table[4], "OK"); + + M_DrawCharacter (basex-8, modemConfig_cursor_table [modemConfig_cursor], 12+((int)(realtime*4)&1)); +} + + +void M_ModemConfig_Key (int key) +{ + int l; + + switch (key) + { + case K_ESCAPE: + M_Menu_SerialConfig_f (); + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + modemConfig_cursor--; + if (modemConfig_cursor < 0) + modemConfig_cursor = NUM_MODEMCONFIG_CMDS-1; + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + modemConfig_cursor++; + if (modemConfig_cursor >= NUM_MODEMCONFIG_CMDS) + modemConfig_cursor = 0; + break; + + case K_LEFTARROW: + case K_RIGHTARROW: + if (modemConfig_cursor == 0) + { + if (modemConfig_dialing == 'P') + modemConfig_dialing = 'T'; + else + modemConfig_dialing = 'P'; + S_LocalSound ("misc/menu1.wav"); + } + break; + + case K_ENTER: + if (modemConfig_cursor == 0) + { + if (modemConfig_dialing == 'P') + modemConfig_dialing = 'T'; + else + modemConfig_dialing = 'P'; + m_entersound = true; + } + + if (modemConfig_cursor == 4) + { + (*SetModemConfig) (0, va ("%c", modemConfig_dialing), modemConfig_clear, modemConfig_init, modemConfig_hangup); + m_entersound = true; + M_Menu_SerialConfig_f (); + } + break; + + case K_BACKSPACE: + if (modemConfig_cursor == 1) + { + if (strlen(modemConfig_clear)) + modemConfig_clear[strlen(modemConfig_clear)-1] = 0; + } + + if (modemConfig_cursor == 2) + { + if (strlen(modemConfig_init)) + modemConfig_init[strlen(modemConfig_init)-1] = 0; + } + + if (modemConfig_cursor == 3) + { + if (strlen(modemConfig_hangup)) + modemConfig_hangup[strlen(modemConfig_hangup)-1] = 0; + } + break; + + default: + if (key < 32 || key > 127) + break; + + if (modemConfig_cursor == 1) + { + l = strlen(modemConfig_clear); + if (l < 15) + { + modemConfig_clear[l+1] = 0; + modemConfig_clear[l] = key; + } + } + + if (modemConfig_cursor == 2) + { + l = strlen(modemConfig_init); + if (l < 29) + { + modemConfig_init[l+1] = 0; + modemConfig_init[l] = key; + } + } + + if (modemConfig_cursor == 3) + { + l = strlen(modemConfig_hangup); + if (l < 15) + { + modemConfig_hangup[l+1] = 0; + modemConfig_hangup[l] = key; + } + } + } +} + +//============================================================================= +/* LAN CONFIG MENU */ + +int lanConfig_cursor = -1; +int lanConfig_cursor_table [] = {72, 92, 124}; +#define NUM_LANCONFIG_CMDS 3 + +int lanConfig_port; +char lanConfig_portname[6]; +char lanConfig_joinname[22]; + +void M_Menu_LanConfig_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_lanconfig; + m_entersound = true; + if (lanConfig_cursor == -1) + { + if (JoiningGame && TCPIPConfig) + lanConfig_cursor = 2; + else + lanConfig_cursor = 1; + } + if (StartingGame && lanConfig_cursor == 2) + lanConfig_cursor = 1; + lanConfig_port = DEFAULTnet_hostport; + sprintf(lanConfig_portname, "%u", lanConfig_port); + + m_return_onerror = false; + m_return_reason[0] = 0; +} + + +void M_LanConfig_Draw (void) +{ + qpic_t *p; + int basex; + char *startJoin; + char *protocol; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/p_multi.lmp"); + basex = (320-p->width)/2; + M_DrawPic (basex, 4, p); + + if (StartingGame) + startJoin = "New Game"; + else + startJoin = "Join Game"; + if (IPXConfig) + protocol = "IPX"; + else + protocol = "TCP/IP"; + M_Print (basex, 32, va ("%s - %s", startJoin, protocol)); + basex += 8; + + M_Print (basex, 52, "Address:"); + if (IPXConfig) + M_Print (basex+9*8, 52, my_ipx_address); + else + M_Print (basex+9*8, 52, my_tcpip_address); + + M_Print (basex, lanConfig_cursor_table[0], "Port"); + M_DrawTextBox (basex+8*8, lanConfig_cursor_table[0]-8, 6, 1); + M_Print (basex+9*8, lanConfig_cursor_table[0], lanConfig_portname); + + if (JoiningGame) + { + M_Print (basex, lanConfig_cursor_table[1], "Search for local games..."); + M_Print (basex, 108, "Join game at:"); + M_DrawTextBox (basex+8, lanConfig_cursor_table[2]-8, 22, 1); + M_Print (basex+16, lanConfig_cursor_table[2], lanConfig_joinname); + } + else + { + M_DrawTextBox (basex, lanConfig_cursor_table[1]-8, 2, 1); + M_Print (basex+8, lanConfig_cursor_table[1], "OK"); + } + + M_DrawCharacter (basex-8, lanConfig_cursor_table [lanConfig_cursor], 12+((int)(realtime*4)&1)); + + if (lanConfig_cursor == 0) + M_DrawCharacter (basex+9*8 + 8*strlen(lanConfig_portname), lanConfig_cursor_table [0], 10+((int)(realtime*4)&1)); + + if (lanConfig_cursor == 2) + M_DrawCharacter (basex+16 + 8*strlen(lanConfig_joinname), lanConfig_cursor_table [2], 10+((int)(realtime*4)&1)); + + if (*m_return_reason) + M_PrintWhite (basex, 148, m_return_reason); +} + + +void M_LanConfig_Key (int key) +{ + int l; + + switch (key) + { + case K_ESCAPE: + M_Menu_Net_f (); + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + lanConfig_cursor--; + if (lanConfig_cursor < 0) + lanConfig_cursor = NUM_LANCONFIG_CMDS-1; + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + lanConfig_cursor++; + if (lanConfig_cursor >= NUM_LANCONFIG_CMDS) + lanConfig_cursor = 0; + break; + + case K_ENTER: + if (lanConfig_cursor == 0) + break; + + m_entersound = true; + + M_ConfigureNetSubsystem (); + + if (lanConfig_cursor == 1) + { + if (StartingGame) + { + M_Menu_GameOptions_f (); + break; + } + M_Menu_Search_f(); + break; + } + + if (lanConfig_cursor == 2) + { + m_return_state = m_state; + m_return_onerror = true; + IN_Activate(); + key_dest = key_game; + m_state = m_none; + Cbuf_AddText ( va ("connect \"%s\"\n", lanConfig_joinname) ); + break; + } + + break; + + case K_BACKSPACE: + if (lanConfig_cursor == 0) + { + if (strlen(lanConfig_portname)) + lanConfig_portname[strlen(lanConfig_portname)-1] = 0; + } + + if (lanConfig_cursor == 2) + { + if (strlen(lanConfig_joinname)) + lanConfig_joinname[strlen(lanConfig_joinname)-1] = 0; + } + break; + + default: + if (key < 32 || key > 127) + break; + + if (lanConfig_cursor == 2) + { + l = strlen(lanConfig_joinname); + if (l < 21) + { + lanConfig_joinname[l+1] = 0; + lanConfig_joinname[l] = key; + } + } + + if (key < '0' || key > '9') + break; + if (lanConfig_cursor == 0) + { + l = strlen(lanConfig_portname); + if (l < 5) + { + lanConfig_portname[l+1] = 0; + lanConfig_portname[l] = key; + } + } + } + + if (StartingGame && lanConfig_cursor == 2) + if (key == K_UPARROW) + lanConfig_cursor = 1; + else + lanConfig_cursor = 0; + + l = Q_atoi(lanConfig_portname); + if (l > 65535) + l = lanConfig_port; + else + lanConfig_port = l; + sprintf(lanConfig_portname, "%u", lanConfig_port); +} + +//============================================================================= +/* GAME OPTIONS MENU */ + +typedef struct +{ + char *name; + char *description; +} level_t; + +level_t levels[] = +{ + {"start", "Entrance"}, // 0 + + {"e1m1", "Slipgate Complex"}, // 1 + {"e1m2", "Castle of the Damned"}, + {"e1m3", "The Necropolis"}, + {"e1m4", "The Grisly Grotto"}, + {"e1m5", "Gloom Keep"}, + {"e1m6", "The Door To Chthon"}, + {"e1m7", "The House of Chthon"}, + {"e1m8", "Ziggurat Vertigo"}, + + {"e2m1", "The Installation"}, // 9 + {"e2m2", "Ogre Citadel"}, + {"e2m3", "Crypt of Decay"}, + {"e2m4", "The Ebon Fortress"}, + {"e2m5", "The Wizard's Manse"}, + {"e2m6", "The Dismal Oubliette"}, + {"e2m7", "Underearth"}, + + {"e3m1", "Termination Central"}, // 16 + {"e3m2", "The Vaults of Zin"}, + {"e3m3", "The Tomb of Terror"}, + {"e3m4", "Satan's Dark Delight"}, + {"e3m5", "Wind Tunnels"}, + {"e3m6", "Chambers of Torment"}, + {"e3m7", "The Haunted Halls"}, + + {"e4m1", "The Sewage System"}, // 23 + {"e4m2", "The Tower of Despair"}, + {"e4m3", "The Elder God Shrine"}, + {"e4m4", "The Palace of Hate"}, + {"e4m5", "Hell's Atrium"}, + {"e4m6", "The Pain Maze"}, + {"e4m7", "Azure Agony"}, + {"e4m8", "The Nameless City"}, + + {"end", "Shub-Niggurath's Pit"}, // 31 + + {"dm1", "Place of Two Deaths"}, // 32 + {"dm2", "Claustrophobopolis"}, + {"dm3", "The Abandoned Base"}, + {"dm4", "The Bad Place"}, + {"dm5", "The Cistern"}, + {"dm6", "The Dark Zone"} +}; + +//MED 01/06/97 added hipnotic levels +level_t hipnoticlevels[] = +{ + {"start", "Command HQ"}, // 0 + + {"hip1m1", "The Pumping Station"}, // 1 + {"hip1m2", "Storage Facility"}, + {"hip1m3", "The Lost Mine"}, + {"hip1m4", "Research Facility"}, + {"hip1m5", "Military Complex"}, + + {"hip2m1", "Ancient Realms"}, // 6 + {"hip2m2", "The Black Cathedral"}, + {"hip2m3", "The Catacombs"}, + {"hip2m4", "The Crypt"}, + {"hip2m5", "Mortum's Keep"}, + {"hip2m6", "The Gremlin's Domain"}, + + {"hip3m1", "Tur Torment"}, // 12 + {"hip3m2", "Pandemonium"}, + {"hip3m3", "Limbo"}, + {"hip3m4", "The Gauntlet"}, + + {"hipend", "Armagon's Lair"}, // 16 + + {"hipdm1", "The Edge of Oblivion"} // 17 +}; + +//PGM 01/07/97 added rogue levels +//PGM 03/02/97 added dmatch level +level_t roguelevels[] = +{ + {"start", "Split Decision"}, + {"r1m1", "Deviant's Domain"}, + {"r1m2", "Dread Portal"}, + {"r1m3", "Judgement Call"}, + {"r1m4", "Cave of Death"}, + {"r1m5", "Towers of Wrath"}, + {"r1m6", "Temple of Pain"}, + {"r1m7", "Tomb of the Overlord"}, + {"r2m1", "Tempus Fugit"}, + {"r2m2", "Elemental Fury I"}, + {"r2m3", "Elemental Fury II"}, + {"r2m4", "Curse of Osiris"}, + {"r2m5", "Wizard's Keep"}, + {"r2m6", "Blood Sacrifice"}, + {"r2m7", "Last Bastion"}, + {"r2m8", "Source of Evil"}, + {"ctf1", "Division of Change"} +}; + +typedef struct +{ + char *description; + int firstLevel; + int levels; +} episode_t; + +episode_t episodes[] = +{ + {"Welcome to Quake", 0, 1}, + {"Doomed Dimension", 1, 8}, + {"Realm of Black Magic", 9, 7}, + {"Netherworld", 16, 7}, + {"The Elder World", 23, 8}, + {"Final Level", 31, 1}, + {"Deathmatch Arena", 32, 6} +}; + +//MED 01/06/97 added hipnotic episodes +episode_t hipnoticepisodes[] = +{ + {"Scourge of Armagon", 0, 1}, + {"Fortress of the Dead", 1, 5}, + {"Dominion of Darkness", 6, 6}, + {"The Rift", 12, 4}, + {"Final Level", 16, 1}, + {"Deathmatch Arena", 17, 1} +}; + +//PGM 01/07/97 added rogue episodes +//PGM 03/02/97 added dmatch episode +episode_t rogueepisodes[] = +{ + {"Introduction", 0, 1}, + {"Hell's Fortress", 1, 7}, + {"Corridors of Time", 8, 8}, + {"Deathmatch Arena", 16, 1} +}; + +int startepisode; +int startlevel; +int maxplayers; +qboolean m_serverInfoMessage = false; +double m_serverInfoMessageTime; + +void M_Menu_GameOptions_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_gameoptions; + m_entersound = true; + if (maxplayers == 0) + maxplayers = svs.maxclients; + if (maxplayers < 2) + maxplayers = svs.maxclientslimit; +} + + +int gameoptions_cursor_table[] = {40, 56, 64, 72, 80, 88, 96, 112, 120}; +#define NUM_GAMEOPTIONS 9 +int gameoptions_cursor; + +void M_GameOptions_Draw (void) +{ + qpic_t *p; + int x; + + M_DrawTransPic (16, 4, Draw_CachePic ("gfx/qplaque.lmp") ); + p = Draw_CachePic ("gfx/p_multi.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + + M_DrawTextBox (152, 32, 10, 1); + M_Print (160, 40, "begin game"); + + M_Print (0, 56, " Max players"); + M_Print (160, 56, va("%i", maxplayers) ); + + M_Print (0, 64, " Game Type"); + if (coop.value) + M_Print (160, 64, "Cooperative"); + else + M_Print (160, 64, "Deathmatch"); + + M_Print (0, 72, " Teamplay"); + if (rogue) + { + char *msg; + + switch((int)teamplay.value) + { + case 1: msg = "No Friendly Fire"; break; + case 2: msg = "Friendly Fire"; break; + case 3: msg = "Tag"; break; + case 4: msg = "Capture the Flag"; break; + case 5: msg = "One Flag CTF"; break; + case 6: msg = "Three Team CTF"; break; + default: msg = "Off"; break; + } + M_Print (160, 72, msg); + } + else + { + char *msg; + + switch((int)teamplay.value) + { + case 1: msg = "No Friendly Fire"; break; + case 2: msg = "Friendly Fire"; break; + default: msg = "Off"; break; + } + M_Print (160, 72, msg); + } + + M_Print (0, 80, " Skill"); + if (skill.value == 0) + M_Print (160, 80, "Easy difficulty"); + else if (skill.value == 1) + M_Print (160, 80, "Normal difficulty"); + else if (skill.value == 2) + M_Print (160, 80, "Hard difficulty"); + else + M_Print (160, 80, "Nightmare difficulty"); + + M_Print (0, 88, " Frag Limit"); + if (fraglimit.value == 0) + M_Print (160, 88, "none"); + else + M_Print (160, 88, va("%i frags", (int)fraglimit.value)); + + M_Print (0, 96, " Time Limit"); + if (timelimit.value == 0) + M_Print (160, 96, "none"); + else + M_Print (160, 96, va("%i minutes", (int)timelimit.value)); + + M_Print (0, 112, " Episode"); + //MED 01/06/97 added hipnotic episodes + if (hipnotic) + M_Print (160, 112, hipnoticepisodes[startepisode].description); + //PGM 01/07/97 added rogue episodes + else if (rogue) + M_Print (160, 112, rogueepisodes[startepisode].description); + else + M_Print (160, 112, episodes[startepisode].description); + + M_Print (0, 120, " Level"); + //MED 01/06/97 added hipnotic episodes + if (hipnotic) + { + M_Print (160, 120, hipnoticlevels[hipnoticepisodes[startepisode].firstLevel + startlevel].description); + M_Print (160, 128, hipnoticlevels[hipnoticepisodes[startepisode].firstLevel + startlevel].name); + } + //PGM 01/07/97 added rogue episodes + else if (rogue) + { + M_Print (160, 120, roguelevels[rogueepisodes[startepisode].firstLevel + startlevel].description); + M_Print (160, 128, roguelevels[rogueepisodes[startepisode].firstLevel + startlevel].name); + } + else + { + M_Print (160, 120, levels[episodes[startepisode].firstLevel + startlevel].description); + M_Print (160, 128, levels[episodes[startepisode].firstLevel + startlevel].name); + } + +// line cursor + M_DrawCharacter (144, gameoptions_cursor_table[gameoptions_cursor], 12+((int)(realtime*4)&1)); + + if (m_serverInfoMessage) + { + if ((realtime - m_serverInfoMessageTime) < 5.0) + { + x = (320-26*8)/2; + M_DrawTextBox (x, 138, 24, 4); + x += 8; + M_Print (x, 146, " More than 4 players "); + M_Print (x, 154, " requires using command "); + M_Print (x, 162, "line parameters; please "); + M_Print (x, 170, " see techinfo.txt. "); + } + else + { + m_serverInfoMessage = false; + } + } +} + + +void M_NetStart_Change (int dir) +{ + int count; + + switch (gameoptions_cursor) + { + case 1: + maxplayers += dir; + if (maxplayers > svs.maxclientslimit) + { + maxplayers = svs.maxclientslimit; + m_serverInfoMessage = true; + m_serverInfoMessageTime = realtime; + } + if (maxplayers < 2) + maxplayers = 2; + break; + + case 2: + Cvar_SetValue ("coop", coop.value ? 0 : 1); + break; + + case 3: + if (rogue) + count = 6; + else + count = 2; + + Cvar_SetValue ("teamplay", teamplay.value + dir); + if (teamplay.value > count) + Cvar_SetValue ("teamplay", 0); + else if (teamplay.value < 0) + Cvar_SetValue ("teamplay", count); + break; + + case 4: + Cvar_SetValue ("skill", skill.value + dir); + if (skill.value > 3) + Cvar_SetValue ("skill", 0); + if (skill.value < 0) + Cvar_SetValue ("skill", 3); + break; + + case 5: + Cvar_SetValue ("fraglimit", fraglimit.value + dir*10); + if (fraglimit.value > 100) + Cvar_SetValue ("fraglimit", 0); + if (fraglimit.value < 0) + Cvar_SetValue ("fraglimit", 100); + break; + + case 6: + Cvar_SetValue ("timelimit", timelimit.value + dir*5); + if (timelimit.value > 60) + Cvar_SetValue ("timelimit", 0); + if (timelimit.value < 0) + Cvar_SetValue ("timelimit", 60); + break; + + case 7: + startepisode += dir; + //MED 01/06/97 added hipnotic count + if (hipnotic) + count = 6; + //PGM 01/07/97 added rogue count + //PGM 03/02/97 added 1 for dmatch episode + else if (rogue) + count = 4; + else if (registered.value) + count = 7; + else + count = 2; + + if (startepisode < 0) + startepisode = count - 1; + + if (startepisode >= count) + startepisode = 0; + + startlevel = 0; + break; + + case 8: + startlevel += dir; + //MED 01/06/97 added hipnotic episodes + if (hipnotic) + count = hipnoticepisodes[startepisode].levels; + //PGM 01/06/97 added hipnotic episodes + else if (rogue) + count = rogueepisodes[startepisode].levels; + else + count = episodes[startepisode].levels; + + if (startlevel < 0) + startlevel = count - 1; + + if (startlevel >= count) + startlevel = 0; + break; + } +} + +void M_GameOptions_Key (int key) +{ + switch (key) + { + case K_ESCAPE: + M_Menu_Net_f (); + break; + + case K_UPARROW: + S_LocalSound ("misc/menu1.wav"); + gameoptions_cursor--; + if (gameoptions_cursor < 0) + gameoptions_cursor = NUM_GAMEOPTIONS-1; + break; + + case K_DOWNARROW: + S_LocalSound ("misc/menu1.wav"); + gameoptions_cursor++; + if (gameoptions_cursor >= NUM_GAMEOPTIONS) + gameoptions_cursor = 0; + break; + + case K_LEFTARROW: + if (gameoptions_cursor == 0) + break; + S_LocalSound ("misc/menu3.wav"); + M_NetStart_Change (-1); + break; + + case K_RIGHTARROW: + if (gameoptions_cursor == 0) + break; + S_LocalSound ("misc/menu3.wav"); + M_NetStart_Change (1); + break; + + case K_ENTER: + S_LocalSound ("misc/menu2.wav"); + if (gameoptions_cursor == 0) + { + if (sv.active) + Cbuf_AddText ("disconnect\n"); + Cbuf_AddText ("listen 0\n"); // so host_netport will be re-examined + Cbuf_AddText ( va ("maxplayers %u\n", maxplayers) ); + SCR_BeginLoadingPlaque (); + + if (hipnotic) + Cbuf_AddText ( va ("map %s\n", hipnoticlevels[hipnoticepisodes[startepisode].firstLevel + startlevel].name) ); + else if (rogue) + Cbuf_AddText ( va ("map %s\n", roguelevels[rogueepisodes[startepisode].firstLevel + startlevel].name) ); + else + Cbuf_AddText ( va ("map %s\n", levels[episodes[startepisode].firstLevel + startlevel].name) ); + + return; + } + + M_NetStart_Change (1); + break; + } +} + +//============================================================================= +/* SEARCH MENU */ + +qboolean searchComplete = false; +double searchCompleteTime; + +void M_Menu_Search_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_search; + m_entersound = false; + slistSilent = true; + slistLocal = false; + searchComplete = false; + NET_Slist_f(); + +} + + +void M_Search_Draw (void) +{ + qpic_t *p; + int x; + + p = Draw_CachePic ("gfx/p_multi.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + x = (320/2) - ((12*8)/2) + 4; + M_DrawTextBox (x-8, 32, 12, 1); + M_Print (x, 40, "Searching..."); + + if(slistInProgress) + { + NET_Poll(); + return; + } + + if (! searchComplete) + { + searchComplete = true; + searchCompleteTime = realtime; + } + + if (hostCacheCount) + { + M_Menu_ServerList_f (); + return; + } + + M_PrintWhite ((320/2) - ((22*8)/2), 64, "No Quake servers found"); + if ((realtime - searchCompleteTime) < 3.0) + return; + + M_Menu_LanConfig_f (); +} + + +void M_Search_Key (int key) +{ +} + +//============================================================================= +/* SLIST MENU */ + +int slist_cursor; +qboolean slist_sorted; + +void M_Menu_ServerList_f (void) +{ + IN_Deactivate(vid.type == MODE_WINDOWED); + key_dest = key_menu; + m_state = m_slist; + m_entersound = true; + slist_cursor = 0; + m_return_onerror = false; + m_return_reason[0] = 0; + slist_sorted = false; +} + + +void M_ServerList_Draw (void) +{ + int n; + char string [64]; + qpic_t *p; + + if (!slist_sorted) + { + if (hostCacheCount > 1) + { + int i,j; + hostcache_t temp; + for (i = 0; i < hostCacheCount; i++) + for (j = i+1; j < hostCacheCount; j++) + if (strcmp(hostcache[j].name, hostcache[i].name) < 0) + { + Q_memcpy(&temp, &hostcache[j], sizeof(hostcache_t)); + Q_memcpy(&hostcache[j], &hostcache[i], sizeof(hostcache_t)); + Q_memcpy(&hostcache[i], &temp, sizeof(hostcache_t)); + } + } + slist_sorted = true; + } + + p = Draw_CachePic ("gfx/p_multi.lmp"); + M_DrawPic ( (320-p->width)/2, 4, p); + for (n = 0; n < hostCacheCount; n++) + { + if (hostcache[n].maxusers) + sprintf(string, "%-15.15s %-15.15s %2u/%2u\n", hostcache[n].name, hostcache[n].map, hostcache[n].users, hostcache[n].maxusers); + else + sprintf(string, "%-15.15s %-15.15s\n", hostcache[n].name, hostcache[n].map); + M_Print (16, 32 + 8*n, string); + } + M_DrawCharacter (0, 32 + slist_cursor*8, 12+((int)(realtime*4)&1)); + + if (*m_return_reason) + M_PrintWhite (16, 148, m_return_reason); +} + + +void M_ServerList_Key (int k) +{ + switch (k) + { + case K_ESCAPE: + M_Menu_LanConfig_f (); + break; + + case K_SPACE: + M_Menu_Search_f (); + break; + + case K_UPARROW: + case K_LEFTARROW: + S_LocalSound ("misc/menu1.wav"); + slist_cursor--; + if (slist_cursor < 0) + slist_cursor = hostCacheCount - 1; + break; + + case K_DOWNARROW: + case K_RIGHTARROW: + S_LocalSound ("misc/menu1.wav"); + slist_cursor++; + if (slist_cursor >= hostCacheCount) + slist_cursor = 0; + break; + + case K_ENTER: + S_LocalSound ("misc/menu2.wav"); + m_return_state = m_state; + m_return_onerror = true; + slist_sorted = false; + IN_Activate(); + key_dest = key_game; + m_state = m_none; + Cbuf_AddText ( va ("connect \"%s\"\n", hostcache[slist_cursor].cname) ); + break; + + default: + break; + } + +} + +//============================================================================= +/* Menu Subsystem */ + + +void M_Init (void) +{ + Cmd_AddCommand ("togglemenu", M_ToggleMenu_f); + + Cmd_AddCommand ("menu_main", M_Menu_Main_f); + Cmd_AddCommand ("menu_singleplayer", M_Menu_SinglePlayer_f); + Cmd_AddCommand ("menu_load", M_Menu_Load_f); + Cmd_AddCommand ("menu_save", M_Menu_Save_f); + Cmd_AddCommand ("menu_multiplayer", M_Menu_MultiPlayer_f); + Cmd_AddCommand ("menu_setup", M_Menu_Setup_f); + Cmd_AddCommand ("menu_options", M_Menu_Options_f); + Cmd_AddCommand ("menu_keys", M_Menu_Keys_f); + Cmd_AddCommand ("menu_video", M_Menu_Video_f); + Cmd_AddCommand ("help", M_Menu_Help_f); + Cmd_AddCommand ("menu_quit", M_Menu_Quit_f); +} + + +void M_Draw (void) +{ + if (m_state == m_none || key_dest != key_menu) + return; + + if (!m_recursiveDraw) + { + if (scr_con_current) + { + Draw_ConsoleBackground (); + S_ExtraUpdate (); + } + + Draw_FadeScreen (); //johnfitz -- fade even if console fills screen + } + else + { + m_recursiveDraw = false; + } + + GL_SetCanvas (CANVAS_MENU); //johnfitz + + switch (m_state) + { + case m_none: + break; + + case m_main: + M_Main_Draw (); + break; + + case m_singleplayer: + M_SinglePlayer_Draw (); + break; + + case m_load: + M_Load_Draw (); + break; + + case m_save: + M_Save_Draw (); + break; + + case m_multiplayer: + M_MultiPlayer_Draw (); + break; + + case m_setup: + M_Setup_Draw (); + break; + + case m_net: + M_Net_Draw (); + break; + + case m_options: + M_Options_Draw (); + break; + + case m_keys: + M_Keys_Draw (); + break; + + case m_video: + M_Video_Draw (); + break; + + case m_help: + M_Help_Draw (); + break; + + case m_quit: + M_Quit_Draw (); + break; + + case m_serialconfig: + M_SerialConfig_Draw (); + break; + + case m_modemconfig: + M_ModemConfig_Draw (); + break; + + case m_lanconfig: + M_LanConfig_Draw (); + break; + + case m_gameoptions: + M_GameOptions_Draw (); + break; + + case m_search: + M_Search_Draw (); + break; + + case m_slist: + M_ServerList_Draw (); + break; + } + + if (m_entersound) + { + S_LocalSound ("misc/menu2.wav"); + m_entersound = false; + } + + S_ExtraUpdate (); +} + + +void M_Keydown (int key) +{ + switch (m_state) + { + case m_none: + return; + + case m_main: + M_Main_Key (key); + return; + + case m_singleplayer: + M_SinglePlayer_Key (key); + return; + + case m_load: + M_Load_Key (key); + return; + + case m_save: + M_Save_Key (key); + return; + + case m_multiplayer: + M_MultiPlayer_Key (key); + return; + + case m_setup: + M_Setup_Key (key); + return; + + case m_net: + M_Net_Key (key); + return; + + case m_options: + M_Options_Key (key); + return; + + case m_keys: + M_Keys_Key (key); + return; + + case m_video: + M_Video_Key (key); + return; + + case m_help: + M_Help_Key (key); + return; + + case m_quit: + M_Quit_Key (key); + return; + + case m_serialconfig: + M_SerialConfig_Key (key); + return; + + case m_modemconfig: + M_ModemConfig_Key (key); + return; + + case m_lanconfig: + M_LanConfig_Key (key); + return; + + case m_gameoptions: + M_GameOptions_Key (key); + return; + + case m_search: + M_Search_Key (key); + break; + + case m_slist: + M_ServerList_Key (key); + return; + } +} + + +void M_ConfigureNetSubsystem(void) +{ +// enable/disable net systems to match desired config + + Cbuf_AddText ("stopdemo\n"); + if (SerialConfig || DirectConfig) + { + Cbuf_AddText ("com1 enable\n"); + } + + if (IPXConfig || TCPIPConfig) + net_hostport = lanConfig_port; +} diff --git a/quakespasm/Quake/menu.h b/quakespasm/Quake/menu.h new file mode 100644 index 00000000..f2729a7f --- /dev/null +++ b/quakespasm/Quake/menu.h @@ -0,0 +1,39 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ + +// +// the net drivers should just set the apropriate bits in m_activenet, +// instead of having the menu code look through their internal tables +// +#define MNET_IPX 1 +#define MNET_TCP 2 + +extern int m_activenet; + +// +// menus +// +void M_Init (void); +void M_Keydown (int key); +void M_Draw (void); +void M_ToggleMenu_f (void); + + diff --git a/quakespasm/Quake/modelgen.h b/quakespasm/Quake/modelgen.h new file mode 100644 index 00000000..1d0bacbf --- /dev/null +++ b/quakespasm/Quake/modelgen.h @@ -0,0 +1,135 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// +// modelgen.h: header file for model generation program +// + +// ********************************************************* +// * This file must be identical in the modelgen directory * +// * and in the Quake directory, because it's used to * +// * pass data from one to the other via model files. * +// ********************************************************* + +#ifdef INCLUDELIBS + +#include +#include +#include +#include + +#include "cmdlib.h" +#include "scriplib.h" +#include "trilib.h" +#include "lbmlib.h" +#include "mathlib.h" + +#endif + +#define ALIAS_VERSION 6 + +#define ALIAS_ONSEAM 0x0020 + +// must match definition in spritegn.h +#ifndef SYNCTYPE_T +#define SYNCTYPE_T +typedef enum {ST_SYNC=0, ST_RAND } synctype_t; +#endif + +typedef enum { ALIAS_SINGLE=0, ALIAS_GROUP } aliasframetype_t; + +typedef enum { ALIAS_SKIN_SINGLE=0, ALIAS_SKIN_GROUP } aliasskintype_t; + +typedef struct { + int ident; + int version; + vec3_t scale; + vec3_t scale_origin; + float boundingradius; + vec3_t eyeposition; + int numskins; + int skinwidth; + int skinheight; + int numverts; + int numtris; + int numframes; + synctype_t synctype; + int flags; + float size; +} mdl_t; + +// TODO: could be shorts + +typedef struct { + int onseam; + int s; + int t; +} stvert_t; + +typedef struct dtriangle_s { + int facesfront; + int vertindex[3]; +} dtriangle_t; + +#define DT_FACES_FRONT 0x0010 + +// This mirrors trivert_t in trilib.h, is present so Quake knows how to +// load this data + +typedef struct { + byte v[3]; + byte lightnormalindex; +} trivertx_t; + +typedef struct { + trivertx_t bboxmin; // lightnormal isn't used + trivertx_t bboxmax; // lightnormal isn't used + char name[16]; // frame name from grabbing +} daliasframe_t; + +typedef struct { + int numframes; + trivertx_t bboxmin; // lightnormal isn't used + trivertx_t bboxmax; // lightnormal isn't used +} daliasgroup_t; + +typedef struct { + int numskins; +} daliasskingroup_t; + +typedef struct { + float interval; +} daliasinterval_t; + +typedef struct { + float interval; +} daliasskininterval_t; + +typedef struct { + aliasframetype_t type; +} daliasframetype_t; + +typedef struct { + aliasskintype_t type; +} daliasskintype_t; + +#define IDPOLYHEADER (('O'<<24)+('P'<<16)+('D'<<8)+'I') + // little-endian "IDPO" + diff --git a/quakespasm/Quake/net.h b/quakespasm/Quake/net.h new file mode 100644 index 00000000..ffc066c7 --- /dev/null +++ b/quakespasm/Quake/net.h @@ -0,0 +1,334 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// net.h -- quake's interface to the networking layer + +struct qsockaddr +{ + short sa_family; + unsigned char sa_data[14]; +}; + + +#define NET_NAMELEN 64 + +#define NET_MAXMESSAGE 32000 //johnfitz -- was 8192 +#define NET_HEADERSIZE (2 * sizeof(unsigned int)) +#define NET_DATAGRAMSIZE (MAX_DATAGRAM + NET_HEADERSIZE) + +// NetHeader flags +#define NETFLAG_LENGTH_MASK 0x0000ffff +#define NETFLAG_DATA 0x00010000 +#define NETFLAG_ACK 0x00020000 +#define NETFLAG_NAK 0x00040000 +#define NETFLAG_EOM 0x00080000 +#define NETFLAG_UNRELIABLE 0x00100000 +#define NETFLAG_CTL 0x80000000 + + +#define NET_PROTOCOL_VERSION 3 + +// This is the network info/connection protocol. It is used to find Quake +// servers, get info about them, and connect to them. Once connected, the +// Quake game protocol (documented elsewhere) is used. +// +// +// General notes: +// game_name is currently always "QUAKE", but is there so this same protocol +// can be used for future games as well; can you say Quake2? +// +// CCREQ_CONNECT +// string game_name "QUAKE" +// byte net_protocol_version NET_PROTOCOL_VERSION +// +// CCREQ_SERVER_INFO +// string game_name "QUAKE" +// byte net_protocol_version NET_PROTOCOL_VERSION +// +// CCREQ_PLAYER_INFO +// byte player_number +// +// CCREQ_RULE_INFO +// string rule +// +// +// +// CCREP_ACCEPT +// long port +// +// CCREP_REJECT +// string reason +// +// CCREP_SERVER_INFO +// string server_address +// string host_name +// string level_name +// byte current_players +// byte max_players +// byte protocol_version NET_PROTOCOL_VERSION +// +// CCREP_PLAYER_INFO +// byte player_number +// string name +// long colors +// long frags +// long connect_time +// string address +// +// CCREP_RULE_INFO +// string rule +// string value + +// note: +// There are two address forms used above. The short form is just a +// port number. The address that goes along with the port is defined as +// "whatever address you receive this reponse from". This lets us use +// the host OS to solve the problem of multiple host addresses (possibly +// with no routing between them); the host will use the right address +// when we reply to the inbound connection request. The long from is +// a full address and port in a string. It is used for returning the +// address of a server that is not running locally. + +#define CCREQ_CONNECT 0x01 +#define CCREQ_SERVER_INFO 0x02 +#define CCREQ_PLAYER_INFO 0x03 +#define CCREQ_RULE_INFO 0x04 + +#define CCREP_ACCEPT 0x81 +#define CCREP_REJECT 0x82 +#define CCREP_SERVER_INFO 0x83 +#define CCREP_PLAYER_INFO 0x84 +#define CCREP_RULE_INFO 0x85 + +typedef struct qsocket_s +{ + struct qsocket_s *next; + double connecttime; + double lastMessageTime; + double lastSendTime; + + qboolean disconnected; + qboolean canSend; + qboolean sendNext; + + int driver; + int landriver; + int socket; + void *driverdata; + + unsigned int ackSequence; + unsigned int sendSequence; + unsigned int unreliableSendSequence; + int sendMessageLength; + byte sendMessage [NET_MAXMESSAGE]; + + unsigned int receiveSequence; + unsigned int unreliableReceiveSequence; + int receiveMessageLength; + byte receiveMessage [NET_MAXMESSAGE]; + + struct qsockaddr addr; + char address[NET_NAMELEN]; + +} qsocket_t; + +extern qsocket_t *net_activeSockets; +extern qsocket_t *net_freeSockets; +extern int net_numsockets; + +typedef struct +{ + char *name; + qboolean initialized; + int controlSock; + int (*Init) (void); + void (*Shutdown) (void); + void (*Listen) (qboolean state); + int (*OpenSocket) (int port); + int (*CloseSocket) (int socket); + int (*Connect) (int socket, struct qsockaddr *addr); + int (*CheckNewConnections) (void); + int (*Read) (int socket, byte *buf, int len, struct qsockaddr *addr); + int (*Write) (int socket, byte *buf, int len, struct qsockaddr *addr); + int (*Broadcast) (int socket, byte *buf, int len); + char * (*AddrToString) (struct qsockaddr *addr); + int (*StringToAddr) (char *string, struct qsockaddr *addr); + int (*GetSocketAddr) (int socket, struct qsockaddr *addr); + int (*GetNameFromAddr) (struct qsockaddr *addr, char *name); + int (*GetAddrFromName) (char *name, struct qsockaddr *addr); + int (*AddrCompare) (struct qsockaddr *addr1, struct qsockaddr *addr2); + int (*GetSocketPort) (struct qsockaddr *addr); + int (*SetSocketPort) (struct qsockaddr *addr, int port); +} net_landriver_t; + +#define MAX_NET_DRIVERS 8 +extern int net_numlandrivers; +extern net_landriver_t net_landrivers[MAX_NET_DRIVERS]; + +typedef struct +{ + char *name; + qboolean initialized; + int (*Init) (void); + void (*Listen) (qboolean state); + void (*SearchForHosts) (qboolean xmit); + qsocket_t *(*Connect) (char *host); + qsocket_t *(*CheckNewConnections) (void); + int (*QGetMessage) (qsocket_t *sock); + int (*QSendMessage) (qsocket_t *sock, sizebuf_t *data); + int (*SendUnreliableMessage) (qsocket_t *sock, sizebuf_t *data); + qboolean (*CanSendMessage) (qsocket_t *sock); + qboolean (*CanSendUnreliableMessage) (qsocket_t *sock); + void (*Close) (qsocket_t *sock); + void (*Shutdown) (void); + int controlSock; +} net_driver_t; + +extern int net_numdrivers; +extern net_driver_t net_drivers[MAX_NET_DRIVERS]; + +extern int DEFAULTnet_hostport; +extern int net_hostport; + +extern int net_driverlevel; +extern cvar_t hostname; +extern char playername[]; +extern int playercolor; + +extern int messagesSent; +extern int messagesReceived; +extern int unreliableMessagesSent; +extern int unreliableMessagesReceived; + +qsocket_t *NET_NewQSocket (void); +void NET_FreeQSocket(qsocket_t *); +double SetNetTime(void); + + +#define HOSTCACHESIZE 8 + +typedef struct +{ + char name[16]; + char map[16]; + char cname[32]; + int users; + int maxusers; + int driver; + int ldriver; + struct qsockaddr addr; +} hostcache_t; + +extern int hostCacheCount; +extern hostcache_t hostcache[HOSTCACHESIZE]; + +#if !defined(_WIN32 ) && !defined (__linux__) && !defined (__sun__) +#ifndef htonl +extern unsigned long htonl (unsigned long hostlong); +#endif +#ifndef htons +extern unsigned short htons (unsigned short hostshort); +#endif +#ifndef ntohl +extern unsigned long ntohl (unsigned long netlong); +#endif +#ifndef ntohs +extern unsigned short ntohs (unsigned short netshort); +#endif +#endif + +//============================================================================ +// +// public network functions +// +//============================================================================ + +extern double net_time; +extern sizebuf_t net_message; +extern int net_activeconnections; + +void NET_Init (void); +void NET_Shutdown (void); + +struct qsocket_s *NET_CheckNewConnections (void); +// returns a new connection number if there is one pending, else -1 + +struct qsocket_s *NET_Connect (char *host); +// called by client to connect to a host. Returns -1 if not able to + +qboolean NET_CanSendMessage (qsocket_t *sock); +// Returns true or false if the given qsocket can currently accept a +// message to be transmitted. + +int NET_GetMessage (struct qsocket_s *sock); +// returns data in net_message sizebuf +// returns 0 if no data is waiting +// returns 1 if a message was received +// returns 2 if an unreliable message was received +// returns -1 if the connection died + +int NET_SendMessage (struct qsocket_s *sock, sizebuf_t *data); +int NET_SendUnreliableMessage (struct qsocket_s *sock, sizebuf_t *data); +// returns 0 if the message connot be delivered reliably, but the connection +// is still considered valid +// returns 1 if the message was sent properly +// returns -1 if the connection died + +int NET_SendToAll(sizebuf_t *data, int blocktime); +// This is a reliable *blocking* send to all attached clients. + + +void NET_Close (struct qsocket_s *sock); +// if a dead connection is returned by a get or send function, this function +// should be called when it is convenient + +// Server calls when a client is kicked off for a game related misbehavior +// like an illegal protocal conversation. Client calls when disconnecting +// from a server. +// A netcon_t number will not be reused until this function is called for it + +void NET_Poll(void); + + +typedef struct _PollProcedure +{ + struct _PollProcedure *next; + double nextTime; + void (*procedure)(); + void *arg; +} PollProcedure; + +void SchedulePollProcedure(PollProcedure *pp, double timeOffset); + +extern qboolean serialAvailable; +extern qboolean ipxAvailable; +extern qboolean tcpipAvailable; +extern char my_ipx_address[NET_NAMELEN]; +extern char my_tcpip_address[NET_NAMELEN]; +extern void (*GetComPortConfig) (int portNumber, int *port, int *irq, int *baud, qboolean *useModem); +extern void (*SetComPortConfig) (int portNumber, int port, int irq, int baud, qboolean useModem); +extern void (*GetModemConfig) (int portNumber, char *dialType, char *clear, char *init, char *hangup); +extern void (*SetModemConfig) (int portNumber, char *dialType, char *clear, char *init, char *hangup); + +extern qboolean slistInProgress; +extern qboolean slistSilent; +extern qboolean slistLocal; + +void NET_Slist_f (void); diff --git a/quakespasm/Quake/net_dgrm.c b/quakespasm/Quake/net_dgrm.c new file mode 100644 index 00000000..0fc2ca45 --- /dev/null +++ b/quakespasm/Quake/net_dgrm.c @@ -0,0 +1,1384 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// net_dgrm.c + +// This is enables a simple IP banning mechanism +//#define BAN_TEST disabled --kristian + +#ifdef BAN_TEST +#if defined(_WIN32) +#include +#elif defined (NeXT) +#include +#include +#else +#define AF_INET 2 /* internet */ +struct in_addr +{ + union + { + struct { unsigned char s_b1,s_b2,s_b3,s_b4; } S_un_b; + struct { unsigned short s_w1,s_w2; } S_un_w; + unsigned long S_addr; + } S_un; +}; +#define s_addr S_un.S_addr /* can be used for most tcp & ip code */ +struct sockaddr_in +{ + short sin_family; + unsigned short sin_port; + struct in_addr sin_addr; + char sin_zero[8]; +}; +char *inet_ntoa(struct in_addr in); +unsigned long inet_addr(const char *cp); +#endif +#endif // BAN_TEST + +#include "quakedef.h" +#include "net_dgrm.h" + +// these two macros are to make the code more readable +#define sfunc net_landrivers[sock->landriver] +#define dfunc net_landrivers[net_landriverlevel] + +static int net_landriverlevel; + +/* statistic counters */ +int packetsSent = 0; +int packetsReSent = 0; +int packetsReceived = 0; +int receivedDuplicateCount = 0; +int shortPacketCount = 0; +int droppedDatagrams; + +static int myDriverLevel; + +struct +{ + unsigned int length; + unsigned int sequence; + byte data[MAX_DATAGRAM]; +} packetBuffer; + +extern int m_return_state; +extern int m_state; +extern qboolean m_return_onerror; +extern char m_return_reason[32]; + + +char *StrAddr (struct qsockaddr *addr) +{ + static char buf[34]; + byte *p = (byte *)addr; + int n; + + for (n = 0; n < 16; n++) + sprintf (buf + n * 2, "%02x", *p++); + return buf; +} + + +#ifdef BAN_TEST +unsigned long banAddr = 0x00000000; +unsigned long banMask = 0xffffffff; + +void NET_Ban_f (void) +{ + char addrStr [32]; + char maskStr [32]; + void (*print) (char *fmt, ...); + + if (cmd_source == src_command) + { + if (!sv.active) + { + Cmd_ForwardToServer (); + return; + } + print = Con_Printf; + } + else + { + if (pr_global_struct->deathmatch && !host_client->privileged) + return; + print = SV_ClientPrintf; + } + + switch (Cmd_Argc ()) + { + case 1: + if (((struct in_addr *)&banAddr)->s_addr) + { + Q_strcpy(addrStr, inet_ntoa(*(struct in_addr *)&banAddr)); + Q_strcpy(maskStr, inet_ntoa(*(struct in_addr *)&banMask)); + print("Banning %s [%s]\n", addrStr, maskStr); + } + else + print("Banning not active\n"); + break; + + case 2: + if (Q_strcasecmp(Cmd_Argv(1), "off") == 0) + banAddr = 0x00000000; + else + banAddr = inet_addr(Cmd_Argv(1)); + banMask = 0xffffffff; + break; + + case 3: + banAddr = inet_addr(Cmd_Argv(1)); + banMask = inet_addr(Cmd_Argv(2)); + break; + + default: + print("BAN ip_address [mask]\n"); + break; + } +} +#endif + + +int Datagram_SendMessage (qsocket_t *sock, sizebuf_t *data) +{ + unsigned int packetLen; + unsigned int dataLen; + unsigned int eom; + +#ifdef DEBUG + if (data->cursize == 0) + Sys_Error("Datagram_SendMessage: zero length message\n"); + + if (data->cursize > NET_MAXMESSAGE) + Sys_Error("Datagram_SendMessage: message too big %u\n", data->cursize); + + if (sock->canSend == false) + Sys_Error("SendMessage: called with canSend == false\n"); +#endif + + Q_memcpy(sock->sendMessage, data->data, data->cursize); + sock->sendMessageLength = data->cursize; + + if (data->cursize <= MAX_DATAGRAM) + { + dataLen = data->cursize; + eom = NETFLAG_EOM; + } + else + { + dataLen = MAX_DATAGRAM; + eom = 0; + } + packetLen = NET_HEADERSIZE + dataLen; + + packetBuffer.length = BigLong(packetLen | (NETFLAG_DATA | eom)); + packetBuffer.sequence = BigLong(sock->sendSequence++); + Q_memcpy (packetBuffer.data, sock->sendMessage, dataLen); + + sock->canSend = false; + + if (sfunc.Write (sock->socket, (byte *)&packetBuffer, packetLen, &sock->addr) == -1) + return -1; + + sock->lastSendTime = net_time; + packetsSent++; + return 1; +} + + +int SendMessageNext (qsocket_t *sock) +{ + unsigned int packetLen; + unsigned int dataLen; + unsigned int eom; + + if (sock->sendMessageLength <= MAX_DATAGRAM) + { + dataLen = sock->sendMessageLength; + eom = NETFLAG_EOM; + } + else + { + dataLen = MAX_DATAGRAM; + eom = 0; + } + packetLen = NET_HEADERSIZE + dataLen; + + packetBuffer.length = BigLong(packetLen | (NETFLAG_DATA | eom)); + packetBuffer.sequence = BigLong(sock->sendSequence++); + Q_memcpy (packetBuffer.data, sock->sendMessage, dataLen); + + sock->sendNext = false; + + if (sfunc.Write (sock->socket, (byte *)&packetBuffer, packetLen, &sock->addr) == -1) + return -1; + + sock->lastSendTime = net_time; + packetsSent++; + return 1; +} + + +int ReSendMessage (qsocket_t *sock) +{ + unsigned int packetLen; + unsigned int dataLen; + unsigned int eom; + + if (sock->sendMessageLength <= MAX_DATAGRAM) + { + dataLen = sock->sendMessageLength; + eom = NETFLAG_EOM; + } + else + { + dataLen = MAX_DATAGRAM; + eom = 0; + } + packetLen = NET_HEADERSIZE + dataLen; + + packetBuffer.length = BigLong(packetLen | (NETFLAG_DATA | eom)); + packetBuffer.sequence = BigLong(sock->sendSequence - 1); + Q_memcpy (packetBuffer.data, sock->sendMessage, dataLen); + + sock->sendNext = false; + + if (sfunc.Write (sock->socket, (byte *)&packetBuffer, packetLen, &sock->addr) == -1) + return -1; + + sock->lastSendTime = net_time; + packetsReSent++; + return 1; +} + + +qboolean Datagram_CanSendMessage (qsocket_t *sock) +{ + if (sock->sendNext) + SendMessageNext (sock); + + return sock->canSend; +} + + +qboolean Datagram_CanSendUnreliableMessage (qsocket_t *sock) +{ + return true; +} + + +int Datagram_SendUnreliableMessage (qsocket_t *sock, sizebuf_t *data) +{ + int packetLen; + +#ifdef DEBUG + if (data->cursize == 0) + Sys_Error("Datagram_SendUnreliableMessage: zero length message\n"); + + if (data->cursize > MAX_DATAGRAM) + Sys_Error("Datagram_SendUnreliableMessage: message too big %u\n", data->cursize); +#endif + + packetLen = NET_HEADERSIZE + data->cursize; + + packetBuffer.length = BigLong(packetLen | NETFLAG_UNRELIABLE); + packetBuffer.sequence = BigLong(sock->unreliableSendSequence++); + Q_memcpy (packetBuffer.data, data->data, data->cursize); + + if (sfunc.Write (sock->socket, (byte *)&packetBuffer, packetLen, &sock->addr) == -1) + return -1; + + packetsSent++; + return 1; +} + + +int Datagram_GetMessage (qsocket_t *sock) +{ + unsigned int length; + unsigned int flags; + int ret = 0; + struct qsockaddr readaddr; + unsigned int sequence; + unsigned int count; + + if (!sock->canSend) + if ((net_time - sock->lastSendTime) > 1.0) + ReSendMessage (sock); + + while(1) + { + length = sfunc.Read (sock->socket, (byte *)&packetBuffer, NET_DATAGRAMSIZE, &readaddr); + +// if ((rand() & 255) > 220) +// continue; + + if (length == 0) + break; + + if (length == -1) + { + Con_Printf("Read error\n"); + return -1; + } + + if (sfunc.AddrCompare(&readaddr, &sock->addr) != 0) + { +#ifdef DEBUG + Con_DPrintf("Forged packet received\n"); + Con_DPrintf("Expected: %s\n", StrAddr (&sock->addr)); + Con_DPrintf("Received: %s\n", StrAddr (&readaddr)); +#endif + continue; + } + + if (length < NET_HEADERSIZE) + { + shortPacketCount++; + continue; + } + + length = BigLong(packetBuffer.length); + flags = length & (~NETFLAG_LENGTH_MASK); + length &= NETFLAG_LENGTH_MASK; + + if (flags & NETFLAG_CTL) + continue; + + sequence = BigLong(packetBuffer.sequence); + packetsReceived++; + + if (flags & NETFLAG_UNRELIABLE) + { + if (sequence < sock->unreliableReceiveSequence) + { + Con_DPrintf("Got a stale datagram\n"); + ret = 0; + break; + } + if (sequence != sock->unreliableReceiveSequence) + { + count = sequence - sock->unreliableReceiveSequence; + droppedDatagrams += count; + Con_DPrintf("Dropped %u datagram(s)\n", count); + } + sock->unreliableReceiveSequence = sequence + 1; + + length -= NET_HEADERSIZE; + + SZ_Clear (&net_message); + SZ_Write (&net_message, packetBuffer.data, length); + + ret = 2; + break; + } + + if (flags & NETFLAG_ACK) + { + if (sequence != (sock->sendSequence - 1)) + { + Con_DPrintf("Stale ACK received\n"); + continue; + } + if (sequence == sock->ackSequence) + { + sock->ackSequence++; + if (sock->ackSequence != sock->sendSequence) + Con_DPrintf("ack sequencing error\n"); + } + else + { + Con_DPrintf("Duplicate ACK received\n"); + continue; + } + sock->sendMessageLength -= MAX_DATAGRAM; + if (sock->sendMessageLength > 0) + { + Q_memcpy(sock->sendMessage, sock->sendMessage+MAX_DATAGRAM, sock->sendMessageLength); + sock->sendNext = true; + } + else + { + sock->sendMessageLength = 0; + sock->canSend = true; + } + continue; + } + + if (flags & NETFLAG_DATA) + { + packetBuffer.length = BigLong(NET_HEADERSIZE | NETFLAG_ACK); + packetBuffer.sequence = BigLong(sequence); + sfunc.Write (sock->socket, (byte *)&packetBuffer, NET_HEADERSIZE, &readaddr); + + if (sequence != sock->receiveSequence) + { + receivedDuplicateCount++; + continue; + } + sock->receiveSequence++; + + length -= NET_HEADERSIZE; + + if (flags & NETFLAG_EOM) + { + SZ_Clear(&net_message); + SZ_Write(&net_message, sock->receiveMessage, sock->receiveMessageLength); + SZ_Write(&net_message, packetBuffer.data, length); + sock->receiveMessageLength = 0; + + ret = 1; + break; + } + + Q_memcpy(sock->receiveMessage + sock->receiveMessageLength, packetBuffer.data, length); + sock->receiveMessageLength += length; + continue; + } + } + + if (sock->sendNext) + SendMessageNext (sock); + + return ret; +} + + +void PrintStats(qsocket_t *s) +{ + Con_Printf("canSend = %4u \n", s->canSend); + Con_Printf("sendSeq = %4u ", s->sendSequence); + Con_Printf("recvSeq = %4u \n", s->receiveSequence); + Con_Printf("\n"); +} + +void NET_Stats_f (void) +{ + qsocket_t *s; + + if (Cmd_Argc () == 1) + { + Con_Printf("unreliable messages sent = %i\n", unreliableMessagesSent); + Con_Printf("unreliable messages recv = %i\n", unreliableMessagesReceived); + Con_Printf("reliable messages sent = %i\n", messagesSent); + Con_Printf("reliable messages received = %i\n", messagesReceived); + Con_Printf("packetsSent = %i\n", packetsSent); + Con_Printf("packetsReSent = %i\n", packetsReSent); + Con_Printf("packetsReceived = %i\n", packetsReceived); + Con_Printf("receivedDuplicateCount = %i\n", receivedDuplicateCount); + Con_Printf("shortPacketCount = %i\n", shortPacketCount); + Con_Printf("droppedDatagrams = %i\n", droppedDatagrams); + } + else if (Q_strcmp(Cmd_Argv(1), "*") == 0) + { + for (s = net_activeSockets; s; s = s->next) + PrintStats(s); + for (s = net_freeSockets; s; s = s->next) + PrintStats(s); + } + else + { + for (s = net_activeSockets; s; s = s->next) + if (Q_strcasecmp(Cmd_Argv(1), s->address) == 0) + break; + if (s == NULL) + for (s = net_freeSockets; s; s = s->next) + if (Q_strcasecmp(Cmd_Argv(1), s->address) == 0) + break; + if (s == NULL) + return; + PrintStats(s); + } +} + + +static qboolean testInProgress = false; +static int testPollCount; +static int testDriver; +static int testSocket; + +static void Test_Poll(void); +PollProcedure testPollProcedure = {NULL, 0.0, Test_Poll}; + +static void Test_Poll(void) +{ + struct qsockaddr clientaddr; + int control; + int len; + char name[32]; + char address[64]; + int colors; + int frags; + int connectTime; + byte playerNumber; + + net_landriverlevel = testDriver; + + while (1) + { + len = dfunc.Read (testSocket, net_message.data, net_message.maxsize, &clientaddr); + if (len < sizeof(int)) + break; + + net_message.cursize = len; + + MSG_BeginReading (); + control = BigLong(*((int *)net_message.data)); + MSG_ReadLong(); + if (control == -1) + break; + if ((control & (~NETFLAG_LENGTH_MASK)) != NETFLAG_CTL) + break; + if ((control & NETFLAG_LENGTH_MASK) != len) + break; + + if (MSG_ReadByte() != CCREP_PLAYER_INFO) + Sys_Error("Unexpected repsonse to Player Info request\n"); + + playerNumber = MSG_ReadByte(); + Q_strcpy(name, MSG_ReadString()); + colors = MSG_ReadLong(); + frags = MSG_ReadLong(); + connectTime = MSG_ReadLong(); + Q_strcpy(address, MSG_ReadString()); + + Con_Printf("%s\n frags:%3i colors:%u %u time:%u\n %s\n", name, frags, colors >> 4, colors & 0x0f, connectTime / 60, address); + } + + testPollCount--; + if (testPollCount) + { + SchedulePollProcedure(&testPollProcedure, 0.1); + } + else + { + dfunc.CloseSocket(testSocket); + testInProgress = false; + } +} + +static void Net_Test_f (void) +{ + char *host; + int n; + int max = MAX_SCOREBOARD; + struct qsockaddr sendaddr; + + if (testInProgress) + return; + + host = Cmd_Argv (1); + + if (host && hostCacheCount) + { + for (n = 0; n < hostCacheCount; n++) + if (Q_strcasecmp (host, hostcache[n].name) == 0) + { + if (hostcache[n].driver != myDriverLevel) + continue; + net_landriverlevel = hostcache[n].ldriver; + max = hostcache[n].maxusers; + Q_memcpy(&sendaddr, &hostcache[n].addr, sizeof(struct qsockaddr)); + break; + } + if (n < hostCacheCount) + goto JustDoIt; + } + + for (net_landriverlevel = 0; net_landriverlevel < net_numlandrivers; net_landriverlevel++) + { + if (!net_landrivers[net_landriverlevel].initialized) + continue; + + // see if we can resolve the host name + if (dfunc.GetAddrFromName(host, &sendaddr) != -1) + break; + } + if (net_landriverlevel == net_numlandrivers) + return; + +JustDoIt: + testSocket = dfunc.OpenSocket(0); + if (testSocket == -1) + return; + + testInProgress = true; + testPollCount = 20; + testDriver = net_landriverlevel; + + for (n = 0; n < max; n++) + { + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREQ_PLAYER_INFO); + MSG_WriteByte(&net_message, n); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (testSocket, net_message.data, net_message.cursize, &sendaddr); + } + SZ_Clear(&net_message); + SchedulePollProcedure(&testPollProcedure, 0.1); +} + + +static qboolean test2InProgress = false; +static int test2Driver; +static int test2Socket; + +static void Test2_Poll(void); +PollProcedure test2PollProcedure = {NULL, 0.0, Test2_Poll}; + +static void Test2_Poll(void) +{ + struct qsockaddr clientaddr; + int control; + int len; + char name[256]; + char value[256]; + + net_landriverlevel = test2Driver; + name[0] = 0; + + len = dfunc.Read (test2Socket, net_message.data, net_message.maxsize, &clientaddr); + if (len < sizeof(int)) + goto Reschedule; + + net_message.cursize = len; + + MSG_BeginReading (); + control = BigLong(*((int *)net_message.data)); + MSG_ReadLong(); + if (control == -1) + goto Error; + if ((control & (~NETFLAG_LENGTH_MASK)) != NETFLAG_CTL) + goto Error; + if ((control & NETFLAG_LENGTH_MASK) != len) + goto Error; + + if (MSG_ReadByte() != CCREP_RULE_INFO) + goto Error; + + Q_strcpy(name, MSG_ReadString()); + if (name[0] == 0) + goto Done; + Q_strcpy(value, MSG_ReadString()); + + Con_Printf("%-16.16s %-16.16s\n", name, value); + + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREQ_RULE_INFO); + MSG_WriteString(&net_message, name); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (test2Socket, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + +Reschedule: + SchedulePollProcedure(&test2PollProcedure, 0.05); + return; + +Error: + Con_Printf("Unexpected repsonse to Rule Info request\n"); +Done: + dfunc.CloseSocket(test2Socket); + test2InProgress = false; + return; +} + +static void Test2_f (void) +{ + char *host; + int n; + struct qsockaddr sendaddr; + + if (test2InProgress) + return; + + host = Cmd_Argv (1); + + if (host && hostCacheCount) + { + for (n = 0; n < hostCacheCount; n++) + if (Q_strcasecmp (host, hostcache[n].name) == 0) + { + if (hostcache[n].driver != myDriverLevel) + continue; + net_landriverlevel = hostcache[n].ldriver; + Q_memcpy(&sendaddr, &hostcache[n].addr, sizeof(struct qsockaddr)); + break; + } + if (n < hostCacheCount) + goto JustDoIt; + } + + for (net_landriverlevel = 0; net_landriverlevel < net_numlandrivers; net_landriverlevel++) + { + if (!net_landrivers[net_landriverlevel].initialized) + continue; + + // see if we can resolve the host name + if (dfunc.GetAddrFromName(host, &sendaddr) != -1) + break; + } + if (net_landriverlevel == net_numlandrivers) + return; + +JustDoIt: + test2Socket = dfunc.OpenSocket(0); + if (test2Socket == -1) + return; + + test2InProgress = true; + test2Driver = net_landriverlevel; + + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREQ_RULE_INFO); + MSG_WriteString(&net_message, ""); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (test2Socket, net_message.data, net_message.cursize, &sendaddr); + SZ_Clear(&net_message); + SchedulePollProcedure(&test2PollProcedure, 0.05); +} + + +int Datagram_Init (void) +{ + int i; + int csock; + + myDriverLevel = net_driverlevel; + Cmd_AddCommand ("net_stats", NET_Stats_f); + + if (COM_CheckParm("-nolan")) + return -1; + + for (i = 0; i < net_numlandrivers; i++) + { + csock = net_landrivers[i].Init (); + if (csock == -1) + continue; + net_landrivers[i].initialized = true; + net_landrivers[i].controlSock = csock; + } + + return 0; +} + + +void Datagram_Shutdown (void) +{ + int i; + +// +// shutdown the lan drivers +// + for (i = 0; i < net_numlandrivers; i++) + { + if (net_landrivers[i].initialized) + { + net_landrivers[i].Shutdown (); + net_landrivers[i].initialized = false; + } + } +} + + +void Datagram_Close (qsocket_t *sock) +{ + sfunc.CloseSocket(sock->socket); +} + + +void Datagram_Listen (qboolean state) +{ + int i; + + for (i = 0; i < net_numlandrivers; i++) + if (net_landrivers[i].initialized) + net_landrivers[i].Listen (state); +} + + +static qsocket_t *_Datagram_CheckNewConnections (void) +{ + struct qsockaddr clientaddr; + struct qsockaddr newaddr; + int newsock; + int acceptsock; + qsocket_t *sock; + qsocket_t *s; + int len; + int command; + int control; + int ret; + + acceptsock = dfunc.CheckNewConnections(); + if (acceptsock == -1) + return NULL; + + SZ_Clear(&net_message); + + len = dfunc.Read (acceptsock, net_message.data, net_message.maxsize, &clientaddr); + if (len < sizeof(int)) + return NULL; + net_message.cursize = len; + + MSG_BeginReading (); + control = BigLong(*((int *)net_message.data)); + MSG_ReadLong(); + if (control == -1) + return NULL; + if ((control & (~NETFLAG_LENGTH_MASK)) != NETFLAG_CTL) + return NULL; + if ((control & NETFLAG_LENGTH_MASK) != len) + return NULL; + + command = MSG_ReadByte(); + if (command == CCREQ_SERVER_INFO) + { + if (Q_strcmp(MSG_ReadString(), "QUAKE") != 0) + return NULL; + + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREP_SERVER_INFO); + dfunc.GetSocketAddr(acceptsock, &newaddr); + MSG_WriteString(&net_message, dfunc.AddrToString(&newaddr)); + MSG_WriteString(&net_message, hostname.string); + MSG_WriteString(&net_message, sv.name); + MSG_WriteByte(&net_message, net_activeconnections); + MSG_WriteByte(&net_message, svs.maxclients); + MSG_WriteByte(&net_message, NET_PROTOCOL_VERSION); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (acceptsock, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + return NULL; + } + + if (command == CCREQ_PLAYER_INFO) + { + int playerNumber; + int activeNumber; + int clientNumber; + client_t *client; + + playerNumber = MSG_ReadByte(); + activeNumber = -1; + for (clientNumber = 0, client = svs.clients; clientNumber < svs.maxclients; clientNumber++, client++) + { + if (client->active) + { + activeNumber++; + if (activeNumber == playerNumber) + break; + } + } + if (clientNumber == svs.maxclients) + return NULL; + + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREP_PLAYER_INFO); + MSG_WriteByte(&net_message, playerNumber); + MSG_WriteString(&net_message, client->name); + MSG_WriteLong(&net_message, client->colors); + MSG_WriteLong(&net_message, (int)client->edict->v.frags); + MSG_WriteLong(&net_message, (int)(net_time - client->netconnection->connecttime)); + MSG_WriteString(&net_message, client->netconnection->address); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (acceptsock, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + + return NULL; + } + + if (command == CCREQ_RULE_INFO) + { + char *prevCvarName; + cvar_t *var; + + // find the search start location + prevCvarName = MSG_ReadString(); + if (*prevCvarName) + { + var = Cvar_FindVar (prevCvarName); + if (!var) + return NULL; + var = var->next; + } + else + var = cvar_vars; + + // search for the next server cvar + while (var) + { + if (var->server) + break; + var = var->next; + } + + // send the response + + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREP_RULE_INFO); + if (var) + { + MSG_WriteString(&net_message, var->name); + MSG_WriteString(&net_message, var->string); + } + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (acceptsock, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + + return NULL; + } + + if (command != CCREQ_CONNECT) + return NULL; + + if (Q_strcmp(MSG_ReadString(), "QUAKE") != 0) + return NULL; + + if (MSG_ReadByte() != NET_PROTOCOL_VERSION) + { + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREP_REJECT); + MSG_WriteString(&net_message, "Incompatible version.\n"); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (acceptsock, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + return NULL; + } + +#ifdef BAN_TEST + // check for a ban + if (clientaddr.sa_family == AF_INET) + { + unsigned long testAddr; + testAddr = ((struct sockaddr_in *)&clientaddr)->sin_addr.s_addr; + if ((testAddr & banMask) == banAddr) + { + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREP_REJECT); + MSG_WriteString(&net_message, "You have been banned.\n"); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (acceptsock, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + return NULL; + } + } +#endif + + // see if this guy is already connected + for (s = net_activeSockets; s; s = s->next) + { + if (s->driver != net_driverlevel) + continue; + ret = dfunc.AddrCompare(&clientaddr, &s->addr); + if (ret >= 0) + { + // is this a duplicate connection reqeust? + if (ret == 0 && net_time - s->connecttime < 2.0) + { + // yes, so send a duplicate reply + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREP_ACCEPT); + dfunc.GetSocketAddr(s->socket, &newaddr); + MSG_WriteLong(&net_message, dfunc.GetSocketPort(&newaddr)); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (acceptsock, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + return NULL; + } + // it's somebody coming back in from a crash/disconnect + // so close the old qsocket and let their retry get them back in + NET_Close(s); + return NULL; + } + } + + // allocate a QSocket + sock = NET_NewQSocket (); + if (sock == NULL) + { + // no room; try to let him know + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREP_REJECT); + MSG_WriteString(&net_message, "Server is full.\n"); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (acceptsock, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + return NULL; + } + + // allocate a network socket + newsock = dfunc.OpenSocket(0); + if (newsock == -1) + { + NET_FreeQSocket(sock); + return NULL; + } + + // connect to the client + if (dfunc.Connect (newsock, &clientaddr) == -1) + { + dfunc.CloseSocket(newsock); + NET_FreeQSocket(sock); + return NULL; + } + + // everything is allocated, just fill in the details + sock->socket = newsock; + sock->landriver = net_landriverlevel; + sock->addr = clientaddr; + Q_strcpy(sock->address, dfunc.AddrToString(&clientaddr)); + + // send him back the info about the server connection he has been allocated + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREP_ACCEPT); + dfunc.GetSocketAddr(newsock, &newaddr); + MSG_WriteLong(&net_message, dfunc.GetSocketPort(&newaddr)); +// MSG_WriteString(&net_message, dfunc.AddrToString(&newaddr)); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (acceptsock, net_message.data, net_message.cursize, &clientaddr); + SZ_Clear(&net_message); + + return sock; +} + +qsocket_t *Datagram_CheckNewConnections (void) +{ + qsocket_t *ret = NULL; + + for (net_landriverlevel = 0; net_landriverlevel < net_numlandrivers; net_landriverlevel++) + if (net_landrivers[net_landriverlevel].initialized) + if ((ret = _Datagram_CheckNewConnections ()) != NULL) + break; + return ret; +} + + +static void _Datagram_SearchForHosts (qboolean xmit) +{ + int ret; + int n; + int i; + struct qsockaddr readaddr; + struct qsockaddr myaddr; + int control; + + dfunc.GetSocketAddr (dfunc.controlSock, &myaddr); + if (xmit) + { + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREQ_SERVER_INFO); + MSG_WriteString(&net_message, "QUAKE"); + MSG_WriteByte(&net_message, NET_PROTOCOL_VERSION); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Broadcast(dfunc.controlSock, net_message.data, net_message.cursize); + SZ_Clear(&net_message); + } + + while ((ret = dfunc.Read (dfunc.controlSock, net_message.data, net_message.maxsize, &readaddr)) > 0) + { + if (ret < sizeof(int)) + continue; + net_message.cursize = ret; + + // don't answer our own query + if (dfunc.AddrCompare(&readaddr, &myaddr) >= 0) + continue; + + // is the cache full? + if (hostCacheCount == HOSTCACHESIZE) + continue; + + MSG_BeginReading (); + control = BigLong(*((int *)net_message.data)); + MSG_ReadLong(); + if (control == -1) + continue; + if ((control & (~NETFLAG_LENGTH_MASK)) != NETFLAG_CTL) + continue; + if ((control & NETFLAG_LENGTH_MASK) != ret) + continue; + + if (MSG_ReadByte() != CCREP_SERVER_INFO) + continue; + + dfunc.GetAddrFromName(MSG_ReadString(), &readaddr); + // search the cache for this server + for (n = 0; n < hostCacheCount; n++) + if (dfunc.AddrCompare(&readaddr, &hostcache[n].addr) == 0) + break; + + // is it already there? + if (n < hostCacheCount) + continue; + + // add it + hostCacheCount++; + Q_strcpy(hostcache[n].name, MSG_ReadString()); + Q_strcpy(hostcache[n].map, MSG_ReadString()); + hostcache[n].users = MSG_ReadByte(); + hostcache[n].maxusers = MSG_ReadByte(); + if (MSG_ReadByte() != NET_PROTOCOL_VERSION) + { + Q_strcpy(hostcache[n].cname, hostcache[n].name); + hostcache[n].cname[14] = 0; + Q_strcpy(hostcache[n].name, "*"); + Q_strcat(hostcache[n].name, hostcache[n].cname); + } + Q_memcpy(&hostcache[n].addr, &readaddr, sizeof(struct qsockaddr)); + hostcache[n].driver = net_driverlevel; + hostcache[n].ldriver = net_landriverlevel; + Q_strcpy(hostcache[n].cname, dfunc.AddrToString(&readaddr)); + + // check for a name conflict + for (i = 0; i < hostCacheCount; i++) + { + if (i == n) + continue; + if (Q_strcasecmp (hostcache[n].name, hostcache[i].name) == 0) + { + i = Q_strlen(hostcache[n].name); + if (i < 15 && hostcache[n].name[i-1] > '8') + { + hostcache[n].name[i] = '0'; + hostcache[n].name[i+1] = 0; + } + else + hostcache[n].name[i-1]++; + i = -1; + } + } + } +} + +void Datagram_SearchForHosts (qboolean xmit) +{ + for (net_landriverlevel = 0; net_landriverlevel < net_numlandrivers; net_landriverlevel++) + { + if (hostCacheCount == HOSTCACHESIZE) + break; + if (net_landrivers[net_landriverlevel].initialized) + _Datagram_SearchForHosts (xmit); + } +} + + +static qsocket_t *_Datagram_Connect (char *host) +{ + struct qsockaddr sendaddr; + struct qsockaddr readaddr; + qsocket_t *sock; + int newsock; + int ret; + int reps; + double start_time; + int control; + char *reason; + + // see if we can resolve the host name + if (dfunc.GetAddrFromName(host, &sendaddr) == -1) + return NULL; + + newsock = dfunc.OpenSocket (0); + if (newsock == -1) + return NULL; + + sock = NET_NewQSocket (); + if (sock == NULL) + goto ErrorReturn2; + sock->socket = newsock; + sock->landriver = net_landriverlevel; + + // connect to the host + if (dfunc.Connect (newsock, &sendaddr) == -1) + goto ErrorReturn; + + // send the connection request + Con_Printf("trying...\n"); SCR_UpdateScreen (); + start_time = net_time; + + for (reps = 0; reps < 3; reps++) + { + SZ_Clear(&net_message); + // save space for the header, filled in later + MSG_WriteLong(&net_message, 0); + MSG_WriteByte(&net_message, CCREQ_CONNECT); + MSG_WriteString(&net_message, "QUAKE"); + MSG_WriteByte(&net_message, NET_PROTOCOL_VERSION); + *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK)); + dfunc.Write (newsock, net_message.data, net_message.cursize, &sendaddr); + SZ_Clear(&net_message); + do + { + ret = dfunc.Read (newsock, net_message.data, net_message.maxsize, &readaddr); + // if we got something, validate it + if (ret > 0) + { + // is it from the right place? + if (sfunc.AddrCompare(&readaddr, &sendaddr) != 0) + { +//#ifdef DEBUG + Con_Printf("wrong reply address\n"); + Con_Printf("Expected: %s | %s\n", dfunc.AddrToString (&sendaddr), StrAddr(&sendaddr)); + Con_Printf("Received: %s | %s\n", dfunc.AddrToString (&readaddr), StrAddr(&readaddr)); + SCR_UpdateScreen (); +//#endif + ret = 0; + continue; + } + + if (ret < sizeof(int)) + { + ret = 0; + continue; + } + + net_message.cursize = ret; + MSG_BeginReading (); + + control = BigLong(*((int *)net_message.data)); + MSG_ReadLong(); + if (control == -1) + { + ret = 0; + continue; + } + if ((control & (~NETFLAG_LENGTH_MASK)) != NETFLAG_CTL) + { + ret = 0; + continue; + } + if ((control & NETFLAG_LENGTH_MASK) != ret) + { + ret = 0; + continue; + } + } + } + while (ret == 0 && (SetNetTime() - start_time) < 2.5); + if (ret) + break; + Con_Printf("still trying...\n"); SCR_UpdateScreen (); + start_time = SetNetTime(); + } + + if (ret == 0) + { + reason = "No Response"; + Con_Printf("%s\n", reason); + Q_strcpy(m_return_reason, reason); + goto ErrorReturn; + } + + if (ret == -1) + { + reason = "Network Error"; + Con_Printf("%s\n", reason); + Q_strcpy(m_return_reason, reason); + goto ErrorReturn; + } + + ret = MSG_ReadByte(); + if (ret == CCREP_REJECT) + { + reason = MSG_ReadString(); + Con_Printf(reason); + Q_strncpy(m_return_reason, reason, 31); + goto ErrorReturn; + } + + if (ret == CCREP_ACCEPT) + { + Q_memcpy(&sock->addr, &sendaddr, sizeof(struct qsockaddr)); + dfunc.SetSocketPort (&sock->addr, MSG_ReadLong()); + } + else + { + reason = "Bad Response"; + Con_Printf("%s\n", reason); + Q_strcpy(m_return_reason, reason); + goto ErrorReturn; + } + + dfunc.GetNameFromAddr (&sendaddr, sock->address); + + Con_Printf ("Connection accepted\n"); + sock->lastMessageTime = SetNetTime(); + + // switch the connection to the specified address + if (dfunc.Connect (newsock, &sock->addr) == -1) + { + reason = "Connect to Game failed"; + Con_Printf("%s\n", reason); + Q_strcpy(m_return_reason, reason); + goto ErrorReturn; + } + + m_return_onerror = false; + return sock; + +ErrorReturn: + NET_FreeQSocket(sock); +ErrorReturn2: + dfunc.CloseSocket(newsock); + if (m_return_onerror) + { + key_dest = key_menu; + m_state = m_return_state; + m_return_onerror = false; + } + return NULL; +} + +qsocket_t *Datagram_Connect (char *host) +{ + qsocket_t *ret = NULL; + + for (net_landriverlevel = 0; net_landriverlevel < net_numlandrivers; net_landriverlevel++) + if (net_landrivers[net_landriverlevel].initialized) + if ((ret = _Datagram_Connect (host)) != NULL) + break; + return ret; +} diff --git a/quakespasm/Quake/net_dgrm.h b/quakespasm/Quake/net_dgrm.h new file mode 100644 index 00000000..e4a4a94d --- /dev/null +++ b/quakespasm/Quake/net_dgrm.h @@ -0,0 +1,35 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// net_dgrm.h + + +int Datagram_Init (void); +void Datagram_Listen (qboolean state); +void Datagram_SearchForHosts (qboolean xmit); +qsocket_t *Datagram_Connect (char *host); +qsocket_t *Datagram_CheckNewConnections (void); +int Datagram_GetMessage (qsocket_t *sock); +int Datagram_SendMessage (qsocket_t *sock, sizebuf_t *data); +int Datagram_SendUnreliableMessage (qsocket_t *sock, sizebuf_t *data); +qboolean Datagram_CanSendMessage (qsocket_t *sock); +qboolean Datagram_CanSendUnreliableMessage (qsocket_t *sock); +void Datagram_Close (qsocket_t *sock); +void Datagram_Shutdown (void); diff --git a/quakespasm/Quake/net_loop.c b/quakespasm/Quake/net_loop.c new file mode 100644 index 00000000..a9b3a844 --- /dev/null +++ b/quakespasm/Quake/net_loop.c @@ -0,0 +1,246 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// net_loop.c + +#include "quakedef.h" +#include "net_loop.h" + +qboolean localconnectpending = false; +qsocket_t *loop_client = NULL; +qsocket_t *loop_server = NULL; + +int Loop_Init (void) +{ + if (cls.state == ca_dedicated) + return -1; + return 0; +} + + +void Loop_Shutdown (void) +{ +} + + +void Loop_Listen (qboolean state) +{ +} + + +void Loop_SearchForHosts (qboolean xmit) +{ + if (!sv.active) + return; + + hostCacheCount = 1; + if (Q_strcmp(hostname.string, "UNNAMED") == 0) + Q_strcpy(hostcache[0].name, "local"); + else + Q_strcpy(hostcache[0].name, hostname.string); + Q_strcpy(hostcache[0].map, sv.name); + hostcache[0].users = net_activeconnections; + hostcache[0].maxusers = svs.maxclients; + hostcache[0].driver = net_driverlevel; + Q_strcpy(hostcache[0].cname, "local"); +} + + +qsocket_t *Loop_Connect (char *host) +{ + if (Q_strcmp(host,"local") != 0) + return NULL; + + localconnectpending = true; + + if (!loop_client) + { + if ((loop_client = NET_NewQSocket ()) == NULL) + { + Con_Printf("Loop_Connect: no qsocket available\n"); + return NULL; + } + Q_strcpy (loop_client->address, "localhost"); + } + loop_client->receiveMessageLength = 0; + loop_client->sendMessageLength = 0; + loop_client->canSend = true; + + if (!loop_server) + { + if ((loop_server = NET_NewQSocket ()) == NULL) + { + Con_Printf("Loop_Connect: no qsocket available\n"); + return NULL; + } + Q_strcpy (loop_server->address, "LOCAL"); + } + loop_server->receiveMessageLength = 0; + loop_server->sendMessageLength = 0; + loop_server->canSend = true; + + loop_client->driverdata = (void *)loop_server; + loop_server->driverdata = (void *)loop_client; + + return loop_client; +} + + +qsocket_t *Loop_CheckNewConnections (void) +{ + if (!localconnectpending) + return NULL; + + localconnectpending = false; + loop_server->sendMessageLength = 0; + loop_server->receiveMessageLength = 0; + loop_server->canSend = true; + loop_client->sendMessageLength = 0; + loop_client->receiveMessageLength = 0; + loop_client->canSend = true; + return loop_server; +} + + +static int IntAlign(int value) +{ + return (value + (sizeof(int) - 1)) & (~(sizeof(int) - 1)); +} + + +int Loop_GetMessage (qsocket_t *sock) +{ + int ret; + int length; + + if (sock->receiveMessageLength == 0) + return 0; + + ret = sock->receiveMessage[0]; + length = sock->receiveMessage[1] + (sock->receiveMessage[2] << 8); + // alignment byte skipped here + SZ_Clear (&net_message); + SZ_Write (&net_message, &sock->receiveMessage[4], length); + + length = IntAlign(length + 4); + sock->receiveMessageLength -= length; + + if (sock->receiveMessageLength) + Q_memcpy(sock->receiveMessage, &sock->receiveMessage[length], sock->receiveMessageLength); + + if (sock->driverdata && ret == 1) + ((qsocket_t *)sock->driverdata)->canSend = true; + + return ret; +} + + +int Loop_SendMessage (qsocket_t *sock, sizebuf_t *data) +{ + byte *buffer; + int *bufferLength; + + if (!sock->driverdata) + return -1; + + bufferLength = &((qsocket_t *)sock->driverdata)->receiveMessageLength; + + if ((*bufferLength + data->cursize + 4) > NET_MAXMESSAGE) + Sys_Error("Loop_SendMessage: overflow\n"); + + buffer = ((qsocket_t *)sock->driverdata)->receiveMessage + *bufferLength; + + // message type + *buffer++ = 1; + + // length + *buffer++ = data->cursize & 0xff; + *buffer++ = data->cursize >> 8; + + // align + buffer++; + + // message + Q_memcpy(buffer, data->data, data->cursize); + *bufferLength = IntAlign(*bufferLength + data->cursize + 4); + + sock->canSend = false; + return 1; +} + + +int Loop_SendUnreliableMessage (qsocket_t *sock, sizebuf_t *data) +{ + byte *buffer; + int *bufferLength; + + if (!sock->driverdata) + return -1; + + bufferLength = &((qsocket_t *)sock->driverdata)->receiveMessageLength; + + if ((*bufferLength + data->cursize + sizeof(byte) + sizeof(short)) > NET_MAXMESSAGE) + return 0; + + buffer = ((qsocket_t *)sock->driverdata)->receiveMessage + *bufferLength; + + // message type + *buffer++ = 2; + + // length + *buffer++ = data->cursize & 0xff; + *buffer++ = data->cursize >> 8; + + // align + buffer++; + + // message + Q_memcpy(buffer, data->data, data->cursize); + *bufferLength = IntAlign(*bufferLength + data->cursize + 4); + return 1; +} + + +qboolean Loop_CanSendMessage (qsocket_t *sock) +{ + if (!sock->driverdata) + return false; + return sock->canSend; +} + + +qboolean Loop_CanSendUnreliableMessage (qsocket_t *sock) +{ + return true; +} + + +void Loop_Close (qsocket_t *sock) +{ + if (sock->driverdata) + ((qsocket_t *)sock->driverdata)->driverdata = NULL; + sock->receiveMessageLength = 0; + sock->sendMessageLength = 0; + sock->canSend = true; + if (sock == loop_client) + loop_client = NULL; + else + loop_server = NULL; +} diff --git a/quakespasm/Quake/net_loop.h b/quakespasm/Quake/net_loop.h new file mode 100644 index 00000000..cfd9f860 --- /dev/null +++ b/quakespasm/Quake/net_loop.h @@ -0,0 +1,34 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// net_loop.h + +int Loop_Init (void); +void Loop_Listen (qboolean state); +void Loop_SearchForHosts (qboolean xmit); +qsocket_t *Loop_Connect (char *host); +qsocket_t *Loop_CheckNewConnections (void); +int Loop_GetMessage (qsocket_t *sock); +int Loop_SendMessage (qsocket_t *sock, sizebuf_t *data); +int Loop_SendUnreliableMessage (qsocket_t *sock, sizebuf_t *data); +qboolean Loop_CanSendMessage (qsocket_t *sock); +qboolean Loop_CanSendUnreliableMessage (qsocket_t *sock); +void Loop_Close (qsocket_t *sock); +void Loop_Shutdown (void); diff --git a/quakespasm/Quake/net_main.c b/quakespasm/Quake/net_main.c new file mode 100644 index 00000000..f8e15d05 --- /dev/null +++ b/quakespasm/Quake/net_main.c @@ -0,0 +1,865 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// net_main.c + +#include "quakedef.h" + +qsocket_t *net_activeSockets = NULL; +qsocket_t *net_freeSockets = NULL; +int net_numsockets = 0; + +qboolean serialAvailable = false; +qboolean ipxAvailable = false; +qboolean tcpipAvailable = false; + +int net_hostport; +int DEFAULTnet_hostport = 26000; + +char my_ipx_address[NET_NAMELEN]; +char my_tcpip_address[NET_NAMELEN]; + +void (*GetComPortConfig) (int portNumber, int *port, int *irq, int *baud, qboolean *useModem); +void (*SetComPortConfig) (int portNumber, int port, int irq, int baud, qboolean useModem); +void (*GetModemConfig) (int portNumber, char *dialType, char *clear, char *init, char *hangup); +void (*SetModemConfig) (int portNumber, char *dialType, char *clear, char *init, char *hangup); + +static qboolean listening = false; + +qboolean slistInProgress = false; +qboolean slistSilent = false; +qboolean slistLocal = true; +static double slistStartTime; +static int slistLastShown; + +static void Slist_Send(void); +static void Slist_Poll(void); +PollProcedure slistSendProcedure = {NULL, 0.0, Slist_Send}; +PollProcedure slistPollProcedure = {NULL, 0.0, Slist_Poll}; + + +sizebuf_t net_message; +int net_activeconnections = 0; + +int messagesSent = 0; +int messagesReceived = 0; +int unreliableMessagesSent = 0; +int unreliableMessagesReceived = 0; + +cvar_t net_messagetimeout = {"net_messagetimeout","300"}; +cvar_t hostname = {"hostname", "UNNAMED"}; + +qboolean configRestored = false; +cvar_t config_com_port = {"_config_com_port", "0x3f8", true}; +cvar_t config_com_irq = {"_config_com_irq", "4", true}; +cvar_t config_com_baud = {"_config_com_baud", "57600", true}; +cvar_t config_com_modem = {"_config_com_modem", "1", true}; +cvar_t config_modem_dialtype = {"_config_modem_dialtype", "T", true}; +cvar_t config_modem_clear = {"_config_modem_clear", "ATZ", true}; +cvar_t config_modem_init = {"_config_modem_init", "", true}; +cvar_t config_modem_hangup = {"_config_modem_hangup", "AT H", true}; + +// these two macros are to make the code more readable +#define sfunc net_drivers[sock->driver] +#define dfunc net_drivers[net_driverlevel] + +int net_driverlevel; + + +double net_time; + +double SetNetTime(void) +{ + net_time = Sys_FloatTime(); + return net_time; +} + + +/* +=================== +NET_NewQSocket + +Called by drivers when a new communications endpoint is required +The sequence and buffer fields will be filled in properly +=================== +*/ +qsocket_t *NET_NewQSocket (void) +{ + qsocket_t *sock; + + if (net_freeSockets == NULL) + return NULL; + + if (net_activeconnections >= svs.maxclients) + return NULL; + + // get one from free list + sock = net_freeSockets; + net_freeSockets = sock->next; + + // add it to active list + sock->next = net_activeSockets; + net_activeSockets = sock; + + sock->disconnected = false; + sock->connecttime = net_time; + Q_strcpy (sock->address,"UNSET ADDRESS"); + sock->driver = net_driverlevel; + sock->socket = 0; + sock->driverdata = NULL; + sock->canSend = true; + sock->sendNext = false; + sock->lastMessageTime = net_time; + sock->ackSequence = 0; + sock->sendSequence = 0; + sock->unreliableSendSequence = 0; + sock->sendMessageLength = 0; + sock->receiveSequence = 0; + sock->unreliableReceiveSequence = 0; + sock->receiveMessageLength = 0; + + return sock; +} + + +void NET_FreeQSocket(qsocket_t *sock) +{ + qsocket_t *s; + + // remove it from active list + if (sock == net_activeSockets) + net_activeSockets = net_activeSockets->next; + else + { + for (s = net_activeSockets; s; s = s->next) + if (s->next == sock) + { + s->next = sock->next; + break; + } + if (!s) + Sys_Error ("NET_FreeQSocket: not active\n"); + } + + // add it to free list + sock->next = net_freeSockets; + net_freeSockets = sock; + sock->disconnected = true; +} + + +static void NET_Listen_f (void) +{ + if (Cmd_Argc () != 2) + { + Con_Printf ("\"listen\" is \"%u\"\n", listening ? 1 : 0); + return; + } + + listening = Q_atoi(Cmd_Argv(1)) ? true : false; + + for (net_driverlevel=0 ; net_driverlevel svs.maxclientslimit) + { + n = svs.maxclientslimit; + Con_Printf ("\"maxplayers\" set to \"%u\"\n", n); + } + + if ((n == 1) && listening) + Cbuf_AddText ("listen 0\n"); + + if ((n > 1) && (!listening)) + Cbuf_AddText ("listen 1\n"); + + svs.maxclients = n; + if (n == 1) + Cvar_Set ("deathmatch", "0"); + else + Cvar_Set ("deathmatch", "1"); +} + + +static void NET_Port_f (void) +{ + int n; + + if (Cmd_Argc () != 2) + { + Con_Printf ("\"port\" is \"%u\"\n", net_hostport); + return; + } + + n = Q_atoi(Cmd_Argv(1)); + if (n < 1 || n > 65534) + { + Con_Printf ("Bad value, must be between 1 and 65534\n"); + return; + } + + DEFAULTnet_hostport = n; + net_hostport = n; + + if (listening) + { + // force a change to the new port + Cbuf_AddText ("listen 0\n"); + Cbuf_AddText ("listen 1\n"); + } +} + + +static void PrintSlistHeader(void) +{ + Con_Printf("Server Map Users\n"); + Con_Printf("--------------- --------------- -----\n"); + slistLastShown = 0; +} + + +static void PrintSlist(void) +{ + int n; + + for (n = slistLastShown; n < hostCacheCount; n++) + { + if (hostcache[n].maxusers) + Con_Printf("%-15.15s %-15.15s %2u/%2u\n", hostcache[n].name, hostcache[n].map, hostcache[n].users, hostcache[n].maxusers); + else + Con_Printf("%-15.15s %-15.15s\n", hostcache[n].name, hostcache[n].map); + } + slistLastShown = n; +} + + +static void PrintSlistTrailer(void) +{ + if (hostCacheCount) + Con_Printf("== end list ==\n\n"); + else + Con_Printf("No Quake servers found.\n\n"); +} + + +void NET_Slist_f (void) +{ + if (slistInProgress) + return; + + if (! slistSilent) + { + Con_Printf("Looking for Quake servers...\n"); + PrintSlistHeader(); + } + + slistInProgress = true; + slistStartTime = Sys_FloatTime(); + + SchedulePollProcedure(&slistSendProcedure, 0.0); + SchedulePollProcedure(&slistPollProcedure, 0.1); + + hostCacheCount = 0; +} + + +static void Slist_Send(void) +{ + for (net_driverlevel=0; net_driverlevel < net_numdrivers; net_driverlevel++) + { + if (!slistLocal && net_driverlevel == 0) + continue; + if (net_drivers[net_driverlevel].initialized == false) + continue; + dfunc.SearchForHosts (true); + } + + if ((Sys_FloatTime() - slistStartTime) < 0.5) + SchedulePollProcedure(&slistSendProcedure, 0.75); +} + + +static void Slist_Poll(void) +{ + for (net_driverlevel=0; net_driverlevel < net_numdrivers; net_driverlevel++) + { + if (!slistLocal && net_driverlevel == 0) + continue; + if (net_drivers[net_driverlevel].initialized == false) + continue; + dfunc.SearchForHosts (false); + } + + if (! slistSilent) + PrintSlist(); + + if ((Sys_FloatTime() - slistStartTime) < 1.5) + { + SchedulePollProcedure(&slistPollProcedure, 0.1); + return; + } + + if (! slistSilent) + PrintSlistTrailer(); + slistInProgress = false; + slistSilent = false; + slistLocal = true; +} + + +/* +=================== +NET_Connect +=================== +*/ + +int hostCacheCount = 0; +hostcache_t hostcache[HOSTCACHESIZE]; + +qsocket_t *NET_Connect (char *host) +{ + qsocket_t *ret; + int n; + int numdrivers = net_numdrivers; + + SetNetTime(); + + if (host && *host == 0) + host = NULL; + + if (host) + { + if (Q_strcasecmp (host, "local") == 0) + { + numdrivers = 1; + goto JustDoIt; + } + + if (hostCacheCount) + { + for (n = 0; n < hostCacheCount; n++) + if (Q_strcasecmp (host, hostcache[n].name) == 0) + { + host = hostcache[n].cname; + break; + } + if (n < hostCacheCount) + goto JustDoIt; + } + } + + slistSilent = host ? true : false; + NET_Slist_f (); + + while(slistInProgress) + NET_Poll(); + + if (host == NULL) + { + if (hostCacheCount != 1) + return NULL; + host = hostcache[0].cname; + Con_Printf("Connecting to...\n%s @ %s\n\n", hostcache[0].name, host); + } + + if (hostCacheCount) + for (n = 0; n < hostCacheCount; n++) + if (Q_strcasecmp (host, hostcache[n].name) == 0) + { + host = hostcache[n].cname; + break; + } + +JustDoIt: + for (net_driverlevel=0 ; net_driverleveldisconnected) + return; + + SetNetTime(); + + // call the driver_Close function + sfunc.Close (sock); + + NET_FreeQSocket(sock); +} + + +/* +================= +NET_GetMessage + +If there is a complete message, return it in net_message + +returns 0 if no data is waiting +returns 1 if a message was received +returns -1 if connection is invalid +================= +*/ + +extern void PrintStats(qsocket_t *s); + +int NET_GetMessage (qsocket_t *sock) +{ + int ret; + + if (!sock) + return -1; + + if (sock->disconnected) + { + Con_Printf("NET_GetMessage: disconnected socket\n"); + return -1; + } + + SetNetTime(); + + ret = sfunc.QGetMessage(sock); + + // see if this connection has timed out + if (ret == 0 && sock->driver) + { + if (net_time - sock->lastMessageTime > net_messagetimeout.value) + { + NET_Close(sock); + return -1; + } + } + + + if (ret > 0) + { + if (sock->driver) + { + sock->lastMessageTime = net_time; + if (ret == 1) + messagesReceived++; + else if (ret == 2) + unreliableMessagesReceived++; + } + } + + return ret; +} + + +/* +================== +NET_SendMessage + +Try to send a complete length+message unit over the reliable stream. +returns 0 if the message cannot be delivered reliably, but the connection + is still considered valid +returns 1 if the message was sent properly +returns -1 if the connection died +================== +*/ +int NET_SendMessage (qsocket_t *sock, sizebuf_t *data) +{ + int r; + + if (!sock) + return -1; + + if (sock->disconnected) + { + Con_Printf("NET_SendMessage: disconnected socket\n"); + return -1; + } + + SetNetTime(); + r = sfunc.QSendMessage(sock, data); + if (r == 1 && sock->driver) + messagesSent++; + + return r; +} + + +int NET_SendUnreliableMessage (qsocket_t *sock, sizebuf_t *data) +{ + int r; + + if (!sock) + return -1; + + if (sock->disconnected) + { + Con_Printf("NET_SendMessage: disconnected socket\n"); + return -1; + } + + SetNetTime(); + r = sfunc.SendUnreliableMessage(sock, data); + if (r == 1 && sock->driver) + unreliableMessagesSent++; + + return r; +} + + +/* +================== +NET_CanSendMessage + +Returns true or false if the given qsocket can currently accept a +message to be transmitted. +================== +*/ +qboolean NET_CanSendMessage (qsocket_t *sock) +{ + int r; + + if (!sock) + return false; + + if (sock->disconnected) + return false; + + SetNetTime(); + + r = sfunc.CanSendMessage(sock); + + return r; +} + + +int NET_SendToAll(sizebuf_t *data, int blocktime) +{ + double start; + int i; + int count = 0; + qboolean state1 [MAX_SCOREBOARD]; + qboolean state2 [MAX_SCOREBOARD]; + + for (i=0, host_client = svs.clients ; inetconnection) + continue; + if (host_client->active) + { + if (host_client->netconnection->driver == 0) + { + NET_SendMessage(host_client->netconnection, data); + state1[i] = true; + state2[i] = true; + continue; + } + count++; + state1[i] = false; + state2[i] = false; + } + else + { + state1[i] = true; + state2[i] = true; + } + } + + start = Sys_FloatTime(); + while (count) + { + count = 0; + for (i=0, host_client = svs.clients ; inetconnection)) + { + state1[i] = true; + NET_SendMessage(host_client->netconnection, data); + } + else + { + NET_GetMessage (host_client->netconnection); + } + count++; + continue; + } + + if (! state2[i]) + { + if (NET_CanSendMessage (host_client->netconnection)) + { + state2[i] = true; + } + else + { + NET_GetMessage (host_client->netconnection); + } + count++; + continue; + } + } + if ((Sys_FloatTime() - start) > blocktime) + break; + } + return count; +} + + +//============================================================================= + +/* +==================== +NET_Init +==================== +*/ + +void NET_Init (void) +{ + int i; + int controlSocket; + qsocket_t *s; + + i = COM_CheckParm ("-port"); + if (!i) + i = COM_CheckParm ("-udpport"); + if (!i) + i = COM_CheckParm ("-ipxport"); + + if (i) + { + if (i < com_argc-1) + DEFAULTnet_hostport = Q_atoi (com_argv[i+1]); + else + Sys_Error ("NET_Init: you must specify a number after -port"); + } + net_hostport = DEFAULTnet_hostport; + + if (COM_CheckParm("-listen") || cls.state == ca_dedicated) + listening = true; + net_numsockets = svs.maxclientslimit; + if (cls.state != ca_dedicated) + net_numsockets++; + + SetNetTime(); + + for (i = 0; i < net_numsockets; i++) + { + s = (qsocket_t *)Hunk_AllocName(sizeof(qsocket_t), "qsocket"); + s->next = net_freeSockets; + net_freeSockets = s; + s->disconnected = true; + } + + // allocate space for network message buffer + SZ_Alloc (&net_message, NET_MAXMESSAGE); + + Cvar_RegisterVariable (&net_messagetimeout, NULL); + Cvar_RegisterVariable (&hostname, NULL); + Cvar_RegisterVariable (&config_com_port, NULL); + Cvar_RegisterVariable (&config_com_irq, NULL); + Cvar_RegisterVariable (&config_com_baud, NULL); + Cvar_RegisterVariable (&config_com_modem, NULL); + Cvar_RegisterVariable (&config_modem_dialtype, NULL); + Cvar_RegisterVariable (&config_modem_clear, NULL); + Cvar_RegisterVariable (&config_modem_init, NULL); + Cvar_RegisterVariable (&config_modem_hangup, NULL); + + Cmd_AddCommand ("slist", NET_Slist_f); + Cmd_AddCommand ("listen", NET_Listen_f); + Cmd_AddCommand ("maxplayers", MaxPlayers_f); + Cmd_AddCommand ("port", NET_Port_f); + + // initialize all the drivers + for (net_driverlevel=0 ; net_driverlevelnext) + NET_Close(sock); + +// +// shutdown the drivers +// + for (net_driverlevel = 0; net_driverlevel < net_numdrivers; net_driverlevel++) + { + if (net_drivers[net_driverlevel].initialized == true) + { + net_drivers[net_driverlevel].Shutdown (); + net_drivers[net_driverlevel].initialized = false; + } + } +} + + +static PollProcedure *pollProcedureList = NULL; + +void NET_Poll(void) +{ + PollProcedure *pp; + qboolean useModem; + + if (!configRestored) + { + if (serialAvailable) + { + if (config_com_modem.value == 1.0) + useModem = true; + else + useModem = false; + SetComPortConfig (0, (int)config_com_port.value, (int)config_com_irq.value, (int)config_com_baud.value, useModem); + SetModemConfig (0, config_modem_dialtype.string, config_modem_clear.string, config_modem_init.string, config_modem_hangup.string); + } + configRestored = true; + } + + SetNetTime(); + + for (pp = pollProcedureList; pp; pp = pp->next) + { + if (pp->nextTime > net_time) + break; + pollProcedureList = pp->next; + pp->procedure(pp->arg); + } +} + + +void SchedulePollProcedure(PollProcedure *proc, double timeOffset) +{ + PollProcedure *pp, *prev; + + proc->nextTime = Sys_FloatTime() + timeOffset; + for (pp = pollProcedureList, prev = NULL; pp; pp = pp->next) + { + if (pp->nextTime >= proc->nextTime) + break; + prev = pp; + } + + if (prev == NULL) + { + proc->next = pollProcedureList; + pollProcedureList = proc; + return; + } + + proc->next = pp; + prev->next = proc; +} diff --git a/quakespasm/Quake/net_sdl.c b/quakespasm/Quake/net_sdl.c new file mode 100644 index 00000000..91f712bc --- /dev/null +++ b/quakespasm/Quake/net_sdl.c @@ -0,0 +1,112 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" + +#include "net_loop.h" +#include "net_dgrm.h" +#include "net_sdlnet.h" + +net_driver_t net_drivers[MAX_NET_DRIVERS] = +{ + { + "Loopback", + false, + Loop_Init, + Loop_Listen, + Loop_SearchForHosts, + Loop_Connect, + Loop_CheckNewConnections, + Loop_GetMessage, + Loop_SendMessage, + Loop_SendUnreliableMessage, + Loop_CanSendMessage, + Loop_CanSendUnreliableMessage, + Loop_Close, + Loop_Shutdown + } + , + { + "Datagram", + false, + Datagram_Init, + Datagram_Listen, + Datagram_SearchForHosts, + Datagram_Connect, + Datagram_CheckNewConnections, + Datagram_GetMessage, + Datagram_SendMessage, + Datagram_SendUnreliableMessage, + Datagram_CanSendMessage, + Datagram_CanSendUnreliableMessage, + Datagram_Close, + Datagram_Shutdown + } + , + { + "Datagram", + false, + Datagram_Init, + Datagram_Listen, + Datagram_SearchForHosts, + Datagram_Connect, + Datagram_CheckNewConnections, + Datagram_GetMessage, + Datagram_SendMessage, + Datagram_SendUnreliableMessage, + Datagram_CanSendMessage, + Datagram_CanSendUnreliableMessage, + Datagram_Close, + Datagram_Shutdown + } +}; + +int net_numdrivers = 2; + + +net_landriver_t net_landrivers[MAX_NET_DRIVERS] = +{ + { + "UDP", + false, + 0, + SDLN_Init, + SDLN_Shutdown, + SDLN_Listen, + SDLN_OpenSocket, + SDLN_CloseSocket, + SDLN_Connect, + SDLN_CheckNewConnections, + SDLN_Read, + SDLN_Write, + SDLN_Broadcast, + SDLN_AddrToString, + SDLN_StringToAddr, + SDLN_GetSocketAddr, + SDLN_GetNameFromAddr, + SDLN_GetAddrFromName, + SDLN_AddrCompare, + SDLN_GetSocketPort, + SDLN_SetSocketPort + } +}; + +int net_numlandrivers = 1; diff --git a/quakespasm/Quake/net_sdlnet.c b/quakespasm/Quake/net_sdlnet.c new file mode 100644 index 00000000..14dcb416 --- /dev/null +++ b/quakespasm/Quake/net_sdlnet.c @@ -0,0 +1,565 @@ +/* +Copyright (C) 1996-1997 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 +Foundat(&addr->sa_dataion, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "quakedef.h" + +#if defined(_WIN32) +#include +#endif + +#if defined(LINUX) +#include +#else +#include +#endif + +#include "net_sdlnet.h" + +#define MAX_SOCKETS 32 +#define MAXHOSTNAMELEN 255 +#define AF_INET 2 /* internet */ + +static int net_controlsocket; +static int net_broadcastsocket = 0; +static int net_acceptsocket = -1; +static struct qsockaddr broadcastaddr; + +SDLNet_SocketSet acceptsocket_set; + +IPaddress myaddr; + +// contains a map of socket numbers to SDL_net UDP sockets +UDPsocket net_sockets[MAX_SOCKETS]; + +int socket_id(UDPsocket socket) +{ + int i; + int index = -1; + + for (i = 0; i < MAX_SOCKETS; i++) + { + if (net_sockets[i] == socket) + return i; + + if (net_sockets[i] == NULL && index == -1) + { + index = i; + break; + } + } + + if (index == -1) + { + // todo error + } + + net_sockets[index] = socket; + + return index; +} + +char *_AddrToString (int ip, int port) +{ + static char buffer[22]; + + sprintf(buffer, "%d.%d.%d.%d:%d", (ip >> 24) & 0xff, (ip >> 16) & 0xff, (ip >> 8) & 0xff, ip & 0xff, port); + return buffer; +} + +char *_IPAddrToString (IPaddress *address) +{ + int ip; + int port; + + ip = SDLNet_Read32(&address->host); + port = SDLNet_Read16(&address->port); + + return _AddrToString(ip, port); +} + +int SDLN_Init (void) +{ + int i; + char buff[MAXHOSTNAMELEN]; + char *p; + IPaddress *ipaddress; + + // init SDL + if (SDLNet_Init() == -1) + { + Con_SafePrintf ("SDL_net initialization failed.\n"); + return -1; + } + + // allocate a socket set for the accept socket + acceptsocket_set = SDLNet_AllocSocketSet(1); + if (acceptsocket_set == NULL) + { + Con_DPrintf ("SDL_net initialization failed: Could not create socket set.\n"); + return -1; + } + + // determine my name + if (gethostname(buff, MAXHOSTNAMELEN) == -1) + { + Con_DPrintf ("SDL_net initialization failed: Could not determine host name.\n"); + return -1; + } + + // if the quake hostname isn't set, set it to the machine name + if (Q_strcmp(hostname.string, "UNNAMED") == 0) + { + // see if it's a text IP address (well, close enough) + for (p = buff; *p; p++) + if ((*p < '0' || *p > '9') && *p != '.') + break; + + // if it is a real name, strip off the domain; we only want the host + if (*p) + { + for (i = 0; i < 15; i++) + if (buff[i] == '.') + break; + buff[i] = 0; + } + Cvar_Set ("hostname", buff); + } + + // set my IP address + i = COM_CheckParm ("-ip"); + if (i) + { + if (i < com_argc-1) + { + SDLNet_ResolveHost(&myaddr, com_argv[i+1], 0); + if (myaddr.host == INADDR_NONE) + Sys_Error ("%s is not a valid IP address", com_argv[i+1]); + strcpy(my_tcpip_address, com_argv[i+1]); + } + else + { + Sys_Error ("NET_Init: you must specify an IP address after -ip"); + } + } + else + { + SDLNet_ResolveHost(&myaddr, NULL, 0); + strcpy(my_tcpip_address, "INADDR_ANY"); + } + + // open the control socket + if ((net_controlsocket = SDLN_OpenSocket (0)) == -1) + { + Con_Printf("SDLN_Init: Unable to open control socket\n"); + return -1; + } + + broadcastaddr.sa_family = AF_INET; + ipaddress = (IPaddress *)&(broadcastaddr.sa_data); + SDLNet_Write32(INADDR_BROADCAST, &ipaddress->host); + SDLNet_Write16(net_hostport, &ipaddress->port); + + Con_Printf("SDL_net TCP/IP initialized\n"); + tcpipAvailable = true; + + return net_controlsocket; +} + +void SDLN_Shutdown (void) +{ + SDLN_Listen (false); + SDLN_CloseSocket (net_controlsocket); +} + +void SDLN_GetLocalAddress() +{ + if (myaddr.host != INADDR_ANY) + return; + + SDLNet_ResolveHost(&myaddr, NULL, 0); +} + +void SDLN_Listen (qboolean state) +{ + // enable listening + if (state) + { + if (net_acceptsocket != -1) + return; + + SDLN_GetLocalAddress(); + if ((net_acceptsocket = SDLN_OpenSocket (net_hostport)) == -1) + Sys_Error ("SDLN_Listen: Unable to open accept socket\n"); + + SDLNet_UDP_AddSocket(acceptsocket_set, net_sockets[net_acceptsocket]); + } + else + { + // disable listening + if (net_acceptsocket == -1) + return; + + SDLNet_UDP_DelSocket(acceptsocket_set, net_sockets[net_acceptsocket]); + SDLN_CloseSocket(net_acceptsocket); + + net_acceptsocket = -1; + } +} + +int SDLN_OpenSocket (int port) +{ + + UDPsocket newsocket; + static IPaddress address; + + if ((newsocket = SDLNet_UDP_Open(port)) == NULL) + return -1; + +// todo check what this does +// if (pioctlsocket (newsocket, FIONBIO, &_true) == -1) +// goto ErrorReturn; + + address.host = myaddr.host; + address.port = SDLNet_Read16(&port); + + if (SDLNet_UDP_Bind(newsocket, 0, &address) != -1) + return socket_id(newsocket); + + Sys_Error ("Unable to bind to %s", _IPAddrToString(&address)); + + SDLNet_UDP_Close(newsocket); + return -1; +} + +int SDLN_CloseSocket (int socketid) +{ + UDPsocket socket; + + if (socketid == net_broadcastsocket) + net_broadcastsocket = -1; + + socket = net_sockets[socketid]; + + if (socket == NULL) + return -1; + + SDLNet_UDP_Close(socket); + + net_sockets[socketid] = NULL; + return 0; +} + +int SDLN_Connect (int socket, struct qsockaddr *addr) +{ + return 0; +} + +int SDLN_CheckNewConnections (void) +{ + if (net_acceptsocket == -1) + return -1; + + if (SDLNet_CheckSockets(acceptsocket_set, 0) > 0) + return net_acceptsocket; + + return -1; +} + +UDPpacket *init_packet(UDPpacket *packet, int len) +{ + if (packet == NULL) + return SDLNet_AllocPacket(len); + + if (packet->maxlen < len) + SDLNet_ResizePacket(packet, len); + + return packet; +} + +int SDLN_Read (int socketid, byte *buf, int len, struct qsockaddr *addr) +{ + int numrecv; + static UDPpacket *packet; + IPaddress *ipaddress; + + UDPsocket socket = net_sockets[socketid]; + if (socket == NULL) + return -1; + + packet = init_packet(packet, len); + + numrecv = SDLNet_UDP_Recv(socket, packet); + if (numrecv == 1) + { + memcpy(buf, packet->data, packet->len); + + addr->sa_family = AF_INET; + ipaddress = (IPaddress *)&(addr->sa_data); + ipaddress->host = packet->address.host; + ipaddress->port = packet->address.port; + + return packet->len; + } + + return numrecv; + +} + +int SDLN_Write (int socketid, byte *buf, int len, struct qsockaddr *addr) +{ + int numsent; + static UDPpacket *packet; + UDPsocket socket; + IPaddress *ipaddress; + + socket = net_sockets[socketid]; + + if (socket == NULL) + return -1; + + packet = init_packet(packet, len); + memcpy(packet->data, buf, len); + packet->len = len; + + ipaddress = (IPaddress *)&(addr->sa_data); + packet->address.host = ipaddress->host; + packet->address.port = ipaddress->port; + + numsent = SDLNet_UDP_Send(socket, -1, packet); + if (numsent == 0) + return 0; + + return len; +} + +int SDLN_Broadcast (int socketid, byte *buf, int len) +{ + + if (socketid != net_broadcastsocket) + { + if (net_broadcastsocket != 0) + Sys_Error("Attempted to use multiple broadcast sockets\n"); + + // todo make socket broadcast capable + Sys_Error("Unable to make socket broadcast capable\n"); + } + + return SDLN_Write(socketid, buf, len, &broadcastaddr); +} + +char *SDLN_AddrToString (struct qsockaddr *addr) +{ + int ip; + int port; + IPaddress *ipaddress; + + ipaddress = (IPaddress *)&(addr->sa_data); + + ip = SDLNet_Read32(&ipaddress->host); + port = SDLNet_Read16(&ipaddress->port); + + return _AddrToString(ip, port); +} + +int SDLN_StringToAddr (char *string, struct qsockaddr *addr) +{ + int ha1, ha2, ha3, ha4, hp; + int hostaddr; + IPaddress *ipaddress; + + sscanf(string, "%d.%d.%d.%d:%d", &ha1, &ha2, &ha3, &ha4, &hp); + hostaddr = (ha1 << 24) | (ha2 << 16) | (ha3 << 8) | ha4; + + addr->sa_family = AF_INET; + ipaddress = (IPaddress *)&(addr->sa_data); + + SDLNet_Write32(hostaddr, &ipaddress->host); + SDLNet_Write16(hp, &ipaddress->port); + + return 0; +} + +int SDLN_GetSocketAddr (int socketid, struct qsockaddr *addr) +{ + static UDPsocket socket; + IPaddress *peeraddress; + IPaddress *ipaddress; + + Q_memset(addr, 0, sizeof(struct qsockaddr)); + + socket = net_sockets[socketid]; + if (socket == NULL) + return -1; + + peeraddress = SDLNet_UDP_GetPeerAddress(socket, -1); + if (peeraddress == NULL) + return -1; + + addr->sa_family = AF_INET; + ipaddress = (IPaddress *)&(addr->sa_data); + if (peeraddress->host == 0 || peeraddress->host == inet_addr("127.0.0.1")) + { + ipaddress->host = myaddr.host; + ipaddress->port = myaddr.port; + } + else + { + ipaddress->host = peeraddress->host; + ipaddress->port = peeraddress->port; + } + + return 0; +} + +int SDLN_GetNameFromAddr (struct qsockaddr *addr, char *name) +{ + char *buf; + IPaddress *ipaddress; + + ipaddress = (IPaddress *)&(addr->sa_data); + + buf = (char *)SDLNet_ResolveIP(ipaddress); + if (buf != NULL) { + Q_strncpy(name, buf, NET_NAMELEN - 1); + return 0; + } + + Q_strcpy(name, SDLN_AddrToString(addr)); + return 0; +} + +//============================================================================= +/* +============ +PartialIPAddress + +this lets you type only as much of the net address as required, using +the local network components to fill in the rest +============ +*/ +static int PartialIPAddress (char *in, struct qsockaddr *hostaddr) +{ + char buff[256]; + char *b; + int addr; + int num; + int mask; + int tmp; + int run; + int port; + IPaddress *ipaddress; + + buff[0] = '.'; + b = buff; + strcpy(buff+1, in); + if (buff[1] == '.') + b++; + + addr = 0; + mask=-1; + while (*b == '.') + { + b++; + num = 0; + run = 0; + while (!( *b < '0' || *b > '9')) + { + num = num*10 + *b++ - '0'; + if (++run > 3) + return -1; + } + if ((*b < '0' || *b > '9') && *b != '.' && *b != ':' && *b != 0) + return -1; + if (num < 0 || num > 255) + return -1; + mask<<=8; + addr = (addr<<8) + num; + } + + if (*b++ == ':') + port = Q_atoi(b); + else + port = net_hostport; + + tmp = SDLNet_Read32(&myaddr.host); + tmp = (tmp & mask) | addr; + + hostaddr->sa_family = AF_INET; + ipaddress = (IPaddress *)&(hostaddr->sa_data); + + SDLNet_Write32(tmp, &ipaddress->host); + SDLNet_Write16(port, &ipaddress->port); + + return 0; +} + +int SDLN_GetAddrFromName (char *name, struct qsockaddr *addr) +{ + IPaddress *ipaddress; + + if (name[0] >= '0' && name[0] <= '9') + return PartialIPAddress (name, addr); + + ipaddress = (IPaddress *)&(addr->sa_data); + if (SDLNet_ResolveHost((IPaddress *)(&addr->sa_data), name, 26000) == -1) + return -1; + + addr->sa_family = AF_INET; + return 0; +} + +int SDLN_AddrCompare (struct qsockaddr *addr1, struct qsockaddr *addr2) +{ + IPaddress *ipaddr1; + IPaddress *ipaddr2; + + if (addr1->sa_family != addr2->sa_family) + return -1; + + ipaddr1 = (IPaddress *)&(addr1->sa_data); + ipaddr2 = (IPaddress *)&(addr2->sa_data); + + if (ipaddr1->host != ipaddr2->host) + return -1; + + if (ipaddr1->port != ipaddr2->port) + return 1; + + return 0; +} + +int SDLN_GetSocketPort (struct qsockaddr *addr) +{ + IPaddress *ipaddress; + + ipaddress = (IPaddress *)&(addr->sa_data); + return SDLNet_Read16(&ipaddress->port); +} + +int SDLN_SetSocketPort (struct qsockaddr *addr, int port) +{ + IPaddress *ipaddress; + + ipaddress = (IPaddress *)&(addr->sa_data); + SDLNet_Write16(port, &ipaddress->port); + + return 0; +} + diff --git a/quakespasm/Quake/net_sdlnet.h b/quakespasm/Quake/net_sdlnet.h new file mode 100644 index 00000000..948853a1 --- /dev/null +++ b/quakespasm/Quake/net_sdlnet.h @@ -0,0 +1,38 @@ +/* +Copyright (C) 1996-1997 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. + +*/ + +int SDLN_Init (void); +void SDLN_Shutdown (void); +void SDLN_Listen (qboolean state); +int SDLN_OpenSocket (int port); +int SDLN_CloseSocket (int socket); +int SDLN_Connect (int socket, struct qsockaddr *addr); +int SDLN_CheckNewConnections (void); +int SDLN_Read (int socket, byte *buf, int len, struct qsockaddr *addr); +int SDLN_Write (int socket, byte *buf, int len, struct qsockaddr *addr); +int SDLN_Broadcast (int socket, byte *buf, int len); +char *SDLN_AddrToString (struct qsockaddr *addr); +int SDLN_StringToAddr (char *string, struct qsockaddr *addr); +int SDLN_GetSocketAddr (int socket, struct qsockaddr *addr); +int SDLN_GetNameFromAddr (struct qsockaddr *addr, char *name); +int SDLN_GetAddrFromName (char *name, struct qsockaddr *addr); +int SDLN_AddrCompare (struct qsockaddr *addr1, struct qsockaddr *addr2); +int SDLN_GetSocketPort (struct qsockaddr *addr); +int SDLN_SetSocketPort (struct qsockaddr *addr, int port); diff --git a/quakespasm/Quake/net_udp.c b/quakespasm/Quake/net_udp.c new file mode 100644 index 00000000..6445dad7 --- /dev/null +++ b/quakespasm/Quake/net_udp.c @@ -0,0 +1,478 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __sun__ +#include +#endif + +#if defined(NeXT) +#include +#endif + +#if defined (__APPLE__) || defined (MACOSX) +#include +#endif /* __APPLE__ || MACOSX */ + +extern int gethostname (char *, int); +extern int close (int); + +extern cvar_t hostname; + +static int net_acceptsocket = -1; // socket for fielding new connections +static int net_controlsocket; +static int net_broadcastsocket = 0; +static struct qsockaddr broadcastaddr; + +static unsigned long myAddr; + +#include "net_udp.h" + +//============================================================================= + +int UDP_Init (void) +{ + struct hostent *local; + char buff[MAXHOSTNAMELEN]; + struct qsockaddr addr; + char *colon; + + if (COM_CheckParm ("-noudp")) + return -1; + + // determine my name & address +#if defined (__APPLE__) || defined (MACOSX) + + if (gethostname(buff, MAXHOSTNAMELEN) != 0) + { + Con_Printf ("UDP init failed. Disabling UDP...\n"); + return (-1); + } + + local = gethostbyname(buff); + if (local == NULL) + { + Con_Printf ("UDP init failed. Disabling UDP...\n"); + return (-1); + } + +#else + + gethostname(buff, MAXHOSTNAMELEN); + local = gethostbyname(buff); + +#endif /* __APPLE__ ||ÊMACOSX */ + + myAddr = *(int *)local->h_addr_list[0]; + + // if the quake hostname isn't set, set it to the machine name + if (Q_strcmp(hostname.string, "UNNAMED") == 0) + { + buff[15] = 0; + Cvar_Set ("hostname", buff); + } + + if ((net_controlsocket = UDP_OpenSocket (0)) == -1) + Sys_Error("UDP_Init: Unable to open control socket\n"); + + ((struct sockaddr_in *)&broadcastaddr)->sin_family = AF_INET; + ((struct sockaddr_in *)&broadcastaddr)->sin_addr.s_addr = INADDR_BROADCAST; + ((struct sockaddr_in *)&broadcastaddr)->sin_port = htons(net_hostport); + +#if defined (__APPLE__) || defined (MACOSX) + + if (UDP_GetSocketAddr (net_controlsocket, &addr) != 0) + { + Con_Printf ("UDP init failed. Disabling UDP...\n"); + return (-1); + } + +#else + + UDP_GetSocketAddr (net_controlsocket, &addr); + +#endif /* __APPLE__ || MACOSX */ + + Q_strcpy(my_tcpip_address, UDP_AddrToString (&addr)); + colon = Q_strrchr (my_tcpip_address, ':'); + if (colon) + *colon = 0; + + Con_Printf("UDP Initialized\n"); + tcpipAvailable = true; + + return net_controlsocket; +} + +//============================================================================= + +void UDP_Shutdown (void) +{ + UDP_Listen (false); + UDP_CloseSocket (net_controlsocket); +} + +//============================================================================= + +void UDP_Listen (qboolean state) +{ + // enable listening + if (state) + { + if (net_acceptsocket != -1) + return; + if ((net_acceptsocket = UDP_OpenSocket (net_hostport)) == -1) + Sys_Error ("UDP_Listen: Unable to open accept socket\n"); + return; + } + + // disable listening + if (net_acceptsocket == -1) + return; + UDP_CloseSocket (net_acceptsocket); + net_acceptsocket = -1; +} + +//============================================================================= + +int UDP_OpenSocket (int port) +{ + int newsocket; + struct sockaddr_in address; + qboolean _true = true; + + if ((newsocket = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) + return -1; + + if (ioctl (newsocket, FIONBIO, (char *)&_true) == -1) + goto ErrorReturn; + + address.sin_family = AF_INET; + address.sin_addr.s_addr = INADDR_ANY; + address.sin_port = htons(port); + if( bind (newsocket, (void *)&address, sizeof(address)) == -1) + goto ErrorReturn; + + return newsocket; + +ErrorReturn: + close (newsocket); + return -1; +} + +//============================================================================= + +int UDP_CloseSocket (int socket) +{ + if (socket == net_broadcastsocket) + net_broadcastsocket = 0; + return close (socket); +} + + +//============================================================================= +/* +============ +PartialIPAddress + +this lets you type only as much of the net address as required, using +the local network components to fill in the rest +============ +*/ +static int PartialIPAddress (char *in, struct qsockaddr *hostaddr) +{ + char buff[256]; + char *b; + int addr; + int num; + int mask; + int run; + int port; + + buff[0] = '.'; + b = buff; + strcpy(buff+1, in); + if (buff[1] == '.') + b++; + + addr = 0; + mask=-1; + while (*b == '.') + { + b++; + num = 0; + run = 0; + while (!( *b < '0' || *b > '9')) + { + num = num*10 + *b++ - '0'; + if (++run > 3) + return -1; + } + if ((*b < '0' || *b > '9') && *b != '.' && *b != ':' && *b != 0) + return -1; + if (num < 0 || num > 255) + return -1; + mask<<=8; + addr = (addr<<8) + num; + } + + if (*b++ == ':') + port = Q_atoi(b); + else + port = net_hostport; + + hostaddr->sa_family = AF_INET; + ((struct sockaddr_in *)hostaddr)->sin_port = htons((short)port); + ((struct sockaddr_in *)hostaddr)->sin_addr.s_addr = (myAddr & htonl(mask)) | htonl(addr); + + return 0; +} +//============================================================================= + +int UDP_Connect (int socket, struct qsockaddr *addr) +{ + return 0; +} + +//============================================================================= + +int UDP_CheckNewConnections (void) +{ + unsigned long available; + + if (net_acceptsocket == -1) + return -1; + + if (ioctl (net_acceptsocket, FIONREAD, &available) == -1) + Sys_Error ("UDP: ioctlsocket (FIONREAD) failed\n"); + if (available) + return net_acceptsocket; + return -1; +} + +//============================================================================= + +void get_qsockaddr(struct sockaddr *saddr, struct qsockaddr *qaddr) +{ + qaddr->sa_family = saddr->sa_family; + memcpy(&(qaddr->sa_data), &(saddr->sa_data), sizeof(qaddr->sa_data)); +} + +int UDP_Read (int socket, byte *buf, int len, struct qsockaddr *addr) +{ + static struct sockaddr saddr; + unsigned int addrlen = sizeof (struct sockaddr); + int ret; + + ret = recvfrom (socket, buf, len, 0, &saddr, &addrlen); + + if (ret == -1 && (errno == EWOULDBLOCK || errno == ECONNREFUSED)) + return 0; + + get_qsockaddr(&saddr, addr); + return ret; +} + +//============================================================================= + +int UDP_MakeSocketBroadcastCapable (int socket) +{ + int i = 1; + + // make this socket broadcast capable + if (setsockopt(socket, SOL_SOCKET, SO_BROADCAST, (char *)&i, sizeof(i)) < 0) + return -1; + net_broadcastsocket = socket; + + return 0; +} + +//============================================================================= + +int UDP_Broadcast (int socket, byte *buf, int len) +{ + int ret; + + if (socket != net_broadcastsocket) + { + if (net_broadcastsocket != 0) + Sys_Error("Attempted to use multiple broadcasts sockets\n"); + ret = UDP_MakeSocketBroadcastCapable (socket); + if (ret == -1) + { + Con_Printf("Unable to make socket broadcast capable\n"); + return ret; + } + } + + return UDP_Write (socket, buf, len, &broadcastaddr); +} + +//============================================================================= + +int UDP_Write (int socket, byte *buf, int len, struct qsockaddr *addr) +{ + int ret; + + ret = sendto (socket, buf, len, 0, (struct sockaddr *)addr, sizeof(struct qsockaddr)); + + if (ret == -1 && errno == EWOULDBLOCK) + return 0; + return ret; +} + +//============================================================================= + +char *UDP_AddrToString (struct qsockaddr *addr) +{ + static char buffer[22]; + int haddr; + + haddr = ntohl(((struct sockaddr_in *)addr)->sin_addr.s_addr); +#if defined (__APPLE__) || defined (MACOSX) + snprintf(buffer, 22, "%d.%d.%d.%d:%d", (haddr >> 24) & 0xff, (haddr >> 16) & 0xff, (haddr >> 8) & 0xff, haddr & 0xff, ntohs(((struct sockaddr_in *)addr)->sin_port)); +#else + sprintf(buffer, "%d.%d.%d.%d:%d", (haddr >> 24) & 0xff, (haddr >> 16) & 0xff, (haddr >> 8) & 0xff, haddr & 0xff, ntohs(((struct sockaddr_in *)addr)->sin_port)); +#endif /* __APPLE__ || MACOSX */ + return buffer; +} + +//============================================================================= + +int UDP_StringToAddr (char *string, struct qsockaddr *addr) +{ + int ha1, ha2, ha3, ha4, hp; + int ipaddr; + + sscanf(string, "%d.%d.%d.%d:%d", &ha1, &ha2, &ha3, &ha4, &hp); + ipaddr = (ha1 << 24) | (ha2 << 16) | (ha3 << 8) | ha4; + + addr->sa_family = AF_INET; + ((struct sockaddr_in *)addr)->sin_addr.s_addr = htonl(ipaddr); + ((struct sockaddr_in *)addr)->sin_port = htons(hp); + return 0; +} + +//============================================================================= + +int UDP_GetSocketAddr (int socket, struct qsockaddr *addr) +{ + unsigned int addrlen = sizeof(struct qsockaddr); + unsigned int a; + + Q_memset(addr, 0, sizeof(struct qsockaddr)); + +#if defined (__APPLE__) || defined (MACOSX) + + if (getsockname(socket, (struct sockaddr *)addr, &addrlen) != 0) + return (-1); + +#else + + getsockname(socket, (struct sockaddr *)addr, &addrlen); + +#endif /* __APPLE__ || MACOSX */ + + a = ((struct sockaddr_in *)addr)->sin_addr.s_addr; + if (a == 0 || a == inet_addr("127.0.0.1")) + ((struct sockaddr_in *)addr)->sin_addr.s_addr = myAddr; + + return 0; +} + +//============================================================================= + +int UDP_GetNameFromAddr (struct qsockaddr *addr, char *name) +{ + struct hostent *hostentry; + + hostentry = gethostbyaddr ((char *)&((struct sockaddr_in *)addr)->sin_addr, sizeof(struct in_addr), AF_INET); + if (hostentry) + { + Q_strncpy (name, (char *)hostentry->h_name, NET_NAMELEN - 1); + return 0; + } + + Q_strcpy (name, UDP_AddrToString (addr)); + return 0; +} + +//============================================================================= + +int UDP_GetAddrFromName(char *name, struct qsockaddr *addr) +{ + struct hostent *hostentry; + + if (name[0] >= '0' && name[0] <= '9') + return PartialIPAddress (name, addr); + + hostentry = gethostbyname (name); + if (!hostentry) + return -1; + + addr->sa_family = AF_INET; + ((struct sockaddr_in *)addr)->sin_port = htons(net_hostport); + ((struct sockaddr_in *)addr)->sin_addr.s_addr = *(int *)hostentry->h_addr_list[0]; + + return 0; +} + +//============================================================================= + +int UDP_AddrCompare (struct qsockaddr *addr1, struct qsockaddr *addr2) +{ + if (addr1->sa_family != addr2->sa_family) + return -1; + + if (((struct sockaddr_in *)addr1)->sin_addr.s_addr != ((struct sockaddr_in *)addr2)->sin_addr.s_addr) + return -1; + + if (((struct sockaddr_in *)addr1)->sin_port != ((struct sockaddr_in *)addr2)->sin_port) + return 1; + + return 0; +} + +//============================================================================= + +int UDP_GetSocketPort (struct qsockaddr *addr) +{ + return ntohs(((struct sockaddr_in *)addr)->sin_port); +} + + +int UDP_SetSocketPort (struct qsockaddr *addr, int port) +{ + ((struct sockaddr_in *)addr)->sin_port = htons(port); + return 0; +} + +//============================================================================= diff --git a/quakespasm/Quake/net_udp.h b/quakespasm/Quake/net_udp.h new file mode 100644 index 00000000..75303011 --- /dev/null +++ b/quakespasm/Quake/net_udp.h @@ -0,0 +1,39 @@ +/* +Copyright (C) 1996-1997 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. + +*/ +// net_udp.h + +int UDP_Init (void); +void UDP_Shutdown (void); +void UDP_Listen (qboolean state); +int UDP_OpenSocket (int port); +int UDP_CloseSocket (int socket); +int UDP_Connect (int socket, struct qsockaddr *addr); +int UDP_CheckNewConnections (void); +int UDP_Read (int socket, byte *buf, int len, struct qsockaddr *addr); +int UDP_Write (int socket, byte *buf, int len, struct qsockaddr *addr); +int UDP_Broadcast (int socket, byte *buf, int len); +char *UDP_AddrToString (struct qsockaddr *addr); +int UDP_StringToAddr (char *string, struct qsockaddr *addr); +int UDP_GetSocketAddr (int socket, struct qsockaddr *addr); +int UDP_GetNameFromAddr (struct qsockaddr *addr, char *name); +int UDP_GetAddrFromName (char *name, struct qsockaddr *addr); +int UDP_AddrCompare (struct qsockaddr *addr1, struct qsockaddr *addr2); +int UDP_GetSocketPort (struct qsockaddr *addr); +int UDP_SetSocketPort (struct qsockaddr *addr, int port); diff --git a/quakespasm/Quake/net_win.c b/quakespasm/Quake/net_win.c new file mode 100644 index 00000000..8b700109 --- /dev/null +++ b/quakespasm/Quake/net_win.c @@ -0,0 +1,121 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 "quakedef.h" + +#include "net_loop.h" +#include "net_dgrm.h" +#include "net_ser.h" + +net_driver_t net_drivers[MAX_NET_DRIVERS] = +{ + { + "Loopback", + false, + Loop_Init, + Loop_Listen, + Loop_SearchForHosts, + Loop_Connect, + Loop_CheckNewConnections, + Loop_GetMessage, + Loop_SendMessage, + Loop_SendUnreliableMessage, + Loop_CanSendMessage, + Loop_CanSendUnreliableMessage, + Loop_Close, + Loop_Shutdown + } + , + { + "Datagram", + false, + Datagram_Init, + Datagram_Listen, + Datagram_SearchForHosts, + Datagram_Connect, + Datagram_CheckNewConnections, + Datagram_GetMessage, + Datagram_SendMessage, + Datagram_SendUnreliableMessage, + Datagram_CanSendMessage, + Datagram_CanSendUnreliableMessage, + Datagram_Close, + Datagram_Shutdown + } +}; + +int net_numdrivers = 2; + + +#include "net_wins.h" +#include "net_wipx.h" + +net_landriver_t net_landrivers[MAX_NET_DRIVERS] = +{ + { + "Winsock TCPIP", + false, + 0, + WINS_Init, + WINS_Shutdown, + WINS_Listen, + WINS_OpenSocket, + WINS_CloseSocket, + WINS_Connect, + WINS_CheckNewConnections, + WINS_Read, + WINS_Write, + WINS_Broadcast, + WINS_AddrToString, + WINS_StringToAddr, + WINS_GetSocketAddr, + WINS_GetNameFromAddr, + WINS_GetAddrFromName, + WINS_AddrCompare, + WINS_GetSocketPort, + WINS_SetSocketPort + }, + { + "Winsock IPX", + false, + 0, + WIPX_Init, + WIPX_Shutdown, + WIPX_Listen, + WIPX_OpenSocket, + WIPX_CloseSocket, + WIPX_Connect, + WIPX_CheckNewConnections, + WIPX_Read, + WIPX_Write, + WIPX_Broadcast, + WIPX_AddrToString, + WIPX_StringToAddr, + WIPX_GetSocketAddr, + WIPX_GetNameFromAddr, + WIPX_GetAddrFromName, + WIPX_AddrCompare, + WIPX_GetSocketPort, + WIPX_SetSocketPort + } + +}; + +int net_numlandrivers = 2; diff --git a/quakespasm/Quake/net_wins.c b/quakespasm/Quake/net_wins.c new file mode 100644 index 00000000..bb2e8c8e --- /dev/null +++ b/quakespasm/Quake/net_wins.c @@ -0,0 +1,576 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// net_wins.c + +#include "quakedef.h" +#include "winquake.h" + +extern cvar_t hostname; + +#define MAXHOSTNAMELEN 256 + +static int net_acceptsocket = -1; // socket for fielding new connections +static int net_controlsocket; +static int net_broadcastsocket = 0; +static struct qsockaddr broadcastaddr; + +static unsigned long myAddr; + +qboolean winsock_lib_initialized; + +int (PASCAL FAR *pWSAStartup)(WORD wVersionRequired, LPWSADATA lpWSAData); +int (PASCAL FAR *pWSACleanup)(void); +int (PASCAL FAR *pWSAGetLastError)(void); +SOCKET (PASCAL FAR *psocket)(int af, int type, int protocol); +int (PASCAL FAR *pioctlsocket)(SOCKET s, long cmd, u_long FAR *argp); +int (PASCAL FAR *psetsockopt)(SOCKET s, int level, int optname, + const char FAR * optval, int optlen); +int (PASCAL FAR *precvfrom)(SOCKET s, char FAR * buf, int len, int flags, + struct sockaddr FAR *from, int FAR * fromlen); +int (PASCAL FAR *psendto)(SOCKET s, const char FAR * buf, int len, int flags, + const struct sockaddr FAR *to, int tolen); +int (PASCAL FAR *pclosesocket)(SOCKET s); +int (PASCAL FAR *pgethostname)(char FAR * name, int namelen); +struct hostent FAR * (PASCAL FAR *pgethostbyname)(const char FAR * name); +struct hostent FAR * (PASCAL FAR *pgethostbyaddr)(const char FAR * addr, + int len, int type); +int (PASCAL FAR *pgetsockname)(SOCKET s, struct sockaddr FAR *name, + int FAR * namelen); + +#include "net_wins.h" + +int winsock_initialized = 0; +WSADATA winsockdata; + +//============================================================================= + +static double blocktime; + +BOOL PASCAL FAR BlockingHook(void) +{ + MSG msg; + BOOL ret; + + if ((Sys_FloatTime() - blocktime) > 2.0) + { + WSACancelBlockingCall(); + return FALSE; + } + + /* get the next message, if any */ + ret = (BOOL) PeekMessage(&msg, NULL, 0, 0, PM_REMOVE); + + /* if we got one, process it */ + if (ret) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + /* TRUE if we got a message */ + return ret; +} + + +void WINS_GetLocalAddress() +{ + struct hostent *local = NULL; + char buff[MAXHOSTNAMELEN]; + unsigned long addr; + + if (myAddr != INADDR_ANY) + return; + + if (pgethostname(buff, MAXHOSTNAMELEN) == SOCKET_ERROR) + return; + + blocktime = Sys_FloatTime(); + WSASetBlockingHook(BlockingHook); + local = pgethostbyname(buff); + WSAUnhookBlockingHook(); + if (local == NULL) + return; + + myAddr = *(int *)local->h_addr_list[0]; + + addr = ntohl(myAddr); + sprintf(my_tcpip_address, "%d.%d.%d.%d", (addr >> 24) & 0xff, (addr >> 16) & 0xff, (addr >> 8) & 0xff, addr & 0xff); +} + + +int WINS_Init (void) +{ + int i; + char buff[MAXHOSTNAMELEN]; + char *p; + int r; + WORD wVersionRequested; + HINSTANCE hInst; + +// initialize the Winsock function vectors (we do this instead of statically linking +// so we can run on Win 3.1, where there isn't necessarily Winsock) + hInst = LoadLibrary("wsock32.dll"); + + if (hInst == NULL) + { + Con_SafePrintf ("Failed to load winsock.dll\n"); + winsock_lib_initialized = false; + return -1; + } + + winsock_lib_initialized = true; + + pWSAStartup = (void *)GetProcAddress(hInst, "WSAStartup"); + pWSACleanup = (void *)GetProcAddress(hInst, "WSACleanup"); + pWSAGetLastError = (void *)GetProcAddress(hInst, "WSAGetLastError"); + psocket = (void *)GetProcAddress(hInst, "socket"); + pioctlsocket = (void *)GetProcAddress(hInst, "ioctlsocket"); + psetsockopt = (void *)GetProcAddress(hInst, "setsockopt"); + precvfrom = (void *)GetProcAddress(hInst, "recvfrom"); + psendto = (void *)GetProcAddress(hInst, "sendto"); + pclosesocket = (void *)GetProcAddress(hInst, "closesocket"); + pgethostname = (void *)GetProcAddress(hInst, "gethostname"); + pgethostbyname = (void *)GetProcAddress(hInst, "gethostbyname"); + pgethostbyaddr = (void *)GetProcAddress(hInst, "gethostbyaddr"); + pgetsockname = (void *)GetProcAddress(hInst, "getsockname"); + + if (!pWSAStartup || !pWSACleanup || !pWSAGetLastError || + !psocket || !pioctlsocket || !psetsockopt || + !precvfrom || !psendto || !pclosesocket || + !pgethostname || !pgethostbyname || !pgethostbyaddr || + !pgetsockname) + { + Con_SafePrintf ("Couldn't GetProcAddress from winsock.dll\n"); + return -1; + } + + if (COM_CheckParm ("-noudp")) + return -1; + + if (winsock_initialized == 0) + { + wVersionRequested = MAKEWORD(1, 1); + + r = pWSAStartup (MAKEWORD(1, 1), &winsockdata); + + if (r) + { + Con_SafePrintf ("Winsock initialization failed.\n"); + return -1; + } + } + winsock_initialized++; + + // determine my name + if (pgethostname(buff, MAXHOSTNAMELEN) == SOCKET_ERROR) + { + Con_DPrintf ("Winsock TCP/IP Initialization failed.\n"); + if (--winsock_initialized == 0) + pWSACleanup (); + return -1; + } + + // if the quake hostname isn't set, set it to the machine name + if (Q_strcmp(hostname.string, "UNNAMED") == 0) + { + // see if it's a text IP address (well, close enough) + for (p = buff; *p; p++) + if ((*p < '0' || *p > '9') && *p != '.') + break; + + // if it is a real name, strip off the domain; we only want the host + if (*p) + { + for (i = 0; i < 15; i++) + if (buff[i] == '.') + break; + buff[i] = 0; + } + Cvar_Set ("hostname", buff); + } + + i = COM_CheckParm ("-ip"); + if (i) + { + if (i < com_argc-1) + { + myAddr = inet_addr(com_argv[i+1]); + if (myAddr == INADDR_NONE) + Sys_Error ("%s is not a valid IP address", com_argv[i+1]); + strcpy(my_tcpip_address, com_argv[i+1]); + } + else + { + Sys_Error ("NET_Init: you must specify an IP address after -ip"); + } + } + else + { + myAddr = INADDR_ANY; + strcpy(my_tcpip_address, "INADDR_ANY"); + } + + if ((net_controlsocket = WINS_OpenSocket (0)) == -1) + { + Con_Printf("WINS_Init: Unable to open control socket\n"); + if (--winsock_initialized == 0) + pWSACleanup (); + return -1; + } + + ((struct sockaddr_in *)&broadcastaddr)->sin_family = AF_INET; + ((struct sockaddr_in *)&broadcastaddr)->sin_addr.s_addr = INADDR_BROADCAST; + ((struct sockaddr_in *)&broadcastaddr)->sin_port = htons((unsigned short)net_hostport); + + Con_Printf("Winsock TCP/IP Initialized\n"); + tcpipAvailable = true; + + return net_controlsocket; +} + +//============================================================================= + +void WINS_Shutdown (void) +{ + WINS_Listen (false); + WINS_CloseSocket (net_controlsocket); + if (--winsock_initialized == 0) + pWSACleanup (); +} + +//============================================================================= + +void WINS_Listen (qboolean state) +{ + // enable listening + if (state) + { + if (net_acceptsocket != -1) + return; + WINS_GetLocalAddress(); + if ((net_acceptsocket = WINS_OpenSocket (net_hostport)) == -1) + Sys_Error ("WINS_Listen: Unable to open accept socket\n"); + return; + } + + // disable listening + if (net_acceptsocket == -1) + return; + WINS_CloseSocket (net_acceptsocket); + net_acceptsocket = -1; +} + +//============================================================================= + +int WINS_OpenSocket (int port) +{ + int newsocket; + struct sockaddr_in address; + u_long _true = 1; + + if ((newsocket = psocket (PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) + return -1; + + if (pioctlsocket (newsocket, FIONBIO, &_true) == -1) + goto ErrorReturn; + + address.sin_family = AF_INET; + address.sin_addr.s_addr = myAddr; + address.sin_port = htons((unsigned short)port); + if( bind (newsocket, (void *)&address, sizeof(address)) == 0) + return newsocket; + + Sys_Error ("Unable to bind to %s", WINS_AddrToString((struct qsockaddr *)&address)); +ErrorReturn: + pclosesocket (newsocket); + return -1; +} + +//============================================================================= + +int WINS_CloseSocket (int socket) +{ + if (socket == net_broadcastsocket) + net_broadcastsocket = 0; + return pclosesocket (socket); +} + + +//============================================================================= +/* +============ +PartialIPAddress + +this lets you type only as much of the net address as required, using +the local network components to fill in the rest +============ +*/ +static int PartialIPAddress (char *in, struct qsockaddr *hostaddr) +{ + char buff[256]; + char *b; + int addr; + int num; + int mask; + int run; + int port; + + buff[0] = '.'; + b = buff; + strcpy(buff+1, in); + if (buff[1] == '.') + b++; + + addr = 0; + mask=-1; + while (*b == '.') + { + b++; + num = 0; + run = 0; + while (!( *b < '0' || *b > '9')) + { + num = num*10 + *b++ - '0'; + if (++run > 3) + return -1; + } + if ((*b < '0' || *b > '9') && *b != '.' && *b != ':' && *b != 0) + return -1; + if (num < 0 || num > 255) + return -1; + mask<<=8; + addr = (addr<<8) + num; + } + + if (*b++ == ':') + port = Q_atoi(b); + else + port = net_hostport; + + hostaddr->sa_family = AF_INET; + ((struct sockaddr_in *)hostaddr)->sin_port = htons((short)port); + ((struct sockaddr_in *)hostaddr)->sin_addr.s_addr = (myAddr & htonl(mask)) | htonl(addr); + + return 0; +} +//============================================================================= + +int WINS_Connect (int socket, struct qsockaddr *addr) +{ + return 0; +} + +//============================================================================= + +int WINS_CheckNewConnections (void) +{ + char buf[4096]; + + if (net_acceptsocket == -1) + return -1; + + if (precvfrom (net_acceptsocket, buf, sizeof(buf), MSG_PEEK, NULL, NULL) > 0) + { + return net_acceptsocket; + } + return -1; +} + +//============================================================================= + +int WINS_Read (int socket, byte *buf, int len, struct qsockaddr *addr) +{ + int addrlen = sizeof (struct qsockaddr); + int ret; + + ret = precvfrom (socket, buf, len, 0, (struct sockaddr *)addr, &addrlen); + if (ret == -1) + { + int err = pWSAGetLastError(); + + if (err == WSAEWOULDBLOCK || err == WSAECONNREFUSED) + return 0; + + } + return ret; +} + +//============================================================================= + +int WINS_MakeSocketBroadcastCapable (int socket) +{ + int i = 1; + + // make this socket broadcast capable + if (psetsockopt(socket, SOL_SOCKET, SO_BROADCAST, (char *)&i, sizeof(i)) < 0) + return -1; + net_broadcastsocket = socket; + + return 0; +} + +//============================================================================= + +int WINS_Broadcast (int socket, byte *buf, int len) +{ + int ret; + + if (socket != net_broadcastsocket) + { + if (net_broadcastsocket != 0) + Sys_Error("Attempted to use multiple broadcasts sockets\n"); + WINS_GetLocalAddress(); + ret = WINS_MakeSocketBroadcastCapable (socket); + if (ret == -1) + { + Con_Printf("Unable to make socket broadcast capable\n"); + return ret; + } + } + + return WINS_Write (socket, buf, len, &broadcastaddr); +} + +//============================================================================= + +int WINS_Write (int socket, byte *buf, int len, struct qsockaddr *addr) +{ + int ret; + + ret = psendto (socket, buf, len, 0, (struct sockaddr *)addr, sizeof(struct qsockaddr)); + if (ret == -1) + if (pWSAGetLastError() == WSAEWOULDBLOCK) + return 0; + + return ret; +} + +//============================================================================= + +char *WINS_AddrToString (struct qsockaddr *addr) +{ + static char buffer[22]; + int haddr; + + haddr = ntohl(((struct sockaddr_in *)addr)->sin_addr.s_addr); + sprintf(buffer, "%d.%d.%d.%d:%d", (haddr >> 24) & 0xff, (haddr >> 16) & 0xff, (haddr >> 8) & 0xff, haddr & 0xff, ntohs(((struct sockaddr_in *)addr)->sin_port)); + return buffer; +} + +//============================================================================= + +int WINS_StringToAddr (char *string, struct qsockaddr *addr) +{ + int ha1, ha2, ha3, ha4, hp; + int ipaddr; + + sscanf(string, "%d.%d.%d.%d:%d", &ha1, &ha2, &ha3, &ha4, &hp); + ipaddr = (ha1 << 24) | (ha2 << 16) | (ha3 << 8) | ha4; + + addr->sa_family = AF_INET; + ((struct sockaddr_in *)addr)->sin_addr.s_addr = htonl(ipaddr); + ((struct sockaddr_in *)addr)->sin_port = htons((unsigned short)hp); + return 0; +} + +//============================================================================= + +int WINS_GetSocketAddr (int socket, struct qsockaddr *addr) +{ + int addrlen = sizeof(struct qsockaddr); + unsigned int a; + + Q_memset(addr, 0, sizeof(struct qsockaddr)); + pgetsockname(socket, (struct sockaddr *)addr, &addrlen); + a = ((struct sockaddr_in *)addr)->sin_addr.s_addr; + if (a == 0 || a == inet_addr("127.0.0.1")) + ((struct sockaddr_in *)addr)->sin_addr.s_addr = myAddr; + + return 0; +} + +//============================================================================= + +int WINS_GetNameFromAddr (struct qsockaddr *addr, char *name) +{ + struct hostent *hostentry; + + hostentry = pgethostbyaddr ((char *)&((struct sockaddr_in *)addr)->sin_addr, sizeof(struct in_addr), AF_INET); + if (hostentry) + { + Q_strncpy (name, (char *)hostentry->h_name, NET_NAMELEN - 1); + return 0; + } + + Q_strcpy (name, WINS_AddrToString (addr)); + return 0; +} + +//============================================================================= + +int WINS_GetAddrFromName(char *name, struct qsockaddr *addr) +{ + struct hostent *hostentry; + + if (name[0] >= '0' && name[0] <= '9') + return PartialIPAddress (name, addr); + + hostentry = pgethostbyname (name); + if (!hostentry) + return -1; + + addr->sa_family = AF_INET; + ((struct sockaddr_in *)addr)->sin_port = htons((unsigned short)net_hostport); + ((struct sockaddr_in *)addr)->sin_addr.s_addr = *(int *)hostentry->h_addr_list[0]; + + return 0; +} + +//============================================================================= + +int WINS_AddrCompare (struct qsockaddr *addr1, struct qsockaddr *addr2) +{ + if (addr1->sa_family != addr2->sa_family) + return -1; + + if (((struct sockaddr_in *)addr1)->sin_addr.s_addr != ((struct sockaddr_in *)addr2)->sin_addr.s_addr) + return -1; + + if (((struct sockaddr_in *)addr1)->sin_port != ((struct sockaddr_in *)addr2)->sin_port) + return 1; + + return 0; +} + +//============================================================================= + +int WINS_GetSocketPort (struct qsockaddr *addr) +{ + return ntohs(((struct sockaddr_in *)addr)->sin_port); +} + + +int WINS_SetSocketPort (struct qsockaddr *addr, int port) +{ + ((struct sockaddr_in *)addr)->sin_port = htons((unsigned short)port); + return 0; +} + +//============================================================================= diff --git a/quakespasm/Quake/net_wins.h b/quakespasm/Quake/net_wins.h new file mode 100644 index 00000000..09709184 --- /dev/null +++ b/quakespasm/Quake/net_wins.h @@ -0,0 +1,40 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// net_wins.h + +int WINS_Init (void); +void WINS_Shutdown (void); +void WINS_Listen (qboolean state); +int WINS_OpenSocket (int port); +int WINS_CloseSocket (int socket); +int WINS_Connect (int socket, struct qsockaddr *addr); +int WINS_CheckNewConnections (void); +int WINS_Read (int socket, byte *buf, int len, struct qsockaddr *addr); +int WINS_Write (int socket, byte *buf, int len, struct qsockaddr *addr); +int WINS_Broadcast (int socket, byte *buf, int len); +char *WINS_AddrToString (struct qsockaddr *addr); +int WINS_StringToAddr (char *string, struct qsockaddr *addr); +int WINS_GetSocketAddr (int socket, struct qsockaddr *addr); +int WINS_GetNameFromAddr (struct qsockaddr *addr, char *name); +int WINS_GetAddrFromName (char *name, struct qsockaddr *addr); +int WINS_AddrCompare (struct qsockaddr *addr1, struct qsockaddr *addr2); +int WINS_GetSocketPort (struct qsockaddr *addr); +int WINS_SetSocketPort (struct qsockaddr *addr, int port); diff --git a/quakespasm/Quake/pl_linux.c b/quakespasm/Quake/pl_linux.c new file mode 100644 index 00000000..86c02571 --- /dev/null +++ b/quakespasm/Quake/pl_linux.c @@ -0,0 +1,38 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" + +void PL_SetWindowIcon (void) +{ + // TODO: implement this +} + +void PL_VID_Shutdown (void) +{ +} + +void PL_ErrorDialog(char *text) +{ + // TODO: implement this properly + printf(text); +} diff --git a/quakespasm/Quake/pl_osx.m b/quakespasm/Quake/pl_osx.m new file mode 100644 index 00000000..81bf589c --- /dev/null +++ b/quakespasm/Quake/pl_osx.m @@ -0,0 +1,39 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" +#import + +void PL_SetWindowIcon (void) +{ + // nothing to do on OS X +} + +void PL_VID_Shutdown (void) +{ +} + +void PL_ErrorDialog(char *text) +{ + NSString *msg = [NSString stringWithCString:text encoding:NSASCIIStringEncoding]; + NSRunAlertPanel(nil, msg, nil, nil, nil); +} diff --git a/quakespasm/Quake/pl_win.c b/quakespasm/Quake/pl_win.c new file mode 100644 index 00000000..f866f464 --- /dev/null +++ b/quakespasm/Quake/pl_win.c @@ -0,0 +1,58 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" +#include +#include "SDL/SDL_syswm.h" + +HICON icon; + +void PL_SetWindowIcon (void) +{ + HINSTANCE handle; + SDL_SysWMinfo wminfo; + HWND hwnd; + + handle = GetModuleHandle(NULL); + icon = LoadIcon(handle, "icon"); + + if (!icon) + return; // no icon in executable + + SDL_VERSION(&wminfo.version); + + if (SDL_GetWMInfo(&wminfo) != 1) + return; // wrong SDL version + + hwnd = wminfo.window; + SetClassLong(hwnd, GCL_HICON, (LONG) icon); +} + +void PL_VID_Shutdown (void) +{ + DestroyIcon(icon); +} + +void PL_ErrorDialog(char *text) +{ + MessageBox(NULL, text, "Quake Error", MB_OK | MB_SETFOREGROUND | MB_ICONSTOP); +} diff --git a/quakespasm/Quake/platform.h b/quakespasm/Quake/platform.h new file mode 100644 index 00000000..6f40e77d --- /dev/null +++ b/quakespasm/Quake/platform.h @@ -0,0 +1,30 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ + +// platform dependent way to set the window icon +void PL_SetWindowIcon(void); + +// platform dependent cleanup +void PL_VID_Shutdown (void); + +// show an error dialog +void PL_ErrorDialog(char *text); diff --git a/quakespasm/Quake/pr_cmds.c b/quakespasm/Quake/pr_cmds.c new file mode 100644 index 00000000..b4a98a12 --- /dev/null +++ b/quakespasm/Quake/pr_cmds.c @@ -0,0 +1,1691 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 "quakedef.h" + +#define RETURN_EDICT(e) (((int *)pr_globals)[OFS_RETURN] = EDICT_TO_PROG(e)) + +/* +=============================================================================== + + BUILT-IN FUNCTIONS + +=============================================================================== +*/ + +char *PF_VarString (int first) +{ + int i; + static char out[256]; + + out[0] = 0; + for (i=first ; is_name,s); + ed = PROG_TO_EDICT(pr_global_struct->self); + ED_Print (ed); + + Host_Error ("Program error"); +} + +/* +================= +PF_objerror + +Dumps out self, then an error message. The program is aborted and self is +removed, but the level can continue. + +objerror(value) +================= +*/ +void PF_objerror (void) +{ + char *s; + edict_t *ed; + + s = PF_VarString(0); + Con_Printf ("======OBJECT ERROR in %s:\n%s\n" + ,pr_strings + pr_xfunction->s_name,s); + ed = PROG_TO_EDICT(pr_global_struct->self); + ED_Print (ed); + ED_Free (ed); + + //Host_Error ("Program error"); //johnfitz -- by design, this should not be fatal +} + + + +/* +============== +PF_makevectors + +Writes new values for v_forward, v_up, and v_right based on angles +makevectors(vector) +============== +*/ +void PF_makevectors (void) +{ + AngleVectors (G_VECTOR(OFS_PARM0), pr_global_struct->v_forward, pr_global_struct->v_right, pr_global_struct->v_up); +} + +/* +================= +PF_setorigin + +This is the only valid way to move an object without using the physics of the world (setting velocity and waiting). Directly changing origin will not set internal links correctly, so clipping would be messed up. This should be called when an object is spawned, and then only if it is teleported. + +setorigin (entity, origin) +================= +*/ +void PF_setorigin (void) +{ + edict_t *e; + float *org; + + e = G_EDICT(OFS_PARM0); + org = G_VECTOR(OFS_PARM1); + VectorCopy (org, e->v.origin); + SV_LinkEdict (e, false); +} + + +void SetMinMaxSize (edict_t *e, float *min, float *max, qboolean rotate) +{ + float *angles; + vec3_t rmin, rmax; + float bounds[2][3]; + float xvector[2], yvector[2]; + float a; + vec3_t base, transformed; + int i, j, k, l; + + for (i=0 ; i<3 ; i++) + if (min[i] > max[i]) + PR_RunError ("backwards mins/maxs"); + + rotate = false; // FIXME: implement rotation properly again + + if (!rotate) + { + VectorCopy (min, rmin); + VectorCopy (max, rmax); + } + else + { + // find min / max for rotations + angles = e->v.angles; + + a = angles[1]/180 * M_PI; + + xvector[0] = cos(a); + xvector[1] = sin(a); + yvector[0] = -sin(a); + yvector[1] = cos(a); + + VectorCopy (min, bounds[0]); + VectorCopy (max, bounds[1]); + + rmin[0] = rmin[1] = rmin[2] = 9999; + rmax[0] = rmax[1] = rmax[2] = -9999; + + for (i=0 ; i<= 1 ; i++) + { + base[0] = bounds[i][0]; + for (j=0 ; j<= 1 ; j++) + { + base[1] = bounds[j][1]; + for (k=0 ; k<= 1 ; k++) + { + base[2] = bounds[k][2]; + + // transform the point + transformed[0] = xvector[0]*base[0] + yvector[0]*base[1]; + transformed[1] = xvector[1]*base[0] + yvector[1]*base[1]; + transformed[2] = base[2]; + + for (l=0 ; l<3 ; l++) + { + if (transformed[l] < rmin[l]) + rmin[l] = transformed[l]; + if (transformed[l] > rmax[l]) + rmax[l] = transformed[l]; + } + } + } + } + } + +// set derived values + VectorCopy (rmin, e->v.mins); + VectorCopy (rmax, e->v.maxs); + VectorSubtract (max, min, e->v.size); + + SV_LinkEdict (e, false); +} + +/* +================= +PF_setsize + +the size box is rotated by the current angle + +setsize (entity, minvector, maxvector) +================= +*/ +void PF_setsize (void) +{ + edict_t *e; + float *min, *max; + + e = G_EDICT(OFS_PARM0); + min = G_VECTOR(OFS_PARM1); + max = G_VECTOR(OFS_PARM2); + SetMinMaxSize (e, min, max, false); +} + + +/* +================= +PF_setmodel + +setmodel(entity, model) +================= +*/ +void PF_setmodel (void) +{ + edict_t *e; + char *m, **check; + model_t *mod; + int i; + + e = G_EDICT(OFS_PARM0); + m = G_STRING(OFS_PARM1); + +// check to see if model was properly precached + for (i=0, check = sv.model_precache ; *check ; i++, check++) + if (!strcmp(*check, m)) + break; + + if (!*check) + PR_RunError ("no precache: %s\n", m); + + e->v.model = m - pr_strings; + e->v.modelindex = i; //SV_ModelIndex (m); + + mod = sv.models[ (int)e->v.modelindex]; // Mod_ForName (m, true); + + if (mod) + //johnfitz -- correct physics cullboxes for bmodels + { + if (mod->type == mod_brush) + SetMinMaxSize (e, mod->clipmins, mod->clipmaxs, true); + else + SetMinMaxSize (e, mod->mins, mod->maxs, true); + } + //johnfitz + else + SetMinMaxSize (e, vec3_origin, vec3_origin, true); +} + +/* +================= +PF_bprint + +broadcast print to everyone on server + +bprint(value) +================= +*/ +void PF_bprint (void) +{ + char *s; + + s = PF_VarString(0); + SV_BroadcastPrintf ("%s", s); +} + +/* +================= +PF_sprint + +single print to a specific client + +sprint(clientent, value) +================= +*/ +void PF_sprint (void) +{ + char *s; + client_t *client; + int entnum; + + entnum = G_EDICTNUM(OFS_PARM0); + s = PF_VarString(1); + + if (entnum < 1 || entnum > svs.maxclients) + { + Con_Printf ("tried to sprint to a non-client\n"); + return; + } + + client = &svs.clients[entnum-1]; + + MSG_WriteChar (&client->message,svc_print); + MSG_WriteString (&client->message, s ); +} + + +/* +================= +PF_centerprint + +single print to a specific client + +centerprint(clientent, value) +================= +*/ +void PF_centerprint (void) +{ + char *s; + client_t *client; + int entnum; + + entnum = G_EDICTNUM(OFS_PARM0); + s = PF_VarString(1); + + if (entnum < 1 || entnum > svs.maxclients) + { + Con_Printf ("tried to sprint to a non-client\n"); + return; + } + + client = &svs.clients[entnum-1]; + + MSG_WriteChar (&client->message,svc_centerprint); + MSG_WriteString (&client->message, s ); +} + + +/* +================= +PF_normalize + +vector normalize(vector) +================= +*/ +void PF_normalize (void) +{ + float *value1; + vec3_t newvalue; + float new; + + value1 = G_VECTOR(OFS_PARM0); + + new = value1[0] * value1[0] + value1[1] * value1[1] + value1[2]*value1[2]; + new = sqrt(new); + + if (new == 0) + newvalue[0] = newvalue[1] = newvalue[2] = 0; + else + { + new = 1/new; + newvalue[0] = value1[0] * new; + newvalue[1] = value1[1] * new; + newvalue[2] = value1[2] * new; + } + + VectorCopy (newvalue, G_VECTOR(OFS_RETURN)); +} + +/* +================= +PF_vlen + +scalar vlen(vector) +================= +*/ +void PF_vlen (void) +{ + float *value1; + float new; + + value1 = G_VECTOR(OFS_PARM0); + + new = value1[0] * value1[0] + value1[1] * value1[1] + value1[2]*value1[2]; + new = sqrt(new); + + G_FLOAT(OFS_RETURN) = new; +} + +/* +================= +PF_vectoyaw + +float vectoyaw(vector) +================= +*/ +void PF_vectoyaw (void) +{ + float *value1; + float yaw; + + value1 = G_VECTOR(OFS_PARM0); + + if (value1[1] == 0 && value1[0] == 0) + yaw = 0; + else + { + yaw = (int) (atan2(value1[1], value1[0]) * 180 / M_PI); + if (yaw < 0) + yaw += 360; + } + + G_FLOAT(OFS_RETURN) = yaw; +} + + +/* +================= +PF_vectoangles + +vector vectoangles(vector) +================= +*/ +void PF_vectoangles (void) +{ + float *value1; + float forward; + float yaw, pitch; + + value1 = G_VECTOR(OFS_PARM0); + + if (value1[1] == 0 && value1[0] == 0) + { + yaw = 0; + if (value1[2] > 0) + pitch = 90; + else + pitch = 270; + } + else + { + yaw = (int) (atan2(value1[1], value1[0]) * 180 / M_PI); + if (yaw < 0) + yaw += 360; + + forward = sqrt (value1[0]*value1[0] + value1[1]*value1[1]); + pitch = (int) (atan2(value1[2], forward) * 180 / M_PI); + if (pitch < 0) + pitch += 360; + } + + G_FLOAT(OFS_RETURN+0) = pitch; + G_FLOAT(OFS_RETURN+1) = yaw; + G_FLOAT(OFS_RETURN+2) = 0; +} + +/* +================= +PF_Random + +Returns a number from 0<= num < 1 + +random() +================= +*/ +void PF_random (void) +{ + float num; + + num = (rand ()&0x7fff) / ((float)0x7fff); + + G_FLOAT(OFS_RETURN) = num; +} + +/* +================= +PF_particle + +particle(origin, color, count) +================= +*/ +void PF_particle (void) +{ + float *org, *dir; + float color; + float count; + + org = G_VECTOR(OFS_PARM0); + dir = G_VECTOR(OFS_PARM1); + color = G_FLOAT(OFS_PARM2); + count = G_FLOAT(OFS_PARM3); + SV_StartParticle (org, dir, color, count); +} + + +/* +================= +PF_ambientsound + +================= +*/ +void PF_ambientsound (void) +{ + char **check; + char *samp; + float *pos; + float vol, attenuation; + int i, soundnum; + int large=false; //johnfitz -- PROTOCOL_FITZQUAKE + + pos = G_VECTOR (OFS_PARM0); + samp = G_STRING(OFS_PARM1); + vol = G_FLOAT(OFS_PARM2); + attenuation = G_FLOAT(OFS_PARM3); + +// check to see if samp was properly precached + for (soundnum=0, check = sv.sound_precache ; *check ; check++, soundnum++) + if (!strcmp(*check,samp)) + break; + + if (!*check) + { + Con_Printf ("no precache: %s\n", samp); + return; + } + + //johnfitz -- PROTOCOL_FITZQUAKE + if (soundnum > 255) + if (sv.protocol == PROTOCOL_NETQUAKE) + return; //don't send any info protocol can't support + else + large = true; + //johnfitz + +// add an svc_spawnambient command to the level signon packet + + //johnfitz -- PROTOCOL_FITZQUAKE + if (large) + MSG_WriteByte (&sv.signon,svc_spawnstaticsound2); + else + MSG_WriteByte (&sv.signon,svc_spawnstaticsound); + //johnfitz + + for (i=0 ; i<3 ; i++) + MSG_WriteCoord(&sv.signon, pos[i]); + + //johnfitz -- PROTOCOL_FITZQUAKE + if (large) + MSG_WriteShort (&sv.signon, soundnum); + else + MSG_WriteByte (&sv.signon, soundnum); + //johnfitz + + MSG_WriteByte (&sv.signon, vol*255); + MSG_WriteByte (&sv.signon, attenuation*64); + +} + +/* +================= +PF_sound + +Each entity can have eight independant sound sources, like voice, +weapon, feet, etc. + +Channel 0 is an auto-allocate channel, the others override anything +allready running on that entity/channel pair. + +An attenuation of 0 will play full volume everywhere in the level. +Larger attenuations will drop off. + +================= +*/ +void PF_sound (void) +{ + char *sample; + int channel; + edict_t *entity; + int volume; + float attenuation; + + entity = G_EDICT(OFS_PARM0); + channel = G_FLOAT(OFS_PARM1); + sample = G_STRING(OFS_PARM2); + volume = G_FLOAT(OFS_PARM3) * 255; + attenuation = G_FLOAT(OFS_PARM4); + + if (volume < 0 || volume > 255) + Sys_Error ("SV_StartSound: volume = %i", volume); + + if (attenuation < 0 || attenuation > 4) + Sys_Error ("SV_StartSound: attenuation = %f", attenuation); + + if (channel < 0 || channel > 7) + Sys_Error ("SV_StartSound: channel = %i", channel); + + SV_StartSound (entity, channel, sample, volume, attenuation); +} + +/* +================= +PF_break + +break() +================= +*/ +void PF_break (void) +{ +Con_Printf ("break statement\n"); +*(int *)-4 = 0; // dump to debugger +// PR_RunError ("break statement"); +} + +/* +================= +PF_traceline + +Used for use tracing and shot targeting +Traces are blocked by bbox and exact bsp entityes, and also slide box entities +if the tryents flag is set. + +traceline (vector1, vector2, tryents) +================= +*/ +void PF_traceline (void) +{ + float *v1, *v2; + trace_t trace; + int nomonsters; + edict_t *ent; + + v1 = G_VECTOR(OFS_PARM0); + v2 = G_VECTOR(OFS_PARM1); + nomonsters = G_FLOAT(OFS_PARM2); + ent = G_EDICT(OFS_PARM3); + + trace = SV_Move (v1, vec3_origin, vec3_origin, v2, nomonsters, ent); + + pr_global_struct->trace_allsolid = trace.allsolid; + pr_global_struct->trace_startsolid = trace.startsolid; + pr_global_struct->trace_fraction = trace.fraction; + pr_global_struct->trace_inwater = trace.inwater; + pr_global_struct->trace_inopen = trace.inopen; + VectorCopy (trace.endpos, pr_global_struct->trace_endpos); + VectorCopy (trace.plane.normal, pr_global_struct->trace_plane_normal); + pr_global_struct->trace_plane_dist = trace.plane.dist; + if (trace.ent) + pr_global_struct->trace_ent = EDICT_TO_PROG(trace.ent); + else + pr_global_struct->trace_ent = EDICT_TO_PROG(sv.edicts); +} + +/* +================= +PF_checkpos + +Returns true if the given entity can move to the given position from it's +current position by walking or rolling. +FIXME: make work... +scalar checkpos (entity, vector) +================= +*/ +void PF_checkpos (void) +{ +} + +//============================================================================ + +byte checkpvs[MAX_MAP_LEAFS/8]; + +int PF_newcheckclient (int check) +{ + int i; + byte *pvs; + edict_t *ent; + mleaf_t *leaf; + vec3_t org; + +// cycle to the next one + + if (check < 1) + check = 1; + if (check > svs.maxclients) + check = svs.maxclients; + + if (check == svs.maxclients) + i = 1; + else + i = check + 1; + + for ( ; ; i++) + { + if (i == svs.maxclients+1) + i = 1; + + ent = EDICT_NUM(i); + + if (i == check) + break; // didn't find anything else + + if (ent->free) + continue; + if (ent->v.health <= 0) + continue; + if ((int)ent->v.flags & FL_NOTARGET) + continue; + + // anything that is a client, or has a client as an enemy + break; + } + +// get the PVS for the entity + VectorAdd (ent->v.origin, ent->v.view_ofs, org); + leaf = Mod_PointInLeaf (org, sv.worldmodel); + pvs = Mod_LeafPVS (leaf, sv.worldmodel); + memcpy (checkpvs, pvs, (sv.worldmodel->numleafs+7)>>3 ); + + return i; +} + +/* +================= +PF_checkclient + +Returns a client (or object that has a client enemy) that would be a +valid target. + +If there are more than one valid options, they are cycled each frame + +If (self.origin + self.viewofs) is not in the PVS of the current target, +it is not returned at all. + +name checkclient () +================= +*/ +#define MAX_CHECK 16 +int c_invis, c_notvis; +void PF_checkclient (void) +{ + edict_t *ent, *self; + mleaf_t *leaf; + int l; + vec3_t view; + +// find a new check if on a new frame + if (sv.time - sv.lastchecktime >= 0.1) + { + sv.lastcheck = PF_newcheckclient (sv.lastcheck); + sv.lastchecktime = sv.time; + } + +// return check if it might be visible + ent = EDICT_NUM(sv.lastcheck); + if (ent->free || ent->v.health <= 0) + { + RETURN_EDICT(sv.edicts); + return; + } + +// if current entity can't possibly see the check entity, return 0 + self = PROG_TO_EDICT(pr_global_struct->self); + VectorAdd (self->v.origin, self->v.view_ofs, view); + leaf = Mod_PointInLeaf (view, sv.worldmodel); + l = (leaf - sv.worldmodel->leafs) - 1; + if ( (l<0) || !(checkpvs[l>>3] & (1<<(l&7)) ) ) + { +c_notvis++; + RETURN_EDICT(sv.edicts); + return; + } + +// might be able to see it +c_invis++; + RETURN_EDICT(ent); +} + +//============================================================================ + + +/* +================= +PF_stuffcmd + +Sends text over to the client's execution buffer + +stuffcmd (clientent, value) +================= +*/ +void PF_stuffcmd (void) +{ + int entnum; + char *str; + client_t *old; + + entnum = G_EDICTNUM(OFS_PARM0); + if (entnum < 1 || entnum > svs.maxclients) + PR_RunError ("Parm 0 not a client"); + str = G_STRING(OFS_PARM1); + + old = host_client; + host_client = &svs.clients[entnum-1]; + Host_ClientCommands ("%s", str); + host_client = old; +} + +/* +================= +PF_localcmd + +Sends text over to the client's execution buffer + +localcmd (string) +================= +*/ +void PF_localcmd (void) +{ + char *str; + + str = G_STRING(OFS_PARM0); + Cbuf_AddText (str); +} + +/* +================= +PF_cvar + +float cvar (string) +================= +*/ +void PF_cvar (void) +{ + char *str; + + str = G_STRING(OFS_PARM0); + + G_FLOAT(OFS_RETURN) = Cvar_VariableValue (str); +} + +/* +================= +PF_cvar_set + +float cvar (string) +================= +*/ +void PF_cvar_set (void) +{ + char *var, *val; + + var = G_STRING(OFS_PARM0); + val = G_STRING(OFS_PARM1); + + Cvar_Set (var, val); +} + +/* +================= +PF_findradius + +Returns a chain of entities that have origins within a spherical area + +findradius (origin, radius) +================= +*/ +void PF_findradius (void) +{ + edict_t *ent, *chain; + float rad; + float *org; + vec3_t eorg; + int i, j; + + chain = (edict_t *)sv.edicts; + + org = G_VECTOR(OFS_PARM0); + rad = G_FLOAT(OFS_PARM1); + + ent = NEXT_EDICT(sv.edicts); + for (i=1 ; ifree) + continue; + if (ent->v.solid == SOLID_NOT) + continue; + for (j=0 ; j<3 ; j++) + eorg[j] = org[j] - (ent->v.origin[j] + (ent->v.mins[j] + ent->v.maxs[j])*0.5); + if (Length(eorg) > rad) + continue; + + ent->v.chain = EDICT_TO_PROG(chain); + chain = ent; + } + + RETURN_EDICT(chain); +} + + +/* +========= +PF_dprint +========= +*/ +void PF_dprint (void) +{ + Con_DPrintf ("%s",PF_VarString(0)); +} + +char pr_string_temp[128]; + +void PF_ftos (void) +{ + float v; + v = G_FLOAT(OFS_PARM0); + + if (v == (int)v) + sprintf (pr_string_temp, "%d",(int)v); + else + sprintf (pr_string_temp, "%5.1f",v); + G_INT(OFS_RETURN) = pr_string_temp - pr_strings; +} + +void PF_fabs (void) +{ + float v; + v = G_FLOAT(OFS_PARM0); + G_FLOAT(OFS_RETURN) = fabs(v); +} + +void PF_vtos (void) +{ + sprintf (pr_string_temp, "'%5.1f %5.1f %5.1f'", G_VECTOR(OFS_PARM0)[0], G_VECTOR(OFS_PARM0)[1], G_VECTOR(OFS_PARM0)[2]); + G_INT(OFS_RETURN) = pr_string_temp - pr_strings; +} + +void PF_Spawn (void) +{ + edict_t *ed; + ed = ED_Alloc(); + RETURN_EDICT(ed); +} + +void PF_Remove (void) +{ + edict_t *ed; + + ed = G_EDICT(OFS_PARM0); + ED_Free (ed); +} + + +// entity (entity start, .string field, string match) find = #5; +void PF_Find (void) +{ + int e; + int f; + char *s, *t; + edict_t *ed; + + e = G_EDICTNUM(OFS_PARM0); + f = G_INT(OFS_PARM1); + s = G_STRING(OFS_PARM2); + if (!s) + PR_RunError ("PF_Find: bad search string"); + + for (e++ ; e < sv.num_edicts ; e++) + { + ed = EDICT_NUM(e); + if (ed->free) + continue; + t = E_STRING(ed,f); + if (!t) + continue; + if (!strcmp(t,s)) + { + RETURN_EDICT(ed); + return; + } + } + + RETURN_EDICT(sv.edicts); +} + +void PR_CheckEmptyString (char *s) +{ + if (s[0] <= ' ') + PR_RunError ("Bad string"); +} + +void PF_precache_file (void) +{ // precache_file is only used to copy files with qcc, it does nothing + G_INT(OFS_RETURN) = G_INT(OFS_PARM0); +} + +void PF_precache_sound (void) +{ + char *s; + int i; + + if (sv.state != ss_loading) + PR_RunError ("PF_Precache_*: Precache can only be done in spawn functions"); + + s = G_STRING(OFS_PARM0); + G_INT(OFS_RETURN) = G_INT(OFS_PARM0); + PR_CheckEmptyString (s); + + for (i=0 ; iself); + yaw = G_FLOAT(OFS_PARM0); + dist = G_FLOAT(OFS_PARM1); + + if ( !( (int)ent->v.flags & (FL_ONGROUND|FL_FLY|FL_SWIM) ) ) + { + G_FLOAT(OFS_RETURN) = 0; + return; + } + + yaw = yaw*M_PI*2 / 360; + + move[0] = cos(yaw)*dist; + move[1] = sin(yaw)*dist; + move[2] = 0; + +// save program state, because SV_movestep may call other progs + oldf = pr_xfunction; + oldself = pr_global_struct->self; + + G_FLOAT(OFS_RETURN) = SV_movestep(ent, move, true); + + +// restore program state + pr_xfunction = oldf; + pr_global_struct->self = oldself; +} + +/* +=============== +PF_droptofloor + +void() droptofloor +=============== +*/ +void PF_droptofloor (void) +{ + edict_t *ent; + vec3_t end; + trace_t trace; + + ent = PROG_TO_EDICT(pr_global_struct->self); + + VectorCopy (ent->v.origin, end); + end[2] -= 256; + + trace = SV_Move (ent->v.origin, ent->v.mins, ent->v.maxs, end, false, ent); + + if (trace.fraction == 1 || trace.allsolid) + G_FLOAT(OFS_RETURN) = 0; + else + { + VectorCopy (trace.endpos, ent->v.origin); + SV_LinkEdict (ent, false); + ent->v.flags = (int)ent->v.flags | FL_ONGROUND; + ent->v.groundentity = EDICT_TO_PROG(trace.ent); + G_FLOAT(OFS_RETURN) = 1; + } +} + +/* +=============== +PF_lightstyle + +void(float style, string value) lightstyle +=============== +*/ +void PF_lightstyle (void) +{ + int style; + char *val; + client_t *client; + int j; + + style = G_FLOAT(OFS_PARM0); + val = G_STRING(OFS_PARM1); + +// change the string in sv + sv.lightstyles[style] = val; + +// send message to all clients on this server + if (sv.state != ss_active) + return; + + for (j=0, client = svs.clients ; jactive || client->spawned) + { + MSG_WriteChar (&client->message, svc_lightstyle); + MSG_WriteChar (&client->message,style); + MSG_WriteString (&client->message, val); + } +} + +void PF_rint (void) +{ + float f; + f = G_FLOAT(OFS_PARM0); + if (f > 0) + G_FLOAT(OFS_RETURN) = (int)(f + 0.5); + else + G_FLOAT(OFS_RETURN) = (int)(f - 0.5); +} +void PF_floor (void) +{ + G_FLOAT(OFS_RETURN) = floor(G_FLOAT(OFS_PARM0)); +} +void PF_ceil (void) +{ + G_FLOAT(OFS_RETURN) = ceil(G_FLOAT(OFS_PARM0)); +} + + +/* +============= +PF_checkbottom +============= +*/ +void PF_checkbottom (void) +{ + edict_t *ent; + + ent = G_EDICT(OFS_PARM0); + + G_FLOAT(OFS_RETURN) = SV_CheckBottom (ent); +} + +/* +============= +PF_pointcontents +============= +*/ +void PF_pointcontents (void) +{ + float *v; + + v = G_VECTOR(OFS_PARM0); + + G_FLOAT(OFS_RETURN) = SV_PointContents (v); +} + +/* +============= +PF_nextent + +entity nextent(entity) +============= +*/ +void PF_nextent (void) +{ + int i; + edict_t *ent; + + i = G_EDICTNUM(OFS_PARM0); + while (1) + { + i++; + if (i == sv.num_edicts) + { + RETURN_EDICT(sv.edicts); + return; + } + ent = EDICT_NUM(i); + if (!ent->free) + { + RETURN_EDICT(ent); + return; + } + } +} + +/* +============= +PF_aim + +Pick a vector for the player to shoot along +vector aim(entity, missilespeed) +============= +*/ +cvar_t sv_aim = {"sv_aim", "0.93"}; +void PF_aim (void) +{ + edict_t *ent, *check, *bestent; + vec3_t start, dir, end, bestdir; + int i, j; + trace_t tr; + float dist, bestdist; + float speed; + + ent = G_EDICT(OFS_PARM0); + speed = G_FLOAT(OFS_PARM1); + + VectorCopy (ent->v.origin, start); + start[2] += 20; + +// try sending a trace straight + VectorCopy (pr_global_struct->v_forward, dir); + VectorMA (start, 2048, dir, end); + tr = SV_Move (start, vec3_origin, vec3_origin, end, false, ent); + if (tr.ent && tr.ent->v.takedamage == DAMAGE_AIM + && (!teamplay.value || ent->v.team <=0 || ent->v.team != tr.ent->v.team) ) + { + VectorCopy (pr_global_struct->v_forward, G_VECTOR(OFS_RETURN)); + return; + } + + +// try all possible entities + VectorCopy (dir, bestdir); + bestdist = sv_aim.value; + bestent = NULL; + + check = NEXT_EDICT(sv.edicts); + for (i=1 ; iv.takedamage != DAMAGE_AIM) + continue; + if (check == ent) + continue; + if (teamplay.value && ent->v.team > 0 && ent->v.team == check->v.team) + continue; // don't aim at teammate + for (j=0 ; j<3 ; j++) + end[j] = check->v.origin[j] + + 0.5*(check->v.mins[j] + check->v.maxs[j]); + VectorSubtract (end, start, dir); + VectorNormalize (dir); + dist = DotProduct (dir, pr_global_struct->v_forward); + if (dist < bestdist) + continue; // to far to turn + tr = SV_Move (start, vec3_origin, vec3_origin, end, false, ent); + if (tr.ent == check) + { // can shoot at this one + bestdist = dist; + bestent = check; + } + } + + if (bestent) + { + VectorSubtract (bestent->v.origin, ent->v.origin, dir); + dist = DotProduct (dir, pr_global_struct->v_forward); + VectorScale (pr_global_struct->v_forward, dist, end); + end[2] = dir[2]; + VectorNormalize (end); + VectorCopy (end, G_VECTOR(OFS_RETURN)); + } + else + { + VectorCopy (bestdir, G_VECTOR(OFS_RETURN)); + } +} + +/* +============== +PF_changeyaw + +This was a major timewaster in progs, so it was converted to C +============== +*/ +void PF_changeyaw (void) +{ + edict_t *ent; + float ideal, current, move, speed; + + ent = PROG_TO_EDICT(pr_global_struct->self); + current = anglemod( ent->v.angles[1] ); + ideal = ent->v.ideal_yaw; + speed = ent->v.yaw_speed; + + if (current == ideal) + return; + move = ideal - current; + if (ideal > current) + { + if (move >= 180) + move = move - 360; + } + else + { + if (move <= -180) + move = move + 360; + } + if (move > 0) + { + if (move > speed) + move = speed; + } + else + { + if (move < -speed) + move = -speed; + } + + ent->v.angles[1] = anglemod (current + move); +} + +/* +=============================================================================== + +MESSAGE WRITING + +=============================================================================== +*/ + +#define MSG_BROADCAST 0 // unreliable to all +#define MSG_ONE 1 // reliable to one (msg_entity) +#define MSG_ALL 2 // reliable to all +#define MSG_INIT 3 // write to the init string + +sizebuf_t *WriteDest (void) +{ + int entnum; + int dest; + edict_t *ent; + + dest = G_FLOAT(OFS_PARM0); + switch (dest) + { + case MSG_BROADCAST: + return &sv.datagram; + + case MSG_ONE: + ent = PROG_TO_EDICT(pr_global_struct->msg_entity); + entnum = NUM_FOR_EDICT(ent); + if (entnum < 1 || entnum > svs.maxclients) + PR_RunError ("WriteDest: not a client"); + return &svs.clients[entnum-1].message; + + case MSG_ALL: + return &sv.reliable_datagram; + + case MSG_INIT: + return &sv.signon; + + default: + PR_RunError ("WriteDest: bad destination"); + break; + } + + return NULL; +} + +void PF_WriteByte (void) +{ + MSG_WriteByte (WriteDest(), G_FLOAT(OFS_PARM1)); +} + +void PF_WriteChar (void) +{ + MSG_WriteChar (WriteDest(), G_FLOAT(OFS_PARM1)); +} + +void PF_WriteShort (void) +{ + MSG_WriteShort (WriteDest(), G_FLOAT(OFS_PARM1)); +} + +void PF_WriteLong (void) +{ + MSG_WriteLong (WriteDest(), G_FLOAT(OFS_PARM1)); +} + +void PF_WriteAngle (void) +{ + MSG_WriteAngle (WriteDest(), G_FLOAT(OFS_PARM1)); +} + +void PF_WriteCoord (void) +{ + MSG_WriteCoord (WriteDest(), G_FLOAT(OFS_PARM1)); +} + +void PF_WriteString (void) +{ + MSG_WriteString (WriteDest(), G_STRING(OFS_PARM1)); +} + + +void PF_WriteEntity (void) +{ + MSG_WriteShort (WriteDest(), G_EDICTNUM(OFS_PARM1)); +} + +//============================================================================= + +int SV_ModelIndex (char *name); + +void PF_makestatic (void) +{ + edict_t *ent; + int i; + int bits=0; //johnfitz -- PROTOCOL_FITZQUAKE + + ent = G_EDICT(OFS_PARM0); + + //johnfitz -- don't send invisible static entities + if (ent->alpha == ENTALPHA_ZERO) { + ED_Free (ent); + return; + } + //johnfitz + + //johnfitz -- PROTOCOL_FITZQUAKE + if (sv.protocol == PROTOCOL_NETQUAKE) + { + if (SV_ModelIndex(pr_strings + ent->v.model) & 0xFF00 || (int)(ent->v.frame) & 0xFF00) + { + ED_Free (ent); + return; //can't display the correct model & frame, so don't show it at all + } + } + else + { + if (SV_ModelIndex(pr_strings + ent->v.model) & 0xFF00) + bits |= B_LARGEMODEL; + if ((int)(ent->v.frame) & 0xFF00) + bits |= B_LARGEFRAME; + if (ent->alpha != ENTALPHA_DEFAULT) + bits |= B_ALPHA; + } + + if (bits) + { + MSG_WriteByte (&sv.signon, svc_spawnstatic2); + MSG_WriteByte (&sv.signon, bits); + } + else + MSG_WriteByte (&sv.signon, svc_spawnstatic); + + if (bits & B_LARGEMODEL) + MSG_WriteShort (&sv.signon, SV_ModelIndex(pr_strings + ent->v.model)); + else + MSG_WriteByte (&sv.signon, SV_ModelIndex(pr_strings + ent->v.model)); + + if (bits & B_LARGEFRAME) + MSG_WriteShort (&sv.signon, ent->v.frame); + else + MSG_WriteByte (&sv.signon, ent->v.frame); + //johnfitz + + MSG_WriteByte (&sv.signon, ent->v.colormap); + MSG_WriteByte (&sv.signon, ent->v.skin); + for (i=0 ; i<3 ; i++) + { + MSG_WriteCoord(&sv.signon, ent->v.origin[i]); + MSG_WriteAngle(&sv.signon, ent->v.angles[i]); + } + + //johnfitz -- PROTOCOL_FITZQUAKE + if (bits & B_ALPHA) + MSG_WriteByte (&sv.signon, ent->alpha); + //johnfitz + +// throw the entity away now + ED_Free (ent); +} + +//============================================================================= + +/* +============== +PF_setspawnparms +============== +*/ +void PF_setspawnparms (void) +{ + edict_t *ent; + int i; + client_t *client; + + ent = G_EDICT(OFS_PARM0); + i = NUM_FOR_EDICT(ent); + if (i < 1 || i > svs.maxclients) + PR_RunError ("Entity is not a client"); + + // copy spawn parms out of the client_t + client = svs.clients + (i-1); + + for (i=0 ; i< NUM_SPAWN_PARMS ; i++) + (&pr_global_struct->parm1)[i] = client->spawn_parms[i]; +} + +/* +============== +PF_changelevel +============== +*/ +void PF_changelevel (void) +{ + char *s; + +// make sure we don't issue two changelevels + if (svs.changelevel_issued) + return; + svs.changelevel_issued = true; + + s = G_STRING(OFS_PARM0); + Cbuf_AddText (va("changelevel %s\n",s)); +} + +void PF_Fixme (void) +{ + PR_RunError ("unimplemented bulitin"); +} + + + +builtin_t pr_builtin[] = +{ +PF_Fixme, +PF_makevectors, // void(entity e) makevectors = #1; +PF_setorigin, // void(entity e, vector o) setorigin = #2; +PF_setmodel, // void(entity e, string m) setmodel = #3; +PF_setsize, // void(entity e, vector min, vector max) setsize = #4; +PF_Fixme, // void(entity e, vector min, vector max) setabssize = #5; +PF_break, // void() break = #6; +PF_random, // float() random = #7; +PF_sound, // void(entity e, float chan, string samp) sound = #8; +PF_normalize, // vector(vector v) normalize = #9; +PF_error, // void(string e) error = #10; +PF_objerror, // void(string e) objerror = #11; +PF_vlen, // float(vector v) vlen = #12; +PF_vectoyaw, // float(vector v) vectoyaw = #13; +PF_Spawn, // entity() spawn = #14; +PF_Remove, // void(entity e) remove = #15; +PF_traceline, // float(vector v1, vector v2, float tryents) traceline = #16; +PF_checkclient, // entity() clientlist = #17; +PF_Find, // entity(entity start, .string fld, string match) find = #18; +PF_precache_sound, // void(string s) precache_sound = #19; +PF_precache_model, // void(string s) precache_model = #20; +PF_stuffcmd, // void(entity client, string s)stuffcmd = #21; +PF_findradius, // entity(vector org, float rad) findradius = #22; +PF_bprint, // void(string s) bprint = #23; +PF_sprint, // void(entity client, string s) sprint = #24; +PF_dprint, // void(string s) dprint = #25; +PF_ftos, // void(string s) ftos = #26; +PF_vtos, // void(string s) vtos = #27; +PF_coredump, +PF_traceon, +PF_traceoff, +PF_eprint, // void(entity e) debug print an entire entity +PF_walkmove, // float(float yaw, float dist) walkmove +PF_Fixme, // float(float yaw, float dist) walkmove +PF_droptofloor, +PF_lightstyle, +PF_rint, +PF_floor, +PF_ceil, +PF_Fixme, +PF_checkbottom, +PF_pointcontents, +PF_Fixme, +PF_fabs, +PF_aim, +PF_cvar, +PF_localcmd, +PF_nextent, +PF_particle, +PF_changeyaw, +PF_Fixme, +PF_vectoangles, + +PF_WriteByte, +PF_WriteChar, +PF_WriteShort, +PF_WriteLong, +PF_WriteCoord, +PF_WriteAngle, +PF_WriteString, +PF_WriteEntity, + +PF_Fixme, +PF_Fixme, +PF_Fixme, +PF_Fixme, +PF_Fixme, +PF_Fixme, +PF_Fixme, + +SV_MoveToGoal, +PF_precache_file, +PF_makestatic, + +PF_changelevel, +PF_Fixme, + +PF_cvar_set, +PF_centerprint, + +PF_ambientsound, + +PF_precache_model, +PF_precache_sound, // precache_sound2 is different only for qcc +PF_precache_file, + +PF_setspawnparms +}; + +builtin_t *pr_builtins = pr_builtin; +int pr_numbuiltins = sizeof(pr_builtin)/sizeof(pr_builtin[0]); + diff --git a/quakespasm/Quake/pr_comp.h b/quakespasm/Quake/pr_comp.h new file mode 100644 index 00000000..0e4d12fd --- /dev/null +++ b/quakespasm/Quake/pr_comp.h @@ -0,0 +1,181 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ + +// this file is shared by quake and qcc + +typedef int func_t; +typedef int string_t; + +typedef enum {ev_void, ev_string, ev_float, ev_vector, ev_entity, ev_field, ev_function, ev_pointer} etype_t; + + +#define OFS_NULL 0 +#define OFS_RETURN 1 +#define OFS_PARM0 4 // leave 3 ofs for each parm to hold vectors +#define OFS_PARM1 7 +#define OFS_PARM2 10 +#define OFS_PARM3 13 +#define OFS_PARM4 16 +#define OFS_PARM5 19 +#define OFS_PARM6 22 +#define OFS_PARM7 25 +#define RESERVED_OFS 28 + + +enum { + OP_DONE, + OP_MUL_F, + OP_MUL_V, + OP_MUL_FV, + OP_MUL_VF, + OP_DIV_F, + OP_ADD_F, + OP_ADD_V, + OP_SUB_F, + OP_SUB_V, + + OP_EQ_F, + OP_EQ_V, + OP_EQ_S, + OP_EQ_E, + OP_EQ_FNC, + + OP_NE_F, + OP_NE_V, + OP_NE_S, + OP_NE_E, + OP_NE_FNC, + + OP_LE, + OP_GE, + OP_LT, + OP_GT, + + OP_LOAD_F, + OP_LOAD_V, + OP_LOAD_S, + OP_LOAD_ENT, + OP_LOAD_FLD, + OP_LOAD_FNC, + + OP_ADDRESS, + + OP_STORE_F, + OP_STORE_V, + OP_STORE_S, + OP_STORE_ENT, + OP_STORE_FLD, + OP_STORE_FNC, + + OP_STOREP_F, + OP_STOREP_V, + OP_STOREP_S, + OP_STOREP_ENT, + OP_STOREP_FLD, + OP_STOREP_FNC, + + OP_RETURN, + OP_NOT_F, + OP_NOT_V, + OP_NOT_S, + OP_NOT_ENT, + OP_NOT_FNC, + OP_IF, + OP_IFNOT, + OP_CALL0, + OP_CALL1, + OP_CALL2, + OP_CALL3, + OP_CALL4, + OP_CALL5, + OP_CALL6, + OP_CALL7, + OP_CALL8, + OP_STATE, + OP_GOTO, + OP_AND, + OP_OR, + + OP_BITAND, + OP_BITOR +}; + + +typedef struct statement_s +{ + unsigned short op; + short a,b,c; +} dstatement_t; + +typedef struct +{ + unsigned short type; // if DEF_SAVEGLOBGAL bit is set + // the variable needs to be saved in savegames + unsigned short ofs; + int s_name; +} ddef_t; +#define DEF_SAVEGLOBAL (1<<15) + +#define MAX_PARMS 8 + +typedef struct +{ + int first_statement; // negative numbers are builtins + int parm_start; + int locals; // total ints of parms + locals + + int profile; // runtime + + int s_name; + int s_file; // source file defined in + + int numparms; + byte parm_size[MAX_PARMS]; +} dfunction_t; + + +#define PROG_VERSION 6 +typedef struct +{ + int version; + int crc; // check of header file + + int ofs_statements; + int numstatements; // statement 0 is an error + + int ofs_globaldefs; + int numglobaldefs; + + int ofs_fielddefs; + int numfielddefs; + + int ofs_functions; + int numfunctions; // function 0 is an empty + + int ofs_strings; + int numstrings; // first string is a null string + + int ofs_globals; + int numglobals; + + int entityfields; +} dprograms_t; + diff --git a/quakespasm/Quake/pr_edict.c b/quakespasm/Quake/pr_edict.c new file mode 100644 index 00000000..faf4b922 --- /dev/null +++ b/quakespasm/Quake/pr_edict.c @@ -0,0 +1,1135 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// sv_edict.c -- entity dictionary + +#include "quakedef.h" + +qboolean pr_alpha_supported; //johnfitz + +dprograms_t *progs; +dfunction_t *pr_functions; +char *pr_strings; +ddef_t *pr_fielddefs; +ddef_t *pr_globaldefs; +dstatement_t *pr_statements; +globalvars_t *pr_global_struct; +float *pr_globals; // same as pr_global_struct +int pr_edict_size; // in bytes + +unsigned short pr_crc; + +int type_size[8] = {1,sizeof(string_t)/4,1,3,1,1,sizeof(func_t)/4,sizeof(void *)/4}; + +ddef_t *ED_FieldAtOfs (int ofs); +qboolean ED_ParseEpair (void *base, ddef_t *key, char *s); + +cvar_t nomonsters = {"nomonsters", "0"}; +cvar_t gamecfg = {"gamecfg", "0"}; +cvar_t scratch1 = {"scratch1", "0"}; +cvar_t scratch2 = {"scratch2", "0"}; +cvar_t scratch3 = {"scratch3", "0"}; +cvar_t scratch4 = {"scratch4", "0"}; +cvar_t savedgamecfg = {"savedgamecfg", "0", true}; +cvar_t saved1 = {"saved1", "0", true}; +cvar_t saved2 = {"saved2", "0", true}; +cvar_t saved3 = {"saved3", "0", true}; +cvar_t saved4 = {"saved4", "0", true}; + +#define MAX_FIELD_LEN 64 +#define GEFV_CACHESIZE 2 + +typedef struct { + ddef_t *pcache; + char field[MAX_FIELD_LEN]; +} gefv_cache; + +static gefv_cache gefvCache[GEFV_CACHESIZE] = {{NULL, ""}, {NULL, ""}}; + +/* +================= +ED_ClearEdict + +Sets everything to NULL +================= +*/ +void ED_ClearEdict (edict_t *e) +{ + memset (&e->v, 0, progs->entityfields * 4); + e->free = false; +} + +/* +================= +ED_Alloc + +Either finds a free edict, or allocates a new one. +Try to avoid reusing an entity that was recently freed, because it +can cause the client to think the entity morphed into something else +instead of being removed and recreated, which can cause interpolated +angles and bad trails. +================= +*/ +edict_t *ED_Alloc (void) +{ + int i; + edict_t *e; + + for ( i=svs.maxclients+1 ; ifree && ( e->freetime < 2 || sv.time - e->freetime > 0.5 ) ) + { + ED_ClearEdict (e); + return e; + } + } + + if (i == sv.max_edicts) //johnfitz -- use sv.max_edicts instead of MAX_EDICTS + Host_Error ("ED_Alloc: no free edicts (max_edicts is %i)", sv.max_edicts); //johnfitz -- was Sys_Error + + sv.num_edicts++; + e = EDICT_NUM(i); + ED_ClearEdict (e); + + return e; +} + +/* +================= +ED_Free + +Marks the edict as free +FIXME: walk all entities and NULL out references to this entity +================= +*/ +void ED_Free (edict_t *ed) +{ + SV_UnlinkEdict (ed); // unlink from world bsp + + ed->free = true; + ed->v.model = 0; + ed->v.takedamage = 0; + ed->v.modelindex = 0; + ed->v.colormap = 0; + ed->v.skin = 0; + ed->v.frame = 0; + VectorCopy (vec3_origin, ed->v.origin); + VectorCopy (vec3_origin, ed->v.angles); + ed->v.nextthink = -1; + ed->v.solid = 0; + ed->alpha = ENTALPHA_DEFAULT; //johnfitz -- reset alpha for next entity + + ed->freetime = sv.time; +} + +//=========================================================================== + +/* +============ +ED_GlobalAtOfs +============ +*/ +ddef_t *ED_GlobalAtOfs (int ofs) +{ + ddef_t *def; + int i; + + for (i=0 ; inumglobaldefs ; i++) + { + def = &pr_globaldefs[i]; + if (def->ofs == ofs) + return def; + } + return NULL; +} + +/* +============ +ED_FieldAtOfs +============ +*/ +ddef_t *ED_FieldAtOfs (int ofs) +{ + ddef_t *def; + int i; + + for (i=0 ; inumfielddefs ; i++) + { + def = &pr_fielddefs[i]; + if (def->ofs == ofs) + return def; + } + return NULL; +} + +/* +============ +ED_FindField +============ +*/ +ddef_t *ED_FindField (char *name) +{ + ddef_t *def; + int i; + + for (i=0 ; inumfielddefs ; i++) + { + def = &pr_fielddefs[i]; + if (!strcmp(pr_strings + def->s_name,name) ) + return def; + } + return NULL; +} + + +/* +============ +ED_FindGlobal +============ +*/ +ddef_t *ED_FindGlobal (char *name) +{ + ddef_t *def; + int i; + + for (i=0 ; inumglobaldefs ; i++) + { + def = &pr_globaldefs[i]; + if (!strcmp(pr_strings + def->s_name,name) ) + return def; + } + return NULL; +} + + +/* +============ +ED_FindFunction +============ +*/ +dfunction_t *ED_FindFunction (char *name) +{ + dfunction_t *func; + int i; + + for (i=0 ; inumfunctions ; i++) + { + func = &pr_functions[i]; + if (!strcmp(pr_strings + func->s_name,name) ) + return func; + } + return NULL; +} + +/* +============ +GetEdictFieldValue +============ +*/ +eval_t *GetEdictFieldValue(edict_t *ed, char *field) +{ + ddef_t *def = NULL; + int i; + static int rep = 0; + + for (i=0 ; iv + def->ofs*4); +} + + +/* +============ +PR_ValueString + +Returns a string describing *data in a type specific manner +============= +*/ +char *PR_ValueString (etype_t type, eval_t *val) +{ + static char line[256]; + ddef_t *def; + dfunction_t *f; + + type &= ~DEF_SAVEGLOBAL; + + switch (type) + { + case ev_string: + sprintf (line, "%s", pr_strings + val->string); + break; + case ev_entity: + sprintf (line, "entity %i", NUM_FOR_EDICT(PROG_TO_EDICT(val->edict)) ); + break; + case ev_function: + f = pr_functions + val->function; + sprintf (line, "%s()", pr_strings + f->s_name); + break; + case ev_field: + def = ED_FieldAtOfs ( val->_int ); + sprintf (line, ".%s", pr_strings + def->s_name); + break; + case ev_void: + sprintf (line, "void"); + break; + case ev_float: + sprintf (line, "%5.1f", val->_float); + break; + case ev_vector: + sprintf (line, "'%5.1f %5.1f %5.1f'", val->vector[0], val->vector[1], val->vector[2]); + break; + case ev_pointer: + sprintf (line, "pointer"); + break; + default: + sprintf (line, "bad type %i", type); + break; + } + + return line; +} + +/* +============ +PR_UglyValueString + +Returns a string describing *data in a type specific manner +Easier to parse than PR_ValueString +============= +*/ +char *PR_UglyValueString (etype_t type, eval_t *val) +{ + static char line[256]; + ddef_t *def; + dfunction_t *f; + + type &= ~DEF_SAVEGLOBAL; + + switch (type) + { + case ev_string: + sprintf (line, "%s", pr_strings + val->string); + break; + case ev_entity: + sprintf (line, "%i", NUM_FOR_EDICT(PROG_TO_EDICT(val->edict))); + break; + case ev_function: + f = pr_functions + val->function; + sprintf (line, "%s", pr_strings + f->s_name); + break; + case ev_field: + def = ED_FieldAtOfs ( val->_int ); + sprintf (line, "%s", pr_strings + def->s_name); + break; + case ev_void: + sprintf (line, "void"); + break; + case ev_float: + sprintf (line, "%f", val->_float); + break; + case ev_vector: + sprintf (line, "%f %f %f", val->vector[0], val->vector[1], val->vector[2]); + break; + default: + sprintf (line, "bad type %i", type); + break; + } + + return line; +} + +/* +============ +PR_GlobalString + +Returns a string with a description and the contents of a global, +padded to 20 field width +============ +*/ +char *PR_GlobalString (int ofs) +{ + char *s; + int i; + ddef_t *def; + void *val; + static char line[128]; + + val = (void *)&pr_globals[ofs]; + def = ED_GlobalAtOfs(ofs); + if (!def) + sprintf (line,"%i(???)", ofs); + else + { + s = PR_ValueString (def->type, val); + sprintf (line,"%i(%s)%s", ofs, pr_strings + def->s_name, s); + } + + i = strlen(line); + for ( ; i<20 ; i++) + strcat (line," "); + strcat (line," "); + + return line; +} + +char *PR_GlobalStringNoContents (int ofs) +{ + int i; + ddef_t *def; + static char line[128]; + + def = ED_GlobalAtOfs(ofs); + if (!def) + sprintf (line,"%i(???)", ofs); + else + sprintf (line,"%i(%s)", ofs, pr_strings + def->s_name); + + i = strlen(line); + for ( ; i<20 ; i++) + strcat (line," "); + strcat (line," "); + + return line; +} + + +/* +============= +ED_Print + +For debugging +============= +*/ +void ED_Print (edict_t *ed) +{ + int l; + ddef_t *d; + int *v; + int i, j; + char *name; + int type; + + if (ed->free) + { + Con_Printf ("FREE\n"); + return; + } + + Con_SafePrintf("\nEDICT %i:\n", NUM_FOR_EDICT(ed)); //johnfitz -- was Con_Printf + for (i=1 ; inumfielddefs ; i++) + { + d = &pr_fielddefs[i]; + name = pr_strings + d->s_name; + if (name[strlen(name)-2] == '_') + continue; // skip _x, _y, _z vars + + v = (int *)((char *)&ed->v + d->ofs*4); + + // if the value is still all 0, skip the field + type = d->type & ~DEF_SAVEGLOBAL; + + for (j=0 ; jtype, (eval_t *)v)); //johnfitz -- was Con_Printf + } +} + +/* +============= +ED_Write + +For savegames +============= +*/ +void ED_Write (FILE *f, edict_t *ed) +{ + ddef_t *d; + int *v; + int i, j; + char *name; + int type; + + fprintf (f, "{\n"); + + if (ed->free) + { + fprintf (f, "}\n"); + return; + } + + for (i=1 ; inumfielddefs ; i++) + { + d = &pr_fielddefs[i]; + name = pr_strings + d->s_name; + if (name[strlen(name)-2] == '_') + continue; // skip _x, _y, _z vars + + v = (int *)((char *)&ed->v + d->ofs*4); + + // if the value is still all 0, skip the field + type = d->type & ~DEF_SAVEGLOBAL; + for (j=0 ; jtype, (eval_t *)v)); + } + + //johnfitz -- save entity alpha manually when progs.dat doesn't know about alpha + if (!pr_alpha_supported && ed->alpha != ENTALPHA_DEFAULT) + fprintf (f,"\"alpha\" \"%f\"\n", ENTALPHA_TOSAVE(ed->alpha)); + //johnfitz + + fprintf (f, "}\n"); +} + +void ED_PrintNum (int ent) +{ + ED_Print (EDICT_NUM(ent)); +} + +/* +============= +ED_PrintEdicts + +For debugging, prints all the entities in the current server +============= +*/ +void ED_PrintEdicts (void) +{ + int i; + + Con_Printf ("%i entities\n", sv.num_edicts); + for (i=0 ; i= sv.num_edicts) + { + Con_Printf("Bad edict number\n"); + return; + } + ED_PrintNum (i); +} + +/* +============= +ED_Count + +For debugging +============= +*/ +void ED_Count (void) +{ + int i; + edict_t *ent; + int active, models, solid, step; + + active = models = solid = step = 0; + for (i=0 ; ifree) + continue; + active++; + if (ent->v.solid) + solid++; + if (ent->v.model) + models++; + if (ent->v.movetype == MOVETYPE_STEP) + step++; + } + + Con_Printf ("num_edicts:%3i\n", sv.num_edicts); + Con_Printf ("active :%3i\n", active); + Con_Printf ("view :%3i\n", models); + Con_Printf ("touch :%3i\n", solid); + Con_Printf ("step :%3i\n", step); + +} + +/* +============================================================================== + + ARCHIVING GLOBALS + +FIXME: need to tag constants, doesn't really work +============================================================================== +*/ + +/* +============= +ED_WriteGlobals +============= +*/ +void ED_WriteGlobals (FILE *f) +{ + ddef_t *def; + int i; + char *name; + int type; + + fprintf (f,"{\n"); + for (i=0 ; inumglobaldefs ; i++) + { + def = &pr_globaldefs[i]; + type = def->type; + if ( !(def->type & DEF_SAVEGLOBAL) ) + continue; + type &= ~DEF_SAVEGLOBAL; + + if (type != ev_string + && type != ev_float + && type != ev_entity) + continue; + + name = pr_strings + def->s_name; + fprintf (f,"\"%s\" ", name); + fprintf (f,"\"%s\"\n", PR_UglyValueString(type, (eval_t *)&pr_globals[def->ofs])); + } + fprintf (f,"}\n"); +} + +/* +============= +ED_ParseGlobals +============= +*/ +void ED_ParseGlobals (char *data) +{ + char keyname[64]; + ddef_t *key; + + while (1) + { + // parse key + data = COM_Parse (data); + if (com_token[0] == '}') + break; + if (!data) + Sys_Error ("ED_ParseEntity: EOF without closing brace"); + + strcpy (keyname, com_token); + + // parse value + data = COM_Parse (data); + if (!data) + Sys_Error ("ED_ParseEntity: EOF without closing brace"); + + if (com_token[0] == '}') + Sys_Error ("ED_ParseEntity: closing brace without data"); + + key = ED_FindGlobal (keyname); + if (!key) + { + Con_Printf ("'%s' is not a global\n", keyname); + continue; + } + + if (!ED_ParseEpair ((void *)pr_globals, key, com_token)) + Host_Error ("ED_ParseGlobals: parse error"); + } +} + +//============================================================================ + + +/* +============= +ED_NewString +============= +*/ +char *ED_NewString (char *string) +{ + char *new, *new_p; + int i,l; + + l = strlen(string) + 1; + new = Hunk_Alloc (l); + new_p = new; + + for (i=0 ; i< l ; i++) + { + if (string[i] == '\\' && i < l-1) + { + i++; + if (string[i] == 'n') + *new_p++ = '\n'; + else + *new_p++ = '\\'; + } + else + *new_p++ = string[i]; + } + + return new; +} + + +/* +============= +ED_ParseEval + +Can parse either fields or globals +returns false if error +============= +*/ +qboolean ED_ParseEpair (void *base, ddef_t *key, char *s) +{ + int i; + char string[128]; + ddef_t *def; + char *v, *w; + void *d; + dfunction_t *func; + + d = (void *)((int *)base + key->ofs); + + switch (key->type & ~DEF_SAVEGLOBAL) + { + case ev_string: + *(string_t *)d = ED_NewString (s) - pr_strings; + break; + + case ev_float: + *(float *)d = atof (s); + break; + + case ev_vector: + strcpy (string, s); + v = string; + w = string; + for (i=0 ; i<3 ; i++) + { + while (*v && *v != ' ') + v++; + *v = 0; + ((float *)d)[i] = atof (w); + w = v = v+1; + } + break; + + case ev_entity: + *(int *)d = EDICT_TO_PROG(EDICT_NUM(atoi (s))); + break; + + case ev_field: + def = ED_FindField (s); + if (!def) + { + //johnfitz -- HACK -- suppress error becuase fog/sky fields might not be mentioned in defs.qc + if (strncmp(s, "sky", 3) && strcmp(s, "fog")) + Con_DPrintf ("Can't find field %s\n", s); + return false; + } + *(int *)d = G_INT(def->ofs); + break; + + case ev_function: + func = ED_FindFunction (s); + if (!func) + { + Con_Printf ("Can't find function %s\n", s); + return false; + } + *(func_t *)d = func - pr_functions; + break; + + default: + break; + } + return true; +} + +/* +==================== +ED_ParseEdict + +Parses an edict out of the given string, returning the new position +ed should be a properly initialized empty edict. +Used for initial level load and for savegames. +==================== +*/ +char *ED_ParseEdict (char *data, edict_t *ent) +{ + ddef_t *key; + qboolean anglehack; + qboolean init; + char keyname[256]; + int n; + + init = false; + +// clear it + if (ent != sv.edicts) // hack + memset (&ent->v, 0, progs->entityfields * 4); + +// go through all the dictionary pairs + while (1) + { + // parse key + data = COM_Parse (data); + if (com_token[0] == '}') + break; + if (!data) + Sys_Error ("ED_ParseEntity: EOF without closing brace"); + + // anglehack is to allow QuakeEd to write single scalar angles + // and allow them to be turned into vectors. (FIXME...) + if (!strcmp(com_token, "angle")) + { + strcpy (com_token, "angles"); + anglehack = true; + } + else + anglehack = false; + + // FIXME: change light to _light to get rid of this hack + if (!strcmp(com_token, "light")) + strcpy (com_token, "light_lev"); // hack for single light def + + strcpy (keyname, com_token); + + // another hack to fix keynames with trailing spaces + n = strlen(keyname); + while (n && keyname[n-1] == ' ') + { + keyname[n-1] = 0; + n--; + } + + // parse value + data = COM_Parse (data); + if (!data) + Sys_Error ("ED_ParseEntity: EOF without closing brace"); + + if (com_token[0] == '}') + Sys_Error ("ED_ParseEntity: closing brace without data"); + + init = true; + + // keynames with a leading underscore are used for utility comments, + // and are immediately discarded by quake + if (keyname[0] == '_') + continue; + + //johnfitz -- hack to support .alpha even when progs.dat doesn't know about it + if (!strcmp(keyname, "alpha")) + ent->alpha = ENTALPHA_ENCODE(atof(com_token)); + //johnfitz + + key = ED_FindField (keyname); + if (!key) + { + //johnfitz -- HACK -- suppress error becuase fog/sky/alpha fields might not be mentioned in defs.qc + if (strncmp(keyname, "sky", 3) && strcmp(keyname, "fog") && strcmp(keyname, "alpha")) + Con_DPrintf ("\"%s\" is not a field\n", keyname); //johnfitz -- was Con_Printf + continue; + } + + if (anglehack) + { + char temp[32]; + strcpy (temp, com_token); + sprintf (com_token, "0 %s 0", temp); + } + + if (!ED_ParseEpair ((void *)&ent->v, key, com_token)) + Host_Error ("ED_ParseEdict: parse error"); + } + + if (!init) + ent->free = true; + + return data; +} + + +/* +================ +ED_LoadFromFile + +The entities are directly placed in the array, rather than allocated with +ED_Alloc, because otherwise an error loading the map would have entity +number references out of order. + +Creates a server's entity / program execution context by +parsing textual entity definitions out of an ent file. + +Used for both fresh maps and savegame loads. A fresh map would also need +to call ED_CallSpawnFunctions () to let the objects initialize themselves. +================ +*/ +void ED_LoadFromFile (char *data) +{ + edict_t *ent; + int inhibit; + dfunction_t *func; + + ent = NULL; + inhibit = 0; + pr_global_struct->time = sv.time; + +// parse ents + while (1) + { +// parse the opening brace + data = COM_Parse (data); + if (!data) + break; + if (com_token[0] != '{') + Sys_Error ("ED_LoadFromFile: found %s when expecting {",com_token); + + if (!ent) + ent = EDICT_NUM(0); + else + ent = ED_Alloc (); + data = ED_ParseEdict (data, ent); + +// remove things from different skill levels or deathmatch + if (deathmatch.value) + { + if (((int)ent->v.spawnflags & SPAWNFLAG_NOT_DEATHMATCH)) + { + ED_Free (ent); + inhibit++; + continue; + } + } + else if ((current_skill == 0 && ((int)ent->v.spawnflags & SPAWNFLAG_NOT_EASY)) + || (current_skill == 1 && ((int)ent->v.spawnflags & SPAWNFLAG_NOT_MEDIUM)) + || (current_skill >= 2 && ((int)ent->v.spawnflags & SPAWNFLAG_NOT_HARD)) ) + { + ED_Free (ent); + inhibit++; + continue; + } + +// +// immediately call spawn function +// + if (!ent->v.classname) + { + Con_SafePrintf ("No classname for:\n"); //johnfitz -- was Con_Printf + ED_Print (ent); + ED_Free (ent); + continue; + } + + // look for the spawn function + func = ED_FindFunction ( pr_strings + ent->v.classname ); + + if (!func) + { + Con_SafePrintf ("No spawn function for:\n"); //johnfitz -- was Con_Printf + ED_Print (ent); + ED_Free (ent); + continue; + } + + pr_global_struct->self = EDICT_TO_PROG(ent); + PR_ExecuteProgram (func - pr_functions); + } + + Con_DPrintf ("%i entities inhibited\n", inhibit); +} + + +/* +=============== +PR_LoadProgs +=============== +*/ +void PR_LoadProgs (void) +{ + int i; + +// flush the non-C variable lookup cache + for (i=0 ; iversion != PROG_VERSION) + Sys_Error ("progs.dat has wrong version number (%i should be %i)", progs->version, PROG_VERSION); + if (progs->crc != PROGHEADER_CRC) + Sys_Error ("progs.dat system vars have been modified, progdefs.h is out of date"); + + pr_functions = (dfunction_t *)((byte *)progs + progs->ofs_functions); + pr_strings = (char *)progs + progs->ofs_strings; + pr_globaldefs = (ddef_t *)((byte *)progs + progs->ofs_globaldefs); + pr_fielddefs = (ddef_t *)((byte *)progs + progs->ofs_fielddefs); + pr_statements = (dstatement_t *)((byte *)progs + progs->ofs_statements); + + pr_global_struct = (globalvars_t *)((byte *)progs + progs->ofs_globals); + pr_globals = (float *)pr_global_struct; + + pr_edict_size = progs->entityfields * 4 + sizeof (edict_t) - sizeof(entvars_t); + +// byte swap the lumps + for (i=0 ; inumstatements ; i++) + { + pr_statements[i].op = LittleShort(pr_statements[i].op); + pr_statements[i].a = LittleShort(pr_statements[i].a); + pr_statements[i].b = LittleShort(pr_statements[i].b); + pr_statements[i].c = LittleShort(pr_statements[i].c); + } + + for (i=0 ; inumfunctions; i++) + { + pr_functions[i].first_statement = LittleLong (pr_functions[i].first_statement); + pr_functions[i].parm_start = LittleLong (pr_functions[i].parm_start); + pr_functions[i].s_name = LittleLong (pr_functions[i].s_name); + pr_functions[i].s_file = LittleLong (pr_functions[i].s_file); + pr_functions[i].numparms = LittleLong (pr_functions[i].numparms); + pr_functions[i].locals = LittleLong (pr_functions[i].locals); + } + + for (i=0 ; inumglobaldefs ; i++) + { + pr_globaldefs[i].type = LittleShort (pr_globaldefs[i].type); + pr_globaldefs[i].ofs = LittleShort (pr_globaldefs[i].ofs); + pr_globaldefs[i].s_name = LittleLong (pr_globaldefs[i].s_name); + } + + pr_alpha_supported = false; //johnfitz + + for (i=0 ; inumfielddefs ; i++) + { + pr_fielddefs[i].type = LittleShort (pr_fielddefs[i].type); + if (pr_fielddefs[i].type & DEF_SAVEGLOBAL) + Sys_Error ("PR_LoadProgs: pr_fielddefs[i].type & DEF_SAVEGLOBAL"); + pr_fielddefs[i].ofs = LittleShort (pr_fielddefs[i].ofs); + pr_fielddefs[i].s_name = LittleLong (pr_fielddefs[i].s_name); + + //johnfitz -- detect alpha support in progs.dat + if (!strcmp(pr_strings + pr_fielddefs[i].s_name,"alpha")) + pr_alpha_supported = true; + //johnfitz + } + + for (i=0 ; inumglobals ; i++) + ((int *)pr_globals)[i] = LittleLong (((int *)pr_globals)[i]); +} + + +/* +=============== +PR_Init +=============== +*/ +void PR_Init (void) +{ + Cmd_AddCommand ("edict", ED_PrintEdict_f); + Cmd_AddCommand ("edicts", ED_PrintEdicts); + Cmd_AddCommand ("edictcount", ED_Count); + Cmd_AddCommand ("profile", PR_Profile_f); + Cvar_RegisterVariable (&nomonsters, NULL); + Cvar_RegisterVariable (&gamecfg, NULL); + Cvar_RegisterVariable (&scratch1, NULL); + Cvar_RegisterVariable (&scratch2, NULL); + Cvar_RegisterVariable (&scratch3, NULL); + Cvar_RegisterVariable (&scratch4, NULL); + Cvar_RegisterVariable (&savedgamecfg, NULL); + Cvar_RegisterVariable (&saved1, NULL); + Cvar_RegisterVariable (&saved2, NULL); + Cvar_RegisterVariable (&saved3, NULL); + Cvar_RegisterVariable (&saved4, NULL); +} + + + +edict_t *EDICT_NUM(int n) +{ + if (n < 0 || n >= sv.max_edicts) + Sys_Error ("EDICT_NUM: bad number %i", n); + return (edict_t *)((byte *)sv.edicts+ (n)*pr_edict_size); +} + +int NUM_FOR_EDICT(edict_t *e) +{ + int b; + + b = (byte *)e - (byte *)sv.edicts; + b = b / pr_edict_size; + + if (b < 0 || b >= sv.num_edicts) + Sys_Error ("NUM_FOR_EDICT: bad pointer"); + return b; +} diff --git a/quakespasm/Quake/pr_exec.c b/quakespasm/Quake/pr_exec.c new file mode 100644 index 00000000..fe6133e7 --- /dev/null +++ b/quakespasm/Quake/pr_exec.c @@ -0,0 +1,665 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 "quakedef.h" + + +/* + +*/ + +typedef struct +{ + int s; + dfunction_t *f; +} prstack_t; + +#define MAX_STACK_DEPTH 32 +prstack_t pr_stack[MAX_STACK_DEPTH]; +int pr_depth; + +#define LOCALSTACK_SIZE 2048 +int localstack[LOCALSTACK_SIZE]; +int localstack_used; + + +qboolean pr_trace; +dfunction_t *pr_xfunction; +int pr_xstatement; + + +int pr_argc; + +char *pr_opnames[] = +{ +"DONE", + +"MUL_F", +"MUL_V", +"MUL_FV", +"MUL_VF", + +"DIV", + +"ADD_F", +"ADD_V", + +"SUB_F", +"SUB_V", + +"EQ_F", +"EQ_V", +"EQ_S", +"EQ_E", +"EQ_FNC", + +"NE_F", +"NE_V", +"NE_S", +"NE_E", +"NE_FNC", + +"LE", +"GE", +"LT", +"GT", + +"INDIRECT", +"INDIRECT", +"INDIRECT", +"INDIRECT", +"INDIRECT", +"INDIRECT", + +"ADDRESS", + +"STORE_F", +"STORE_V", +"STORE_S", +"STORE_ENT", +"STORE_FLD", +"STORE_FNC", + +"STOREP_F", +"STOREP_V", +"STOREP_S", +"STOREP_ENT", +"STOREP_FLD", +"STOREP_FNC", + +"RETURN", + +"NOT_F", +"NOT_V", +"NOT_S", +"NOT_ENT", +"NOT_FNC", + +"IF", +"IFNOT", + +"CALL0", +"CALL1", +"CALL2", +"CALL3", +"CALL4", +"CALL5", +"CALL6", +"CALL7", +"CALL8", + +"STATE", + +"GOTO", + +"AND", +"OR", + +"BITAND", +"BITOR" +}; + +char *PR_GlobalString (int ofs); +char *PR_GlobalStringNoContents (int ofs); + + +//============================================================================= + +/* +================= +PR_PrintStatement +================= +*/ +void PR_PrintStatement (dstatement_t *s) +{ + int i; + + if ( (unsigned)s->op < sizeof(pr_opnames)/sizeof(pr_opnames[0])) + { + Con_Printf ("%s ", pr_opnames[s->op]); + i = strlen(pr_opnames[s->op]); + for ( ; i<10 ; i++) + Con_Printf (" "); + } + + if (s->op == OP_IF || s->op == OP_IFNOT) + Con_Printf ("%sbranch %i",PR_GlobalString(s->a),s->b); + else if (s->op == OP_GOTO) + { + Con_Printf ("branch %i",s->a); + } + else if ( (unsigned)(s->op - OP_STORE_F) < 6) + { + Con_Printf ("%s",PR_GlobalString(s->a)); + Con_Printf ("%s", PR_GlobalStringNoContents(s->b)); + } + else + { + if (s->a) + Con_Printf ("%s",PR_GlobalString(s->a)); + if (s->b) + Con_Printf ("%s",PR_GlobalString(s->b)); + if (s->c) + Con_Printf ("%s", PR_GlobalStringNoContents(s->c)); + } + Con_Printf ("\n"); +} + +/* +============ +PR_StackTrace +============ +*/ +void PR_StackTrace (void) +{ + dfunction_t *f; + int i; + + if (pr_depth == 0) + { + Con_Printf ("\n"); + return; + } + + pr_stack[pr_depth].f = pr_xfunction; + for (i=pr_depth ; i>=0 ; i--) + { + f = pr_stack[i].f; + + if (!f) + { + Con_Printf ("\n"); + } + else + Con_Printf ("%12s : %s\n", pr_strings + f->s_file, pr_strings + f->s_name); + } +} + + +/* +============ +PR_Profile_f + +============ +*/ +void PR_Profile_f (void) +{ + dfunction_t *f, *best; + int max; + int num; + int i; + + num = 0; + do + { + max = 0; + best = NULL; + for (i=0 ; inumfunctions ; i++) + { + f = &pr_functions[i]; + if (f->profile > max) + { + max = f->profile; + best = f; + } + } + if (best) + { + if (num < 10) + Con_Printf ("%7i %s\n", best->profile, pr_strings+best->s_name); + num++; + best->profile = 0; + } + } while (best); +} + + +/* +============ +PR_RunError + +Aborts the currently executing function +============ +*/ +void PR_RunError (char *error, ...) +{ + va_list argptr; + char string[1024]; + + va_start (argptr,error); + vsprintf (string,error,argptr); + va_end (argptr); + + PR_PrintStatement (pr_statements + pr_xstatement); + PR_StackTrace (); + Con_Printf ("%s\n", string); + + pr_depth = 0; // dump the stack so host_error can shutdown functions + + Host_Error ("Program error"); +} + +/* +============================================================================ +PR_ExecuteProgram + +The interpretation main loop +============================================================================ +*/ + +/* +==================== +PR_EnterFunction + +Returns the new program statement counter +==================== +*/ +int PR_EnterFunction (dfunction_t *f) +{ + int i, j, c, o; + + pr_stack[pr_depth].s = pr_xstatement; + pr_stack[pr_depth].f = pr_xfunction; + pr_depth++; + if (pr_depth >= MAX_STACK_DEPTH) + PR_RunError ("stack overflow"); + +// save off any locals that the new function steps on + c = f->locals; + if (localstack_used + c > LOCALSTACK_SIZE) + PR_RunError ("PR_ExecuteProgram: locals stack overflow\n"); + + for (i=0 ; i < c ; i++) + localstack[localstack_used+i] = ((int *)pr_globals)[f->parm_start + i]; + localstack_used += c; + +// copy parameters + o = f->parm_start; + for (i=0 ; inumparms ; i++) + { + for (j=0 ; jparm_size[i] ; j++) + { + ((int *)pr_globals)[o] = ((int *)pr_globals)[OFS_PARM0+i*3+j]; + o++; + } + } + + pr_xfunction = f; + return f->first_statement - 1; // offset the s++ +} + +/* +==================== +PR_LeaveFunction +==================== +*/ +int PR_LeaveFunction (void) +{ + int i, c; + + if (pr_depth <= 0) + Sys_Error ("prog stack underflow"); + +// restore locals from the stack + c = pr_xfunction->locals; + localstack_used -= c; + if (localstack_used < 0) + PR_RunError ("PR_ExecuteProgram: locals stack underflow\n"); + + for (i=0 ; i < c ; i++) + ((int *)pr_globals)[pr_xfunction->parm_start + i] = localstack[localstack_used+i]; + +// up stack + pr_depth--; + pr_xfunction = pr_stack[pr_depth].f; + return pr_stack[pr_depth].s; +} + + +/* +==================== +PR_ExecuteProgram +==================== +*/ +void PR_ExecuteProgram (func_t fnum) +{ + eval_t *a, *b, *c; + int s; + dstatement_t *st; + dfunction_t *f, *newf; + int runaway; + int i; + edict_t *ed; + int exitdepth; + eval_t *ptr; + + if (!fnum || fnum >= progs->numfunctions) + { + if (pr_global_struct->self) + ED_Print (PROG_TO_EDICT(pr_global_struct->self)); + Host_Error ("PR_ExecuteProgram: NULL function"); + } + + f = &pr_functions[fnum]; + + runaway = 100000; + pr_trace = false; + +// make a stack frame + exitdepth = pr_depth; + + s = PR_EnterFunction (f); + +while (1) +{ + s++; // next statement + + st = &pr_statements[s]; + a = (eval_t *)&pr_globals[st->a]; + b = (eval_t *)&pr_globals[st->b]; + c = (eval_t *)&pr_globals[st->c]; + + if (!--runaway) + PR_RunError ("runaway loop error"); + + pr_xfunction->profile++; + pr_xstatement = s; + + if (pr_trace) + PR_PrintStatement (st); + + switch (st->op) + { + case OP_ADD_F: + c->_float = a->_float + b->_float; + break; + case OP_ADD_V: + c->vector[0] = a->vector[0] + b->vector[0]; + c->vector[1] = a->vector[1] + b->vector[1]; + c->vector[2] = a->vector[2] + b->vector[2]; + break; + + case OP_SUB_F: + c->_float = a->_float - b->_float; + break; + case OP_SUB_V: + c->vector[0] = a->vector[0] - b->vector[0]; + c->vector[1] = a->vector[1] - b->vector[1]; + c->vector[2] = a->vector[2] - b->vector[2]; + break; + + case OP_MUL_F: + c->_float = a->_float * b->_float; + break; + case OP_MUL_V: + c->_float = a->vector[0]*b->vector[0] + + a->vector[1]*b->vector[1] + + a->vector[2]*b->vector[2]; + break; + case OP_MUL_FV: + c->vector[0] = a->_float * b->vector[0]; + c->vector[1] = a->_float * b->vector[1]; + c->vector[2] = a->_float * b->vector[2]; + break; + case OP_MUL_VF: + c->vector[0] = b->_float * a->vector[0]; + c->vector[1] = b->_float * a->vector[1]; + c->vector[2] = b->_float * a->vector[2]; + break; + + case OP_DIV_F: + c->_float = a->_float / b->_float; + break; + + case OP_BITAND: + c->_float = (int)a->_float & (int)b->_float; + break; + + case OP_BITOR: + c->_float = (int)a->_float | (int)b->_float; + break; + + + case OP_GE: + c->_float = a->_float >= b->_float; + break; + case OP_LE: + c->_float = a->_float <= b->_float; + break; + case OP_GT: + c->_float = a->_float > b->_float; + break; + case OP_LT: + c->_float = a->_float < b->_float; + break; + case OP_AND: + c->_float = a->_float && b->_float; + break; + case OP_OR: + c->_float = a->_float || b->_float; + break; + + case OP_NOT_F: + c->_float = !a->_float; + break; + case OP_NOT_V: + c->_float = !a->vector[0] && !a->vector[1] && !a->vector[2]; + break; + case OP_NOT_S: + c->_float = !a->string || !pr_strings[a->string]; + break; + case OP_NOT_FNC: + c->_float = !a->function; + break; + case OP_NOT_ENT: + c->_float = (PROG_TO_EDICT(a->edict) == sv.edicts); + break; + + case OP_EQ_F: + c->_float = a->_float == b->_float; + break; + case OP_EQ_V: + c->_float = (a->vector[0] == b->vector[0]) && + (a->vector[1] == b->vector[1]) && + (a->vector[2] == b->vector[2]); + break; + case OP_EQ_S: + c->_float = !strcmp(pr_strings+a->string,pr_strings+b->string); + break; + case OP_EQ_E: + c->_float = a->_int == b->_int; + break; + case OP_EQ_FNC: + c->_float = a->function == b->function; + break; + + + case OP_NE_F: + c->_float = a->_float != b->_float; + break; + case OP_NE_V: + c->_float = (a->vector[0] != b->vector[0]) || + (a->vector[1] != b->vector[1]) || + (a->vector[2] != b->vector[2]); + break; + case OP_NE_S: + c->_float = strcmp(pr_strings+a->string,pr_strings+b->string); + break; + case OP_NE_E: + c->_float = a->_int != b->_int; + break; + case OP_NE_FNC: + c->_float = a->function != b->function; + break; + +//================== + case OP_STORE_F: + case OP_STORE_ENT: + case OP_STORE_FLD: // integers + case OP_STORE_S: + case OP_STORE_FNC: // pointers + b->_int = a->_int; + break; + case OP_STORE_V: + b->vector[0] = a->vector[0]; + b->vector[1] = a->vector[1]; + b->vector[2] = a->vector[2]; + break; + + case OP_STOREP_F: + case OP_STOREP_ENT: + case OP_STOREP_FLD: // integers + case OP_STOREP_S: + case OP_STOREP_FNC: // pointers + ptr = (eval_t *)((byte *)sv.edicts + b->_int); + ptr->_int = a->_int; + break; + case OP_STOREP_V: + ptr = (eval_t *)((byte *)sv.edicts + b->_int); + ptr->vector[0] = a->vector[0]; + ptr->vector[1] = a->vector[1]; + ptr->vector[2] = a->vector[2]; + break; + + case OP_ADDRESS: + ed = PROG_TO_EDICT(a->edict); +#ifdef PARANOID + NUM_FOR_EDICT(ed); // make sure it's in range +#endif + if (ed == (edict_t *)sv.edicts && sv.state == ss_active) + PR_RunError ("assignment to world entity"); + c->_int = (byte *)((int *)&ed->v + b->_int) - (byte *)sv.edicts; + break; + + case OP_LOAD_F: + case OP_LOAD_FLD: + case OP_LOAD_ENT: + case OP_LOAD_S: + case OP_LOAD_FNC: + ed = PROG_TO_EDICT(a->edict); +#ifdef PARANOID + NUM_FOR_EDICT(ed); // make sure it's in range +#endif + a = (eval_t *)((int *)&ed->v + b->_int); + c->_int = a->_int; + break; + + case OP_LOAD_V: + ed = PROG_TO_EDICT(a->edict); +#ifdef PARANOID + NUM_FOR_EDICT(ed); // make sure it's in range +#endif + a = (eval_t *)((int *)&ed->v + b->_int); + c->vector[0] = a->vector[0]; + c->vector[1] = a->vector[1]; + c->vector[2] = a->vector[2]; + break; + +//================== + + case OP_IFNOT: + if (!a->_int) + s += st->b - 1; // offset the s++ + break; + + case OP_IF: + if (a->_int) + s += st->b - 1; // offset the s++ + break; + + case OP_GOTO: + s += st->a - 1; // offset the s++ + break; + + case OP_CALL0: + case OP_CALL1: + case OP_CALL2: + case OP_CALL3: + case OP_CALL4: + case OP_CALL5: + case OP_CALL6: + case OP_CALL7: + case OP_CALL8: + pr_argc = st->op - OP_CALL0; + if (!a->function) + PR_RunError ("NULL function"); + + newf = &pr_functions[a->function]; + + if (newf->first_statement < 0) + { // negative statements are built in functions + i = -newf->first_statement; + if (i >= pr_numbuiltins) + PR_RunError ("Bad builtin call number"); + pr_builtins[i] (); + break; + } + + s = PR_EnterFunction (newf); + break; + + case OP_DONE: + case OP_RETURN: + pr_globals[OFS_RETURN] = pr_globals[st->a]; + pr_globals[OFS_RETURN+1] = pr_globals[st->a+1]; + pr_globals[OFS_RETURN+2] = pr_globals[st->a+2]; + + s = PR_LeaveFunction (); + if (pr_depth == exitdepth) + return; // all done + break; + + case OP_STATE: + ed = PROG_TO_EDICT(pr_global_struct->self); + ed->v.nextthink = pr_global_struct->time + 0.1; + if (a->_float != ed->v.frame) + { + ed->v.frame = a->_float; + } + ed->v.think = b->function; + break; + + default: + PR_RunError ("Bad opcode %i", st->op); + } +} + +} diff --git a/quakespasm/Quake/progdefs.h b/quakespasm/Quake/progdefs.h new file mode 100644 index 00000000..790152be --- /dev/null +++ b/quakespasm/Quake/progdefs.h @@ -0,0 +1,21 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 "progdefs.q1" diff --git a/quakespasm/Quake/progdefs.q1 b/quakespasm/Quake/progdefs.q1 new file mode 100644 index 00000000..eb15c45c --- /dev/null +++ b/quakespasm/Quake/progdefs.q1 @@ -0,0 +1,143 @@ + +/* file generated by qcc, do not modify */ + +typedef struct +{ int pad[28]; + int self; + int other; + int world; + float time; + float frametime; + float force_retouch; + string_t mapname; + float deathmatch; + float coop; + float teamplay; + float serverflags; + float total_secrets; + float total_monsters; + float found_secrets; + float killed_monsters; + float parm1; + float parm2; + float parm3; + float parm4; + float parm5; + float parm6; + float parm7; + float parm8; + float parm9; + float parm10; + float parm11; + float parm12; + float parm13; + float parm14; + float parm15; + float parm16; + vec3_t v_forward; + vec3_t v_up; + vec3_t v_right; + float trace_allsolid; + float trace_startsolid; + float trace_fraction; + vec3_t trace_endpos; + vec3_t trace_plane_normal; + float trace_plane_dist; + int trace_ent; + float trace_inopen; + float trace_inwater; + int msg_entity; + func_t main; + func_t StartFrame; + func_t PlayerPreThink; + func_t PlayerPostThink; + func_t ClientKill; + func_t ClientConnect; + func_t PutClientInServer; + func_t ClientDisconnect; + func_t SetNewParms; + func_t SetChangeParms; +} globalvars_t; + +typedef struct +{ + float modelindex; + vec3_t absmin; + vec3_t absmax; + float ltime; + float movetype; + float solid; + vec3_t origin; + vec3_t oldorigin; + vec3_t velocity; + vec3_t angles; + vec3_t avelocity; + vec3_t punchangle; + string_t classname; + string_t model; + float frame; + float skin; + float effects; + vec3_t mins; + vec3_t maxs; + vec3_t size; + func_t touch; + func_t use; + func_t think; + func_t blocked; + float nextthink; + int groundentity; + float health; + float frags; + float weapon; + string_t weaponmodel; + float weaponframe; + float currentammo; + float ammo_shells; + float ammo_nails; + float ammo_rockets; + float ammo_cells; + float items; + float takedamage; + int chain; + float deadflag; + vec3_t view_ofs; + float button0; + float button1; + float button2; + float impulse; + float fixangle; + vec3_t v_angle; + float idealpitch; + string_t netname; + int enemy; + float flags; + float colormap; + float team; + float max_health; + float teleport_time; + float armortype; + float armorvalue; + float waterlevel; + float watertype; + float ideal_yaw; + float yaw_speed; + int aiment; + int goalentity; + float spawnflags; + string_t target; + string_t targetname; + float dmg_take; + float dmg_save; + int dmg_inflictor; + int owner; + vec3_t movedir; + string_t message; + float sounds; + string_t noise; + string_t noise1; + string_t noise2; + string_t noise3; +} entvars_t; + +#define PROGHEADER_CRC 5927 diff --git a/quakespasm/Quake/progs.h b/quakespasm/Quake/progs.h new file mode 100644 index 00000000..c3b6abc3 --- /dev/null +++ b/quakespasm/Quake/progs.h @@ -0,0 +1,134 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 "pr_comp.h" // defs shared with qcc +#include "progdefs.h" // generated by program cdefs + +typedef union eval_s +{ + string_t string; + float _float; + float vector[3]; + func_t function; + int _int; + int edict; +} eval_t; + +#define MAX_ENT_LEAFS 16 +typedef struct edict_s +{ + qboolean free; + link_t area; // linked to a division node or leaf + int num_leafs; + short leafnums[MAX_ENT_LEAFS]; + entity_state_t baseline; + unsigned char alpha; // johnfitz -- hack to support alpha since it's not part of entvars_t + qboolean sendinterval; // johnfitz -- send time until nextthink to client for better lerp timing + float freetime; // sv.time when the object was freed + entvars_t v; // C exported fields from progs +// other fields from progs come immediately after +} edict_t; +#define EDICT_FROM_AREA(l) STRUCT_FROM_LINK(l,edict_t,area) + +//============================================================================ + +extern dprograms_t *progs; +extern dfunction_t *pr_functions; +extern char *pr_strings; +extern ddef_t *pr_globaldefs; +extern ddef_t *pr_fielddefs; +extern dstatement_t *pr_statements; +extern globalvars_t *pr_global_struct; +extern float *pr_globals; // same as pr_global_struct + +extern int pr_edict_size; // in bytes + +//============================================================================ + +void PR_Init (void); + +void PR_ExecuteProgram (func_t fnum); +void PR_LoadProgs (void); + +void PR_Profile_f (void); + +edict_t *ED_Alloc (void); +void ED_Free (edict_t *ed); + +char *ED_NewString (char *string); +// returns a copy of the string allocated from the server's string heap + +void ED_Print (edict_t *ed); +void ED_Write (FILE *f, edict_t *ed); +char *ED_ParseEdict (char *data, edict_t *ent); + +void ED_WriteGlobals (FILE *f); +void ED_ParseGlobals (char *data); + +void ED_LoadFromFile (char *data); + +//define EDICT_NUM(n) ((edict_t *)(sv.edicts+ (n)*pr_edict_size)) +//define NUM_FOR_EDICT(e) (((byte *)(e) - sv.edicts)/pr_edict_size) + +edict_t *EDICT_NUM(int n); +int NUM_FOR_EDICT(edict_t *e); + +#define NEXT_EDICT(e) ((edict_t *)( (byte *)e + pr_edict_size)) + +#define EDICT_TO_PROG(e) ((byte *)e - (byte *)sv.edicts) +#define PROG_TO_EDICT(e) ((edict_t *)((byte *)sv.edicts + e)) + +//============================================================================ + +#define G_FLOAT(o) (pr_globals[o]) +#define G_INT(o) (*(int *)&pr_globals[o]) +#define G_EDICT(o) ((edict_t *)((byte *)sv.edicts+ *(int *)&pr_globals[o])) +#define G_EDICTNUM(o) NUM_FOR_EDICT(G_EDICT(o)) +#define G_VECTOR(o) (&pr_globals[o]) +#define G_STRING(o) (pr_strings + *(string_t *)&pr_globals[o]) +#define G_FUNCTION(o) (*(func_t *)&pr_globals[o]) + +#define E_FLOAT(e,o) (((float*)&e->v)[o]) +#define E_INT(e,o) (*(int *)&((float*)&e->v)[o]) +#define E_VECTOR(e,o) (&((float*)&e->v)[o]) +#define E_STRING(e,o) (pr_strings + *(string_t *)&((float*)&e->v)[o]) + +extern int type_size[8]; + +typedef void (*builtin_t) (void); +extern builtin_t *pr_builtins; +extern int pr_numbuiltins; + +extern int pr_argc; + +extern qboolean pr_trace; +extern dfunction_t *pr_xfunction; +extern int pr_xstatement; + +extern unsigned short pr_crc; + +void PR_RunError (char *error, ...); + +void ED_PrintEdicts (void); +void ED_PrintNum (int ent); + +eval_t *GetEdictFieldValue(edict_t *ed, char *field); + diff --git a/quakespasm/Quake/protocol.h b/quakespasm/Quake/protocol.h new file mode 100644 index 00000000..3e0848b9 --- /dev/null +++ b/quakespasm/Quake/protocol.h @@ -0,0 +1,213 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// protocol.h -- communications protocols + +#define PROTOCOL_NETQUAKE 15 //johnfitz -- standard quake protocol +#define PROTOCOL_FITZQUAKE 666 //johnfitz -- added new protocol for fitzquake 0.85 + +// if the high bit of the servercmd is set, the low bits are fast update flags: +#define U_MOREBITS (1<<0) +#define U_ORIGIN1 (1<<1) +#define U_ORIGIN2 (1<<2) +#define U_ORIGIN3 (1<<3) +#define U_ANGLE2 (1<<4) +#define U_STEP (1<<5) //johnfitz -- was U_NOLERP, renamed since it's only used for MOVETYPE_STEP +#define U_FRAME (1<<6) +#define U_SIGNAL (1<<7) // just differentiates from other updates + +// svc_update can pass all of the fast update bits, plus more +#define U_ANGLE1 (1<<8) +#define U_ANGLE3 (1<<9) +#define U_MODEL (1<<10) +#define U_COLORMAP (1<<11) +#define U_SKIN (1<<12) +#define U_EFFECTS (1<<13) +#define U_LONGENTITY (1<<14) +//johnfitz -- PROTOCOL_FITZQUAKE -- new bits +#define U_EXTEND1 (1<<15) +#define U_ALPHA (1<<16) // 1 byte, uses ENTALPHA_ENCODE, not sent if equal to baseline +#define U_FRAME2 (1<<17) // 1 byte, this is .frame & 0xFF00 (second byte) +#define U_MODEL2 (1<<18) // 1 byte, this is .modelindex & 0xFF00 (second byte) +#define U_LERPFINISH (1<<19) // 1 byte, 0.0-1.0 maps to 0-255, not sent if exactly 0.1, this is ent->v.nextthink - sv.time, used for lerping +#define U_UNUSED20 (1<<20) +#define U_UNUSED21 (1<<21) +#define U_UNUSED22 (1<<22) +#define U_EXTEND2 (1<<23) // another byte to follow, future expansion +//johnfitz + +//johnfitz -- PROTOCOL_NEHAHRA transparency +#define U_TRANS (1<<15) +//johnfitz + +#define SU_VIEWHEIGHT (1<<0) +#define SU_IDEALPITCH (1<<1) +#define SU_PUNCH1 (1<<2) +#define SU_PUNCH2 (1<<3) +#define SU_PUNCH3 (1<<4) +#define SU_VELOCITY1 (1<<5) +#define SU_VELOCITY2 (1<<6) +#define SU_VELOCITY3 (1<<7) +#define SU_UNUSED8 (1<<8) //AVAILABLE BIT +#define SU_ITEMS (1<<9) +#define SU_ONGROUND (1<<10) // no data follows, the bit is it +#define SU_INWATER (1<<11) // no data follows, the bit is it +#define SU_WEAPONFRAME (1<<12) +#define SU_ARMOR (1<<13) +#define SU_WEAPON (1<<14) +//johnfitz -- PROTOCOL_FITZQUAKE -- new bits +#define SU_EXTEND1 (1<<15) // another byte to follow +#define SU_WEAPON2 (1<<16) // 1 byte, this is .weaponmodel & 0xFF00 (second byte) +#define SU_ARMOR2 (1<<17) // 1 byte, this is .armorvalue & 0xFF00 (second byte) +#define SU_AMMO2 (1<<18) // 1 byte, this is .currentammo & 0xFF00 (second byte) +#define SU_SHELLS2 (1<<19) // 1 byte, this is .ammo_shells & 0xFF00 (second byte) +#define SU_NAILS2 (1<<20) // 1 byte, this is .ammo_nails & 0xFF00 (second byte) +#define SU_ROCKETS2 (1<<21) // 1 byte, this is .ammo_rockets & 0xFF00 (second byte) +#define SU_CELLS2 (1<<22) // 1 byte, this is .ammo_cells & 0xFF00 (second byte) +#define SU_EXTEND2 (1<<23) // another byte to follow +#define SU_WEAPONFRAME2 (1<<24) // 1 byte, this is .weaponframe & 0xFF00 (second byte) +#define SU_WEAPONALPHA (1<<25) // 1 byte, this is alpha for weaponmodel, uses ENTALPHA_ENCODE, not sent if ENTALPHA_DEFAULT +#define SU_UNUSED26 (1<<26) +#define SU_UNUSED27 (1<<27) +#define SU_UNUSED28 (1<<28) +#define SU_UNUSED29 (1<<29) +#define SU_UNUSED30 (1<<30) +#define SU_EXTEND3 (1<<31) // another byte to follow, future expansion +//johnfitz + +// a sound with no channel is a local only sound +#define SND_VOLUME (1<<0) // a byte +#define SND_ATTENUATION (1<<1) // a byte +#define SND_LOOPING (1<<2) // a long +//johnfitz -- PROTOCOL_FITZQUAKE -- new bits +#define SND_LARGEENTITY (1<<3) // a short + byte (instead of just a short) +#define SND_LARGESOUND (1<<4) // a short soundindex (instead of a byte) +//johnfitz + +//johnfitz -- PROTOCOL_FITZQUAKE -- flags for entity baseline messages +#define B_LARGEMODEL (1<<0) // modelindex is short instead of byte +#define B_LARGEFRAME (1<<1) // frame is short instead of byte +#define B_ALPHA (1<<2) // 1 byte, uses ENTALPHA_ENCODE, not sent if ENTALPHA_DEFAULT +//johnfitz + +//johnfitz -- PROTOCOL_FITZQUAKE -- alpha encoding +#define ENTALPHA_DEFAULT 0 //entity's alpha is "default" (i.e. water obeys r_wateralpha) -- must be zero so zeroed out memory works +#define ENTALPHA_ZERO 1 //entity is invisible (lowest possible alpha) +#define ENTALPHA_ONE 255 //entity is fully opaque (highest possible alpha) +#define ENTALPHA_ENCODE(a) (((a)==0)?ENTALPHA_DEFAULT:Q_rint(CLAMP(1,(a)*254.0f+1,255))) //server convert to byte to send to client +#define ENTALPHA_DECODE(a) (((a)==ENTALPHA_DEFAULT)?1.0f:((float)(a)-1)/(254)) //client convert to float for rendering +#define ENTALPHA_TOSAVE(a) (((a)==ENTALPHA_DEFAULT)?0.0f:(((a)==ENTALPHA_ZERO)?-1.0f:((float)(a)-1)/(254))) //server convert to float for savegame +//johnfitz + +// defaults for clientinfo messages +#define DEFAULT_VIEWHEIGHT 22 + +// game types sent by serverinfo +// these determine which intermission screen plays +#define GAME_COOP 0 +#define GAME_DEATHMATCH 1 + +//================== +// note that there are some defs.qc that mirror to these numbers +// also related to svc_strings[] in cl_parse +//================== + +// +// server to client +// +#define svc_bad 0 +#define svc_nop 1 +#define svc_disconnect 2 +#define svc_updatestat 3 // [byte] [long] +#define svc_version 4 // [long] server version +#define svc_setview 5 // [short] entity number +#define svc_sound 6 // +#define svc_time 7 // [float] server time +#define svc_print 8 // [string] null terminated string +#define svc_stufftext 9 // [string] stuffed into client's console buffer + // the string should be \n terminated +#define svc_setangle 10 // [angle3] set the view angle to this absolute value +#define svc_serverinfo 11 // [long] version + // [string] signon string + // [string]..[0]model cache + // [string]...[0]sounds cache +#define svc_lightstyle 12 // [byte] [string] +#define svc_updatename 13 // [byte] [string] +#define svc_updatefrags 14 // [byte] [short] +#define svc_clientdata 15 // +#define svc_stopsound 16 // +#define svc_updatecolors 17 // [byte] [byte] +#define svc_particle 18 // [vec3] +#define svc_damage 19 +#define svc_spawnstatic 20 +//#define svc_spawnbinary 21 +#define svc_spawnbaseline 22 +#define svc_temp_entity 23 +#define svc_setpause 24 // [byte] on / off +#define svc_signonnum 25 // [byte] used for the signon sequence +#define svc_centerprint 26 // [string] to put in center of the screen +#define svc_killedmonster 27 +#define svc_foundsecret 28 +#define svc_spawnstaticsound 29 // [coord3] [byte] samp [byte] vol [byte] aten +#define svc_intermission 30 // [string] music +#define svc_finale 31 // [string] music [string] text +#define svc_cdtrack 32 // [byte] track [byte] looptrack +#define svc_sellscreen 33 +#define svc_cutscene 34 + +//johnfitz -- PROTOCOL_FITZQUAKE -- new server messages +#define svc_skybox 37 // [string] name +#define svc_bf 40 +#define svc_fog 41 // [byte] density [byte] red [byte] green [byte] blue [float] time +#define svc_spawnbaseline2 42 // support for large modelindex, large framenum, alpha, using flags +#define svc_spawnstatic2 43 // support for large modelindex, large framenum, alpha, using flags +#define svc_spawnstaticsound2 44 // [coord3] [short] samp [byte] vol [byte] aten +//johnfitz + +// +// client to server +// +#define clc_bad 0 +#define clc_nop 1 +#define clc_disconnect 2 +#define clc_move 3 // [usercmd_t] +#define clc_stringcmd 4 // [string] message + +// +// temp entity events +// +#define TE_SPIKE 0 +#define TE_SUPERSPIKE 1 +#define TE_GUNSHOT 2 +#define TE_EXPLOSION 3 +#define TE_TAREXPLOSION 4 +#define TE_LIGHTNING1 5 +#define TE_LIGHTNING2 6 +#define TE_WIZSPIKE 7 +#define TE_KNIGHTSPIKE 8 +#define TE_LIGHTNING3 9 +#define TE_LAVASPLASH 10 +#define TE_TELEPORT 11 +#define TE_EXPLOSION2 12 + +// PGM 01/21/97 +#define TE_BEAM 13 +// PGM 01/21/97 + diff --git a/quakespasm/Quake/quakedef.h b/quakespasm/Quake/quakedef.h new file mode 100644 index 00000000..8384bcf3 --- /dev/null +++ b/quakespasm/Quake/quakedef.h @@ -0,0 +1,330 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// quakedef.h -- primary header for client + +//#define GLTEST // experimental stuff + +#define QUAKE_GAME // as opposed to utilities + +#define VERSION 1.09 +#define GLQUAKE_VERSION 1.00 +#define D3DQUAKE_VERSION 0.01 +#define WINQUAKE_VERSION 0.996 +#define LINUX_VERSION 1.30 +#define X11_VERSION 1.10 + +#define FITZQUAKE_VERSION 0.85 //johnfitz + +//define PARANOID // speed sapping error checking + +#define GAMENAME "id1" // directory to look in by default + +#include +#include +#include +#include +#include +#include +#include //johnfitz + +#if defined(_WIN32) && !defined(WINDED) + +#if defined(_M_IX86) +#define __i386__ 1 +#endif + +#endif + +#if defined __i386__ // && !defined __sun__ +#define id386 1 +#else +#define id386 0 +#endif + +#if id386 +#define UNALIGNED_OK 1 // set to 0 if unaligned accesses are not supported +#else +#define UNALIGNED_OK 0 +#endif + +// !!! if this is changed, it must be changed in d_ifacea.h too !!! +#define CACHE_SIZE 32 // used to align key data structures + +#define UNUSED(x) (x = x) // for pesky compiler / lint warnings + +#define MINIMUM_MEMORY 0x550000 +#define MINIMUM_MEMORY_LEVELPAK (MINIMUM_MEMORY + 0x100000) + +#define MAX_NUM_ARGVS 50 + +// up / down +#define PITCH 0 + +// left / right +#define YAW 1 + +// fall over +#define ROLL 2 + + +#define MAX_QPATH 64 // max length of a quake game pathname +#define MAX_OSPATH 128 // max length of a filesystem pathname + +#define ON_EPSILON 0.1 // point on plane side epsilon + +#define MAX_MSGLEN 32000 // max length of a reliable message //johnfitz -- was 8000 +#define MAX_DATAGRAM 32000 // max length of unreliable message //johnfitz -- was 1024 + +#define DATAGRAM_MTU 1400 // johnfitz -- actual limit for unreliable messages to nonlocal clients + +// +// per-level limits +// + +#define MIN_EDICTS 256 // johnfitz -- lowest allowed value for max_edicts cvar +#define MAX_EDICTS 32000 // johnfitz -- highest allowed value for max_edicts cvar + // ents past 8192 can't play sounds in the standard protocol +#define MAX_LIGHTSTYLES 64 +#define MAX_MODELS 2048 // johnfitz -- was 256 +#define MAX_SOUNDS 2048 // johnfitz -- was 256 + +#define SAVEGAME_COMMENT_LENGTH 39 + +#define MAX_STYLESTRING 64 + +// +// stats are integers communicated to the client by the server +// +#define MAX_CL_STATS 32 +#define STAT_HEALTH 0 +#define STAT_FRAGS 1 +#define STAT_WEAPON 2 +#define STAT_AMMO 3 +#define STAT_ARMOR 4 +#define STAT_WEAPONFRAME 5 +#define STAT_SHELLS 6 +#define STAT_NAILS 7 +#define STAT_ROCKETS 8 +#define STAT_CELLS 9 +#define STAT_ACTIVEWEAPON 10 +#define STAT_TOTALSECRETS 11 +#define STAT_TOTALMONSTERS 12 +#define STAT_SECRETS 13 // bumped on client side by svc_foundsecret +#define STAT_MONSTERS 14 // bumped by svc_killedmonster + +// stock defines + +#define IT_SHOTGUN 1 +#define IT_SUPER_SHOTGUN 2 +#define IT_NAILGUN 4 +#define IT_SUPER_NAILGUN 8 +#define IT_GRENADE_LAUNCHER 16 +#define IT_ROCKET_LAUNCHER 32 +#define IT_LIGHTNING 64 +#define IT_SUPER_LIGHTNING 128 +#define IT_SHELLS 256 +#define IT_NAILS 512 +#define IT_ROCKETS 1024 +#define IT_CELLS 2048 +#define IT_AXE 4096 +#define IT_ARMOR1 8192 +#define IT_ARMOR2 16384 +#define IT_ARMOR3 32768 +#define IT_SUPERHEALTH 65536 +#define IT_KEY1 131072 +#define IT_KEY2 262144 +#define IT_INVISIBILITY 524288 +#define IT_INVULNERABILITY 1048576 +#define IT_SUIT 2097152 +#define IT_QUAD 4194304 +#define IT_SIGIL1 (1<<28) +#define IT_SIGIL2 (1<<29) +#define IT_SIGIL3 (1<<30) +#define IT_SIGIL4 (1<<31) + +//=========================================== +//rogue changed and added defines + +#define RIT_SHELLS 128 +#define RIT_NAILS 256 +#define RIT_ROCKETS 512 +#define RIT_CELLS 1024 +#define RIT_AXE 2048 +#define RIT_LAVA_NAILGUN 4096 +#define RIT_LAVA_SUPER_NAILGUN 8192 +#define RIT_MULTI_GRENADE 16384 +#define RIT_MULTI_ROCKET 32768 +#define RIT_PLASMA_GUN 65536 +#define RIT_ARMOR1 8388608 +#define RIT_ARMOR2 16777216 +#define RIT_ARMOR3 33554432 +#define RIT_LAVA_NAILS 67108864 +#define RIT_PLASMA_AMMO 134217728 +#define RIT_MULTI_ROCKETS 268435456 +#define RIT_SHIELD 536870912 +#define RIT_ANTIGRAV 1073741824 +#define RIT_SUPERHEALTH 2147483648 + +//MED 01/04/97 added hipnotic defines +//=========================================== +//hipnotic added defines +#define HIT_PROXIMITY_GUN_BIT 16 +#define HIT_MJOLNIR_BIT 7 +#define HIT_LASER_CANNON_BIT 23 +#define HIT_PROXIMITY_GUN (1<posedata); + verts2 = verts1; + verts1 += lerpdata.pose1 * paliashdr->poseverts; + verts2 += lerpdata.pose2 * paliashdr->poseverts; + blend = lerpdata.blend; + iblend = 1.0f - blend; + } + else // poses the same means either 1. the entity has paused its animation, or 2. r_lerpmodels is disabled + { + lerping = false; + verts1 = (trivertx_t *)((byte *)paliashdr + paliashdr->posedata); + verts1 += lerpdata.pose1 * paliashdr->poseverts; + } + + commands = (int *)((byte *)paliashdr + paliashdr->commands); + + vertcolor[3] = entalpha; //never changes, so there's no need to put this inside the loop + + while (1) + { + // get the vertex count and primitive type + count = *commands++; + if (!count) + break; // done + + if (count < 0) + { + count = -count; + glBegin (GL_TRIANGLE_FAN); + } + else + glBegin (GL_TRIANGLE_STRIP); + + do + { + u = ((float *)commands)[0]; + v = ((float *)commands)[1]; + if (mtexenabled) + { + GL_MTexCoord2fFunc (TEXTURE0, u, v); + GL_MTexCoord2fFunc (TEXTURE1, u, v); + } + else + glTexCoord2f (u, v); + + commands += 2; + + if (shading) + { + if (r_drawflat_cheatsafe) + { + srand(count * (unsigned int) commands); + glColor3f (rand()%256/255.0, rand()%256/255.0, rand()%256/255.0); + } + else if (lerping) + { + vertcolor[0] = (shadedots[verts1->lightnormalindex]*iblend + shadedots[verts2->lightnormalindex]*blend) * lightcolor[0]; + vertcolor[1] = (shadedots[verts1->lightnormalindex]*iblend + shadedots[verts2->lightnormalindex]*blend) * lightcolor[1]; + vertcolor[2] = (shadedots[verts1->lightnormalindex]*iblend + shadedots[verts2->lightnormalindex]*blend) * lightcolor[2]; + glColor4fv (vertcolor); + } + else + { + vertcolor[0] = shadedots[verts1->lightnormalindex] * lightcolor[0]; + vertcolor[1] = shadedots[verts1->lightnormalindex] * lightcolor[1]; + vertcolor[2] = shadedots[verts1->lightnormalindex] * lightcolor[2]; + glColor4fv (vertcolor); + } + } + + if (lerping) + { + glVertex3f (verts1->v[0]*iblend + verts2->v[0]*blend, + verts1->v[1]*iblend + verts2->v[1]*blend, + verts1->v[2]*iblend + verts2->v[2]*blend); + verts1++; + verts2++; + } + else + { + glVertex3f (verts1->v[0], verts1->v[1], verts1->v[2]); + verts1++; + } + } while (--count); + + glEnd (); + } + + rs_aliaspasses += paliashdr->numtris; +} + +/* +================= +R_SetupAliasFrame -- johnfitz -- rewritten to support lerping +================= +*/ +void R_SetupAliasFrame (aliashdr_t *paliashdr, int frame, lerpdata_t *lerpdata) +{ + entity_t *e = currententity; + int posenum, numposes; + + if ((frame >= paliashdr->numframes) || (frame < 0)) + { + Con_DPrintf ("R_AliasSetupFrame: no such frame %d\n", frame); + frame = 0; + } + + posenum = paliashdr->frames[frame].firstpose; + numposes = paliashdr->frames[frame].numposes; + + if (numposes > 1) + { + e->lerptime = paliashdr->frames[frame].interval; + posenum += (int)(cl.time / e->lerptime) % numposes; + } + else + e->lerptime = 0.1; + + if (e->lerpflags & LERP_RESETANIM) //kill any lerp in progress + { + e->lerpstart = 0; + e->previouspose = posenum; + e->currentpose = posenum; + e->lerpflags -= LERP_RESETANIM; + } + else if (e->currentpose != posenum) // pose changed, start new lerp + { + if (e->lerpflags & LERP_RESETANIM2) //defer lerping one more time + { + e->lerpstart = 0; + e->previouspose = posenum; + e->currentpose = posenum; + e->lerpflags -= LERP_RESETANIM2; + } + else + { + e->lerpstart = cl.time; + e->previouspose = e->currentpose; + e->currentpose = posenum; + } + } + + //set up values + if (r_lerpmodels.value && !(e->model->flags & MOD_NOLERP && r_lerpmodels.value != 2)) + { + if (e->lerpflags & LERP_FINISH && numposes == 1) + lerpdata->blend = CLAMP (0, (cl.time - e->lerpstart) / (e->lerpfinish - e->lerpstart), 1); + else + lerpdata->blend = CLAMP (0, (cl.time - e->lerpstart) / e->lerptime, 1); + lerpdata->pose1 = e->previouspose; + lerpdata->pose2 = e->currentpose; + } + else //don't lerp + { + lerpdata->blend = 1; + lerpdata->pose1 = posenum; + lerpdata->pose2 = posenum; + } +} + +/* +================= +R_SetupEntityTransform -- johnfitz -- set up transform part of lerpdata +================= +*/ +void R_SetupEntityTransform (entity_t *e, lerpdata_t *lerpdata) +{ + float blend; + vec3_t d; + int i; + + // if LERP_RESETMOVE, kill any lerps in progress + if (e->lerpflags & LERP_RESETMOVE) + { + e->movelerpstart = 0; + VectorCopy (e->origin, e->previousorigin); + VectorCopy (e->origin, e->currentorigin); + VectorCopy (e->angles, e->previousangles); + VectorCopy (e->angles, e->currentangles); + e->lerpflags -= LERP_RESETMOVE; + } + else if (!VectorCompare (e->origin, e->currentorigin) || !VectorCompare (e->angles, e->currentangles)) // origin/angles changed, start new lerp + { + e->movelerpstart = cl.time; + VectorCopy (e->currentorigin, e->previousorigin); + VectorCopy (e->origin, e->currentorigin); + VectorCopy (e->currentangles, e->previousangles); + VectorCopy (e->angles, e->currentangles); + } + + //set up values + if (r_lerpmove.value && e != &cl.viewent && e->lerpflags & LERP_MOVESTEP) + { + if (e->lerpflags & LERP_FINISH) + blend = CLAMP (0, (cl.time - e->movelerpstart) / (e->lerpfinish - e->movelerpstart), 1); + else + blend = CLAMP (0, (cl.time - e->movelerpstart) / 0.1, 1); + + //translation + VectorSubtract (e->currentorigin, e->previousorigin, d); + lerpdata->origin[0] = e->previousorigin[0] + d[0] * blend; + lerpdata->origin[1] = e->previousorigin[1] + d[1] * blend; + lerpdata->origin[2] = e->previousorigin[2] + d[2] * blend; + + //rotation + VectorSubtract (e->currentangles, e->previousangles, d); + for (i = 0; i < 3; i++) + { + if (d[i] > 180) d[i] -= 360; + if (d[i] < -180) d[i] += 360; + } + lerpdata->angles[0] = e->previousangles[0] + d[0] * blend; + lerpdata->angles[1] = e->previousangles[1] + d[1] * blend; + lerpdata->angles[2] = e->previousangles[2] + d[2] * blend; + } + else //don't lerp + { + VectorCopy (e->origin, lerpdata->origin); + VectorCopy (e->angles, lerpdata->angles); + } +} + +/* +================= +R_SetupAliasLighting -- johnfitz -- broken out from R_DrawAliasModel and rewritten +================= +*/ +void R_SetupAliasLighting (entity_t *e) +{ + vec3_t dist; + float add; + int i; + + R_LightPoint (e->origin); + + //add dlights + for (i=0 ; i= cl.time) + { + VectorSubtract (currententity->origin, cl_dlights[i].origin, dist); + add = cl_dlights[i].radius - Length(dist); + if (add > 0) + VectorMA (lightcolor, add, cl_dlights[i].color, lightcolor); + } + } + + // minimum light value on gun (24) + if (e == &cl.viewent) + { + add = 72.0f - (lightcolor[0] + lightcolor[1] + lightcolor[2]); + if (add > 0.0f) + { + lightcolor[0] += add / 3.0f; + lightcolor[1] += add / 3.0f; + lightcolor[2] += add / 3.0f; + } + } + + // minimum light value on players (8) + if (currententity > cl_entities && currententity <= cl_entities + cl.maxclients) + { + add = 24.0f - (lightcolor[0] + lightcolor[1] + lightcolor[2]); + if (add > 0.0f) + { + lightcolor[0] += add / 3.0f; + lightcolor[1] += add / 3.0f; + lightcolor[2] += add / 3.0f; + } + } + + // clamp lighting so it doesn't overbright as much (96) + if (overbright) + { + add = 288.0f / (lightcolor[0] + lightcolor[1] + lightcolor[2]); + if (add < 1.0f) + VectorScale(lightcolor, add, lightcolor); + } + + //hack up the brightness when fullbrights but no overbrights (256) + if (gl_fullbrights.value && !gl_overbright_models.value) + if (e->model->flags & MOD_FBRIGHTHACK) + { + lightcolor[0] = 256.0f; + lightcolor[1] = 256.0f; + lightcolor[2] = 256.0f; + } + + shadedots = r_avertexnormal_dots[((int)(e->angles[1] * (SHADEDOT_QUANT / 360.0))) & (SHADEDOT_QUANT - 1)]; + VectorScale(lightcolor, 1.0f / 200.0f, lightcolor); +} + +/* +================= +R_DrawAliasModel -- johnfitz -- almost completely rewritten +================= +*/ +void R_DrawAliasModel (entity_t *e) +{ + aliashdr_t *paliashdr; + vec3_t mins, maxs; + int i, anim; + gltexture_t *tx, *fb; + lerpdata_t lerpdata; + + // + // setup pose/lerp data -- do it first so we don't miss updates due to culling + // + paliashdr = (aliashdr_t *)Mod_Extradata (e->model); + R_SetupAliasFrame (paliashdr, e->frame, &lerpdata); + R_SetupEntityTransform (e, &lerpdata); + + // + // cull it + // + if (R_CullModelForEntity(e)) + return; + + // + // transform it + // + glPushMatrix (); + R_RotateForEntity (lerpdata.origin, lerpdata.angles); + glTranslatef (paliashdr->scale_origin[0], paliashdr->scale_origin[1], paliashdr->scale_origin[2]); + glScalef (paliashdr->scale[0], paliashdr->scale[1], paliashdr->scale[2]); + + // + // random stuff + // + if (gl_smoothmodels.value && !r_drawflat_cheatsafe) + glShadeModel (GL_SMOOTH); + if (gl_affinemodels.value) + glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); + overbright = gl_overbright_models.value; + shading = true; + + // + // set up for alpha blending + // + if (r_drawflat_cheatsafe || r_lightmap_cheatsafe) //no alpha in drawflat or lightmap mode + entalpha = 1; + else + entalpha = ENTALPHA_DECODE(e->alpha); + if (entalpha == 0) + goto cleanup; + if (entalpha < 1) + { + if (!gl_texture_env_combine) overbright = false; //overbright can't be done in a single pass without combiners + glDepthMask(GL_FALSE); + glEnable(GL_BLEND); + } + + // + // set up lighting + // + rs_aliaspolys += paliashdr->numtris; + R_SetupAliasLighting (e); + + // + // set up textures + // + GL_DisableMultitexture(); + anim = (int)(cl.time*10) & 3; + tx = paliashdr->gltextures[e->skinnum][anim]; + fb = paliashdr->fbtextures[e->skinnum][anim]; + if (e->colormap != vid.colormap && !gl_nocolors.value) + { + i = e - cl_entities; + if (i >= 1 && i<=cl.maxclients /* && !strcmp (currententity->model->name, "progs/player.mdl") */) + tx = playertextures[i - 1]; + } + if (!gl_fullbrights.value) + fb = NULL; + + // + // draw it + // + if (r_drawflat_cheatsafe) + { + glDisable (GL_TEXTURE_2D); + GL_DrawAliasFrame (paliashdr, lerpdata); + glEnable (GL_TEXTURE_2D); + srand((int) (cl.time * 1000)); //restore randomness + } + else if (r_fullbright_cheatsafe) + { + GL_Bind (tx); + shading = false; + glColor4f(1,1,1,entalpha); + GL_DrawAliasFrame (paliashdr, lerpdata); + if (fb) + { + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_Bind(fb); + glEnable(GL_BLEND); + glBlendFunc (GL_ONE, GL_ONE); + glDepthMask(GL_FALSE); + glColor3f(entalpha,entalpha,entalpha); + Fog_StartAdditive (); + GL_DrawAliasFrame (paliashdr, lerpdata); + Fog_StopAdditive (); + glDepthMask(GL_TRUE); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable(GL_BLEND); + } + } + else if (r_lightmap_cheatsafe) + { + glDisable (GL_TEXTURE_2D); + shading = false; + glColor3f(1,1,1); + GL_DrawAliasFrame (paliashdr, lerpdata); + glEnable (GL_TEXTURE_2D); + } + else if (overbright) + { + if (gl_texture_env_combine && gl_mtexable && gl_texture_env_add && fb) //case 1: everything in one pass + { + GL_Bind (tx); + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); + glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_MODULATE); + glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_TEXTURE); + glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PRIMARY_COLOR_EXT); + glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 2.0f); + GL_EnableMultitexture(); // selects TEXTURE1 + GL_Bind (fb); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD); + glEnable(GL_BLEND); + GL_DrawAliasFrame (paliashdr, lerpdata); + glDisable(GL_BLEND); + GL_DisableMultitexture(); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + else if (gl_texture_env_combine) //case 2: overbright in one pass, then fullbright pass + { + // first pass + GL_Bind(tx); + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); + glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_MODULATE); + glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_TEXTURE); + glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_PRIMARY_COLOR_EXT); + glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 2.0f); + GL_DrawAliasFrame (paliashdr, lerpdata); + glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 1.0f); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + // second pass + if (fb) + { + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_Bind(fb); + glEnable(GL_BLEND); + glBlendFunc (GL_ONE, GL_ONE); + glDepthMask(GL_FALSE); + shading = false; + glColor3f(entalpha,entalpha,entalpha); + Fog_StartAdditive (); + GL_DrawAliasFrame (paliashdr, lerpdata); + Fog_StopAdditive (); + glDepthMask(GL_TRUE); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + } + else //case 3: overbright in two passes, then fullbright pass + { + // first pass + GL_Bind(tx); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_DrawAliasFrame (paliashdr, lerpdata); + // second pass -- additive with black fog, to double the object colors but not the fog color + glEnable(GL_BLEND); + glBlendFunc (GL_ONE, GL_ONE); + glDepthMask(GL_FALSE); + Fog_StartAdditive (); + GL_DrawAliasFrame (paliashdr, lerpdata); + Fog_StopAdditive (); + glDepthMask(GL_TRUE); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable(GL_BLEND); + // third pass + if (fb) + { + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_Bind(fb); + glEnable(GL_BLEND); + glBlendFunc (GL_ONE, GL_ONE); + glDepthMask(GL_FALSE); + shading = false; + glColor3f(entalpha,entalpha,entalpha); + Fog_StartAdditive (); + GL_DrawAliasFrame (paliashdr, lerpdata); + Fog_StopAdditive (); + glDepthMask(GL_TRUE); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + } + } + else + { + if (gl_mtexable && gl_texture_env_add && fb) //case 4: fullbright mask using multitexture + { + GL_DisableMultitexture(); // selects TEXTURE0 + GL_Bind (tx); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_EnableMultitexture(); // selects TEXTURE1 + GL_Bind (fb); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_ADD); + glEnable(GL_BLEND); + GL_DrawAliasFrame (paliashdr, lerpdata); + glDisable(GL_BLEND); + GL_DisableMultitexture(); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + else //case 5: fullbright mask without multitexture + { + // first pass + GL_Bind(tx); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_DrawAliasFrame (paliashdr, lerpdata); + // second pass + if (fb) + { + GL_Bind(fb); + glEnable(GL_BLEND); + glBlendFunc (GL_ONE, GL_ONE); + glDepthMask(GL_FALSE); + shading = false; + glColor3f(entalpha,entalpha,entalpha); + Fog_StartAdditive (); + GL_DrawAliasFrame (paliashdr, lerpdata); + Fog_StopAdditive (); + glDepthMask(GL_TRUE); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable(GL_BLEND); + } + } + } + +cleanup: + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glHint (GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); + glShadeModel (GL_FLAT); + glDepthMask(GL_TRUE); + glDisable(GL_BLEND); + glColor3f(1,1,1); + glPopMatrix (); +} + +//johnfitz -- values for shadow matrix +#define SHADOW_SKEW_X -0.7 //skew along x axis. -0.7 to mimic glquake shadows +#define SHADOW_SKEW_Y 0 //skew along y axis. 0 to mimic glquake shadows +#define SHADOW_VSCALE 0 //0=completely flat +#define SHADOW_HEIGHT 0.1 //how far above the floor to render the shadow +//johnfitz + +/* +============= +GL_DrawAliasShadow -- johnfitz -- rewritten + +TODO: orient shadow onto "lightplane" (a global mplane_t*) +============= +*/ +void GL_DrawAliasShadow (entity_t *e) +{ + float shadowmatrix[16] = {1, 0, 0, 0, + 0, 1, 0, 0, + SHADOW_SKEW_X, SHADOW_SKEW_Y, SHADOW_VSCALE, 0, + 0, 0, SHADOW_HEIGHT, 1}; + float lheight; + aliashdr_t *paliashdr; + vec3_t mins, maxs; + lerpdata_t lerpdata; + + if (R_CullModelForEntity(e)) + return; + + if (e == &cl.viewent || e->model->flags & MOD_NOSHADOW) + return; + + entalpha = ENTALPHA_DECODE(e->alpha); + if (entalpha == 0) return; + + paliashdr = (aliashdr_t *)Mod_Extradata (e->model); + R_SetupAliasFrame (paliashdr, e->frame, &lerpdata); + R_SetupEntityTransform (e, &lerpdata); + R_LightPoint (e->origin); + lheight = currententity->origin[2] - lightspot[2]; + +// set up matrix + glPushMatrix (); + glTranslatef (lerpdata.origin[0], lerpdata.origin[1], lerpdata.origin[2]); + glTranslatef (0,0,-lheight); + glMultMatrixf (shadowmatrix); + glTranslatef (0,0,lheight); + glRotatef (lerpdata.angles[1], 0, 0, 1); + glRotatef (-lerpdata.angles[0], 0, 1, 0); + glRotatef (lerpdata.angles[2], 1, 0, 0); + glTranslatef (paliashdr->scale_origin[0], paliashdr->scale_origin[1], paliashdr->scale_origin[2]); + glScalef (paliashdr->scale[0], paliashdr->scale[1], paliashdr->scale[2]); + +// draw it + glDepthMask(GL_FALSE); + glEnable (GL_BLEND); + GL_DisableMultitexture (); + glDisable (GL_TEXTURE_2D); + shading = false; + glColor4f(0,0,0,entalpha * 0.5); + GL_DrawAliasFrame (paliashdr, lerpdata); + glEnable (GL_TEXTURE_2D); + glDisable (GL_BLEND); + glDepthMask(GL_TRUE); + +//clean up + glPopMatrix (); +} + +/* +================= +R_DrawAliasModel_ShowTris -- johnfitz +================= +*/ +void R_DrawAliasModel_ShowTris (entity_t *e) +{ + aliashdr_t *paliashdr; + vec3_t mins, maxs; + lerpdata_t lerpdata; + + if (R_CullModelForEntity(e)) + return; + + paliashdr = (aliashdr_t *)Mod_Extradata (e->model); + R_SetupAliasFrame (paliashdr, e->frame, &lerpdata); + R_SetupEntityTransform (e, &lerpdata); + + glPushMatrix (); + R_RotateForEntity (lerpdata.origin,lerpdata.angles); + glTranslatef (paliashdr->scale_origin[0], paliashdr->scale_origin[1], paliashdr->scale_origin[2]); + glScalef (paliashdr->scale[0], paliashdr->scale[1], paliashdr->scale[2]); + + shading = false; + glColor3f(1,1,1); + GL_DrawAliasFrame (paliashdr, lerpdata); + + glPopMatrix (); +} \ No newline at end of file diff --git a/quakespasm/Quake/r_brush.c b/quakespasm/Quake/r_brush.c new file mode 100644 index 00000000..05b406b0 --- /dev/null +++ b/quakespasm/Quake/r_brush.c @@ -0,0 +1,1197 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// r_brush.c: brush model rendering. renamed from r_surf.c + +#include "quakedef.h" + +extern cvar_t gl_fullbrights, r_drawflat, gl_overbright, r_oldwater; //johnfitz + +int gl_lightmap_format; +int lightmap_bytes; + +#define BLOCK_WIDTH 128 //johnfitz -- was 128 +#define BLOCK_HEIGHT 128 //johnfitz -- was 128 + +unsigned blocklights[BLOCK_WIDTH*BLOCK_HEIGHT*3]; //johnfitz -- was 18*18, added lit support (*3) and loosened surface extents maximum (BLOCK_WIDTH*BLOCK_HEIGHT) + +typedef struct glRect_s { + unsigned char l,t,w,h; +} glRect_t; + +glpoly_t *lightmap_polys[MAX_LIGHTMAPS]; +qboolean lightmap_modified[MAX_LIGHTMAPS]; +glRect_t lightmap_rectchange[MAX_LIGHTMAPS]; + +int allocated[MAX_LIGHTMAPS][BLOCK_WIDTH]; + +// the lightmap texture data needs to be kept in +// main memory so texsubimage can update properly +byte lightmaps[4*MAX_LIGHTMAPS*BLOCK_WIDTH*BLOCK_HEIGHT]; + +void R_RenderDynamicLightmaps (msurface_t *fa); +void R_BuildLightMap (msurface_t *surf, byte *dest, int stride); +void R_UploadLightmap (int lmap); + +/* +=============== +R_TextureAnimation -- johnfitz -- added "frame" param to eliminate use of "currententity" global + +Returns the proper texture for a given time and base texture +=============== +*/ +texture_t *R_TextureAnimation (texture_t *base, int frame) +{ + int relative; + int count; + + if (frame) + if (base->alternate_anims) + base = base->alternate_anims; + + if (!base->anim_total) + return base; + + relative = (int)(cl.time*10) % base->anim_total; + + count = 0; + while (base->anim_min > relative || base->anim_max <= relative) + { + base = base->anim_next; + if (!base) + Sys_Error ("R_TextureAnimation: broken cycle"); + if (++count > 100) + Sys_Error ("R_TextureAnimation: infinite cycle"); + } + + return base; +} + +/* +================ +DrawGLPoly +================ +*/ +void DrawGLPoly (glpoly_t *p) +{ + float *v; + int i; + + glBegin (GL_POLYGON); + v = p->verts[0]; + for (i=0 ; inumverts ; i++, v+= VERTEXSIZE) + { + glTexCoord2f (v[3], v[4]); + glVertex3fv (v); + } + glEnd (); +} + +/* +================ +DrawGLTriangleFan -- johnfitz -- like DrawGLPoly but for r_showtris +================ +*/ +void DrawGLTriangleFan (glpoly_t *p) +{ + float *v; + int i; + + glBegin (GL_TRIANGLE_FAN); + v = p->verts[0]; + for (i=0 ; inumverts ; i++, v+= VERTEXSIZE) + { + glVertex3fv (v); + } + glEnd (); +} + +/* +============================================================= + + BRUSH MODELS + +============================================================= +*/ + +/* +================ +R_DrawSequentialPoly -- johnfitz -- rewritten +================ +*/ +void R_DrawSequentialPoly (msurface_t *s) +{ + glpoly_t *p; + texture_t *t; + float *v; + float entalpha; + int i; + + t = R_TextureAnimation (s->texinfo->texture, currententity->frame); + entalpha = ENTALPHA_DECODE(currententity->alpha); + +// drawflat + if (r_drawflat_cheatsafe) + { + if ((s->flags & SURF_DRAWTURB) && r_oldwater.value) + { + for (p = s->polys->next; p; p = p->next) + { + srand((unsigned int) p); + glColor3f (rand()%256/255.0, rand()%256/255.0, rand()%256/255.0); + DrawGLPoly (p); + rs_brushpasses++; + } + return; + } + + srand((unsigned int) s->polys); + glColor3f (rand()%256/255.0, rand()%256/255.0, rand()%256/255.0); + DrawGLPoly (s->polys); + rs_brushpasses++; + return; + } + +// fullbright + if ((r_fullbright_cheatsafe) && !(s->flags & SURF_DRAWTILED)) + { + if (entalpha < 1) + { + glDepthMask(GL_FALSE); + glEnable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor4f(1, 1, 1, entalpha); + } + GL_Bind (t->gltexture); + DrawGLPoly (s->polys); + rs_brushpasses++; + if (entalpha < 1) + { + glDepthMask(GL_TRUE); + glDisable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glColor3f(1, 1, 1); + } + goto fullbrights; + } + +// r_lightmap + if (r_lightmap_cheatsafe) + { + if (s->flags & SURF_DRAWTILED) + { + glDisable (GL_TEXTURE_2D); + DrawGLPoly (s->polys); + glEnable (GL_TEXTURE_2D); + rs_brushpasses++; + return; + } + + R_RenderDynamicLightmaps (s); + GL_Bind (lightmap_textures[s->lightmaptexturenum]); + R_UploadLightmap(s->lightmaptexturenum); + if (!gl_overbright.value) + { + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(0.5, 0.5, 0.5); + } + glBegin (GL_POLYGON); + v = s->polys->verts[0]; + for (i=0 ; ipolys->numverts ; i++, v+= VERTEXSIZE) + { + glTexCoord2f (v[5], v[6]); + glVertex3fv (v); + } + glEnd (); + if (!gl_overbright.value) + { + glColor3f(1,1,1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + rs_brushpasses++; + return; + } + +// sky poly -- skip it, already handled in gl_sky.c + if (s->flags & SURF_DRAWSKY) + return; + +// water poly + if (s->flags & SURF_DRAWTURB) + { + if (currententity->alpha == ENTALPHA_DEFAULT) + entalpha = CLAMP(0.0,r_wateralpha.value,1.0); + + if (entalpha < 1) + { + glDepthMask(GL_FALSE); + glEnable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor4f(1, 1, 1, entalpha); + } + if (r_oldwater.value) + { + GL_Bind (s->texinfo->texture->gltexture); + for (p = s->polys->next; p; p = p->next) + { + DrawWaterPoly (p); + rs_brushpasses++; + } + rs_brushpasses++; + } + else + { + GL_Bind (s->texinfo->texture->warpimage); + s->texinfo->texture->update_warp = true; // FIXME: one frame too late! + DrawGLPoly (s->polys); + rs_brushpasses++; + } + if (entalpha < 1) + { + glDepthMask(GL_TRUE); + glDisable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glColor3f(1, 1, 1); + } + return; + } + +// missing texture + if (s->flags & SURF_NOTEXTURE) + { + if (entalpha < 1) + { + glDepthMask(GL_FALSE); + glEnable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor4f(1, 1, 1, entalpha); + } + GL_Bind (t->gltexture); + DrawGLPoly (s->polys); + rs_brushpasses++; + if (entalpha < 1) + { + glDepthMask(GL_TRUE); + glDisable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glColor3f(1, 1, 1); + } + return; + } + +// lightmapped poly + if (entalpha < 1) + { + glDepthMask(GL_FALSE); + glEnable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor4f(1, 1, 1, entalpha); + } + else + glColor3f(1, 1, 1); + if (gl_overbright.value) + { + if (gl_texture_env_combine && gl_mtexable) //case 1: texture and lightmap in one pass, overbright using texture combiners + { + GL_DisableMultitexture(); // selects TEXTURE0 + GL_Bind (t->gltexture); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_EnableMultitexture(); // selects TEXTURE1 + GL_Bind (lightmap_textures[s->lightmaptexturenum]); + R_RenderDynamicLightmaps (s); + R_UploadLightmap(s->lightmaptexturenum); + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); + glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_MODULATE); + glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_PREVIOUS_EXT); + glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_TEXTURE); + glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 2.0f); + glBegin(GL_POLYGON); + v = s->polys->verts[0]; + for (i=0 ; ipolys->numverts ; i++, v+= VERTEXSIZE) + { + GL_MTexCoord2fFunc (TEXTURE0, v[3], v[4]); + GL_MTexCoord2fFunc (TEXTURE1, v[5], v[6]); + glVertex3fv (v); + } + glEnd (); + glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 1.0f); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_DisableMultitexture (); + rs_brushpasses++; + } + else if (entalpha < 1) //case 2: can't do multipass if entity has alpha, so just draw the texture + { + GL_Bind (t->gltexture); + DrawGLPoly (s->polys); + rs_brushpasses++; + } + else //case 3: texture in one pass, lightmap in second pass using 2x modulation blend func, fog in third pass + { + //first pass -- texture with no fog + Fog_DisableGFog (); + GL_Bind (t->gltexture); + DrawGLPoly (s->polys); + Fog_EnableGFog (); + rs_brushpasses++; + + //second pass -- lightmap with black fog, modulate blended + R_RenderDynamicLightmaps (s); + GL_Bind (lightmap_textures[s->lightmaptexturenum]); + R_UploadLightmap(s->lightmaptexturenum); + glDepthMask (GL_FALSE); + glEnable (GL_BLEND); + glBlendFunc(GL_DST_COLOR, GL_SRC_COLOR); //2x modulate + Fog_StartAdditive (); + glBegin (GL_POLYGON); + v = s->polys->verts[0]; + for (i=0 ; ipolys->numverts ; i++, v+= VERTEXSIZE) + { + glTexCoord2f (v[5], v[6]); + glVertex3fv (v); + } + glEnd (); + Fog_StopAdditive (); + rs_brushpasses++; + + //third pass -- black geo with normal fog, additive blended + if (Fog_GetDensity() > 0) + { + glBlendFunc(GL_ONE, GL_ONE); //add + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(0,0,0); + DrawGLPoly (s->polys); + glColor3f(1,1,1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + rs_brushpasses++; + } + + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable (GL_BLEND); + glDepthMask (GL_TRUE); + } + } + else + { + if (gl_mtexable) //case 4: texture and lightmap in one pass, regular modulation + { + GL_DisableMultitexture(); // selects TEXTURE0 + GL_Bind (t->gltexture); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_EnableMultitexture(); // selects TEXTURE1 + GL_Bind (lightmap_textures[s->lightmaptexturenum]); + R_RenderDynamicLightmaps (s); + R_UploadLightmap(s->lightmaptexturenum); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glBegin(GL_POLYGON); + v = s->polys->verts[0]; + for (i=0 ; ipolys->numverts ; i++, v+= VERTEXSIZE) + { + GL_MTexCoord2fFunc (TEXTURE0, v[3], v[4]); + GL_MTexCoord2fFunc (TEXTURE1, v[5], v[6]); + glVertex3fv (v); + } + glEnd (); + GL_DisableMultitexture (); + rs_brushpasses++; + } + else if (entalpha < 1) //case 5: can't do multipass if entity has alpha, so just draw the texture + { + GL_Bind (t->gltexture); + DrawGLPoly (s->polys); + rs_brushpasses++; + } + else //case 6: texture in one pass, lightmap in a second pass, fog in third pass + { + //first pass -- texture with no fog + Fog_DisableGFog (); + GL_Bind (t->gltexture); + DrawGLPoly (s->polys); + Fog_EnableGFog (); + rs_brushpasses++; + + //second pass -- lightmap with black fog, modulate blended + R_RenderDynamicLightmaps (s); + GL_Bind (lightmap_textures[s->lightmaptexturenum]); + R_UploadLightmap(s->lightmaptexturenum); + glDepthMask (GL_FALSE); + glEnable (GL_BLEND); + glBlendFunc (GL_ZERO, GL_SRC_COLOR); //modulate + Fog_StartAdditive (); + glBegin (GL_POLYGON); + v = s->polys->verts[0]; + for (i=0 ; ipolys->numverts ; i++, v+= VERTEXSIZE) + { + glTexCoord2f (v[5], v[6]); + glVertex3fv (v); + } + glEnd (); + Fog_StopAdditive (); + rs_brushpasses++; + + //third pass -- black geo with normal fog, additive blended + if (Fog_GetDensity() > 0) + { + glBlendFunc(GL_ONE, GL_ONE); //add + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(0,0,0); + DrawGLPoly (s->polys); + glColor3f(1,1,1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + rs_brushpasses++; + } + + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable (GL_BLEND); + glDepthMask (GL_TRUE); + + } + } + if (entalpha < 1) + { + glDepthMask(GL_TRUE); + glDisable(GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glColor3f(1, 1, 1); + } + +fullbrights: + if (gl_fullbrights.value && t->fullbright) + { + glDepthMask (GL_FALSE); + glEnable (GL_BLEND); + glBlendFunc (GL_ONE, GL_ONE); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f (entalpha, entalpha, entalpha); + GL_Bind (t->fullbright); + Fog_StartAdditive (); + DrawGLPoly (s->polys); + Fog_StopAdditive (); + glColor3f(1, 1, 1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable (GL_BLEND); + glDepthMask (GL_TRUE); + rs_brushpasses++; + } +} + +/* +================= +R_DrawBrushModel +================= +*/ +void R_DrawBrushModel (entity_t *e) +{ + int j, k; + int i, numsurfaces; + msurface_t *psurf; + float dot; + mplane_t *pplane; + model_t *clmodel; + + if (R_CullModelForEntity(e)) + return; + + currententity = e; + clmodel = e->model; + + VectorSubtract (r_refdef.vieworg, e->origin, modelorg); + if (e->angles[0] || e->angles[1] || e->angles[2]) + { + vec3_t temp; + vec3_t forward, right, up; + + VectorCopy (modelorg, temp); + AngleVectors (e->angles, forward, right, up); + modelorg[0] = DotProduct (temp, forward); + modelorg[1] = -DotProduct (temp, right); + modelorg[2] = DotProduct (temp, up); + } + + psurf = &clmodel->surfaces[clmodel->firstmodelsurface]; + +// calculate dynamic lighting for bmodel if it's not an +// instanced model + if (clmodel->firstmodelsurface != 0 && !gl_flashblend.value) + { + for (k=0 ; knodes + clmodel->hulls[0].firstclipnode); + } + } + + glPushMatrix (); + e->angles[0] = -e->angles[0]; // stupid quake bug + R_RotateForEntity (e->origin, e->angles); + e->angles[0] = -e->angles[0]; // stupid quake bug + + // + // draw it + // + + if (r_drawflat_cheatsafe) //johnfitz + glDisable(GL_TEXTURE_2D); + + for (i=0 ; inummodelsurfaces ; i++, psurf++) + { + pplane = psurf->plane; + dot = DotProduct (modelorg, pplane->normal) - pplane->dist; + if (((psurf->flags & SURF_PLANEBACK) && (dot < -BACKFACE_EPSILON)) || + (!(psurf->flags & SURF_PLANEBACK) && (dot > BACKFACE_EPSILON))) + { + R_DrawSequentialPoly (psurf); + rs_brushpolys++; + } + } + + if (r_drawflat_cheatsafe) //johnfitz + glEnable(GL_TEXTURE_2D); + + GL_DisableMultitexture(); // selects TEXTURE0 + + glPopMatrix (); +} + +/* +================= +R_DrawBrushModel_ShowTris -- johnfitz +================= +*/ +void R_DrawBrushModel_ShowTris (entity_t *e) +{ + int i, j, k, numsurfaces; + msurface_t *psurf; + float dot; + mplane_t *pplane; + model_t *clmodel; + glpoly_t *p; + + if (R_CullModelForEntity(e)) + return; + + currententity = e; + clmodel = e->model; + + VectorSubtract (r_refdef.vieworg, e->origin, modelorg); + if (e->angles[0] || e->angles[1] || e->angles[2]) + { + vec3_t temp; + vec3_t forward, right, up; + + VectorCopy (modelorg, temp); + AngleVectors (e->angles, forward, right, up); + modelorg[0] = DotProduct (temp, forward); + modelorg[1] = -DotProduct (temp, right); + modelorg[2] = DotProduct (temp, up); + } + + psurf = &clmodel->surfaces[clmodel->firstmodelsurface]; + + glPushMatrix (); + e->angles[0] = -e->angles[0]; // stupid quake bug + R_RotateForEntity (e->origin, e->angles); + e->angles[0] = -e->angles[0]; // stupid quake bug + + // + // draw it + // + + for (i=0 ; inummodelsurfaces ; i++, psurf++) + { + pplane = psurf->plane; + dot = DotProduct (modelorg, pplane->normal) - pplane->dist; + if (((psurf->flags & SURF_PLANEBACK) && (dot < -BACKFACE_EPSILON)) || + (!(psurf->flags & SURF_PLANEBACK) && (dot > BACKFACE_EPSILON))) + { + if ((psurf->flags & SURF_DRAWTURB) && r_oldwater.value) + for (p = psurf->polys->next; p; p = p->next) + DrawGLTriangleFan (p); + else + DrawGLTriangleFan (psurf->polys); + } + } + + glPopMatrix (); +} + +/* +============================================================= + + LIGHTMAPS + +============================================================= +*/ + +/* +================ +R_RenderDynamicLightmaps +called during rendering +================ +*/ +void R_RenderDynamicLightmaps (msurface_t *fa) +{ + byte *base; + int maps; + glRect_t *theRect; + int smax, tmax; + + if (fa->flags & SURF_DRAWTILED) //johnfitz -- not a lightmapped surface + return; + + // add to lightmap chain + fa->polys->chain = lightmap_polys[fa->lightmaptexturenum]; + lightmap_polys[fa->lightmaptexturenum] = fa->polys; + + // check for lightmap modification + for (maps=0; maps < MAXLIGHTMAPS && fa->styles[maps] != 255; maps++) + if (d_lightstylevalue[fa->styles[maps]] != fa->cached_light[maps]) + goto dynamic; + + if (fa->dlightframe == r_framecount // dynamic this frame + || fa->cached_dlight) // dynamic previously + { +dynamic: + if (r_dynamic.value) + { + lightmap_modified[fa->lightmaptexturenum] = true; + theRect = &lightmap_rectchange[fa->lightmaptexturenum]; + if (fa->light_t < theRect->t) { + if (theRect->h) + theRect->h += theRect->t - fa->light_t; + theRect->t = fa->light_t; + } + if (fa->light_s < theRect->l) { + if (theRect->w) + theRect->w += theRect->l - fa->light_s; + theRect->l = fa->light_s; + } + smax = (fa->extents[0]>>4)+1; + tmax = (fa->extents[1]>>4)+1; + if ((theRect->w + theRect->l) < (fa->light_s + smax)) + theRect->w = (fa->light_s-theRect->l)+smax; + if ((theRect->h + theRect->t) < (fa->light_t + tmax)) + theRect->h = (fa->light_t-theRect->t)+tmax; + base = lightmaps + fa->lightmaptexturenum*lightmap_bytes*BLOCK_WIDTH*BLOCK_HEIGHT; + base += fa->light_t * BLOCK_WIDTH * lightmap_bytes + fa->light_s * lightmap_bytes; + R_BuildLightMap (fa, base, BLOCK_WIDTH*lightmap_bytes); + } + } +} + +/* +======================== +AllocBlock -- returns a texture number and the position inside it +======================== +*/ +int AllocBlock (int w, int h, int *x, int *y) +{ + int i, j; + int best, best2; + int texnum; + /* unused -- kristian + int bestx; + */ + + for (texnum=0 ; texnum= best) + break; + if (allocated[texnum][i+j] > best2) + best2 = allocated[texnum][i+j]; + } + if (j == w) + { // this is a valid spot + *x = i; + *y = best = best2; + } + } + + if (best + h > BLOCK_HEIGHT) + continue; + + for (i=0 ; iextents[0]>>4)+1; + tmax = (surf->extents[1]>>4)+1; + + surf->lightmaptexturenum = AllocBlock (smax, tmax, &surf->light_s, &surf->light_t); + base = lightmaps + surf->lightmaptexturenum*lightmap_bytes*BLOCK_WIDTH*BLOCK_HEIGHT; + base += (surf->light_t * BLOCK_WIDTH + surf->light_s) * lightmap_bytes; + R_BuildLightMap (surf, base, BLOCK_WIDTH*lightmap_bytes); +} + +/* +================ +BuildSurfaceDisplayList -- called at level load time +================ +*/ +void BuildSurfaceDisplayList (msurface_t *fa) +{ + int i, lindex, lnumverts; + medge_t *pedges, *r_pedge; + int vertpage; + float *vec; + float s, t; + glpoly_t *poly; + /* unused -- kristian + int s_axis, t_axis; + float dist, lastdist, lzi, scale, u, v, frac; + unsigned mask; + vec3_t local, transformed; + mplane_t *pplane; + int newverts, newpage, lastvert; + qboolean visible; + */ + +// reconstruct the polygon + pedges = currentmodel->edges; + lnumverts = fa->numedges; + vertpage = 0; + + // + // draw texture + // + poly = Hunk_Alloc (sizeof(glpoly_t) + (lnumverts-4) * VERTEXSIZE*sizeof(float)); + poly->next = fa->polys; + fa->polys = poly; + poly->numverts = lnumverts; + + for (i=0 ; isurfedges[fa->firstedge + i]; + + if (lindex > 0) + { + r_pedge = &pedges[lindex]; + vec = r_pcurrentvertbase[r_pedge->v[0]].position; + } + else + { + r_pedge = &pedges[-lindex]; + vec = r_pcurrentvertbase[r_pedge->v[1]].position; + } + s = DotProduct (vec, fa->texinfo->vecs[0]) + fa->texinfo->vecs[0][3]; + s /= fa->texinfo->texture->width; + + t = DotProduct (vec, fa->texinfo->vecs[1]) + fa->texinfo->vecs[1][3]; + t /= fa->texinfo->texture->height; + + VectorCopy (vec, poly->verts[i]); + poly->verts[i][3] = s; + poly->verts[i][4] = t; + + // + // lightmap texture coordinates + // + s = DotProduct (vec, fa->texinfo->vecs[0]) + fa->texinfo->vecs[0][3]; + s -= fa->texturemins[0]; + s += fa->light_s*16; + s += 8; + s /= BLOCK_WIDTH*16; //fa->texinfo->texture->width; + + t = DotProduct (vec, fa->texinfo->vecs[1]) + fa->texinfo->vecs[1][3]; + t -= fa->texturemins[1]; + t += fa->light_t*16; + t += 8; + t /= BLOCK_HEIGHT*16; //fa->texinfo->texture->height; + + poly->verts[i][5] = s; + poly->verts[i][6] = t; + } + + //johnfitz -- removed gl_keeptjunctions code + + poly->numverts = lnumverts; + +} + +/* +================== +GL_BuildLightmaps -- called at level load time + +Builds the lightmap texture +with all the surfaces from all brush models +================== +*/ +void GL_BuildLightmaps (void) +{ + char name[16]; + byte *data; + int i, j; + model_t *m; + + memset (allocated, 0, sizeof(allocated)); + + r_framecount = 1; // no dlightcache + + //johnfitz -- null out array (the gltexture objects themselves were already freed by Mod_ClearAll) + for (i=0; i < MAX_LIGHTMAPS; i++) + lightmap_textures[i] = NULL; + //johnfitz + + gl_lightmap_format = GL_RGB; //johnfitz + + //johnfitz -- only support GL_RGB lightmaps + switch (gl_lightmap_format) + { + case GL_RGB: + lightmap_bytes = 3; + break; + default: + Sys_Error ("GL_BuildLightmaps: bad lightmap format"); + } + //johnfitz + + for (j=1 ; jname[0] == '*') + continue; + r_pcurrentvertbase = m->vertexes; + currentmodel = m; + for (i=0 ; inumsurfaces ; i++) + { + //johnfitz -- rewritten to use SURF_DRAWTILED instead of the sky/water flags + if (m->surfaces[i].flags & SURF_DRAWTILED) + continue; + GL_CreateSurfaceLightmap (m->surfaces + i); + BuildSurfaceDisplayList (m->surfaces + i); + //johnfitz + } + } + + // + // upload all lightmaps that were filled + // + for (i=0; i= 64) + Con_Warning ("%i lightmaps exceeds standard limit of 64.\n", i); + //johnfitz +} + +/* +=============== +R_AddDynamicLights +=============== +*/ +void R_AddDynamicLights (msurface_t *surf) +{ + int lnum; + int sd, td; + float dist, rad, minlight; + vec3_t impact, local; + int s, t; + int i; + int smax, tmax; + mtexinfo_t *tex; + //johnfitz -- lit support via lordhavoc + float cred, cgreen, cblue, brightness; + unsigned *bl; + //johnfitz + + smax = (surf->extents[0]>>4)+1; + tmax = (surf->extents[1]>>4)+1; + tex = surf->texinfo; + + for (lnum=0 ; lnumdlightbits & (1<plane->normal) - + surf->plane->dist; + rad -= fabs(dist); + minlight = cl_dlights[lnum].minlight; + if (rad < minlight) + continue; + minlight = rad - minlight; + + for (i=0 ; i<3 ; i++) + { + impact[i] = cl_dlights[lnum].origin[i] - + surf->plane->normal[i]*dist; + } + + local[0] = DotProduct (impact, tex->vecs[0]) + tex->vecs[0][3]; + local[1] = DotProduct (impact, tex->vecs[1]) + tex->vecs[1][3]; + + local[0] -= surf->texturemins[0]; + local[1] -= surf->texturemins[1]; + + //johnfitz -- lit support via lordhavoc + bl = blocklights; + cred = cl_dlights[lnum].color[0] * 256.0f; + cgreen = cl_dlights[lnum].color[1] * 256.0f; + cblue = cl_dlights[lnum].color[2] * 256.0f; + //johnfitz + for (t = 0 ; t td) + dist = sd + (td>>1); + else + dist = td + (sd>>1); + if (dist < minlight) + //johnfitz -- lit support via lordhavoc + { + brightness = rad - dist; + bl[0] += (int) (brightness * cred); + bl[1] += (int) (brightness * cgreen); + bl[2] += (int) (brightness * cblue); + } + bl += 3; + //johnfitz + } + } + } +} + + +/* +=============== +R_BuildLightMap -- johnfitz -- revised for lit support via lordhavoc + +Combine and scale multiple lightmaps into the 8.8 format in blocklights +=============== +*/ +void R_BuildLightMap (msurface_t *surf, byte *dest, int stride) +{ + int smax, tmax; + int t; + int i, j, size; + byte *lightmap; + unsigned scale; + int maps; + unsigned *bl; + /* unused -- kristian + int lightadj[4]; + */ + + surf->cached_dlight = (surf->dlightframe == r_framecount); + + smax = (surf->extents[0]>>4)+1; + tmax = (surf->extents[1]>>4)+1; + size = smax*tmax; + lightmap = surf->samples; + + if (cl.worldmodel->lightdata) + { + // clear to no light + memset (&blocklights[0], 0, size * 3 * sizeof (unsigned int)); //johnfitz -- lit support via lordhavoc + + // add all the lightmaps + if (lightmap) + for (maps = 0 ; maps < MAXLIGHTMAPS && surf->styles[maps] != 255 ; + maps++) + { + scale = d_lightstylevalue[surf->styles[maps]]; + surf->cached_light[maps] = scale; // 8.8 fraction + //johnfitz -- lit support via lordhavoc + bl = blocklights; + for (i=0 ; idlightframe == r_framecount) + R_AddDynamicLights (surf); + } + else + { + // set to full bright if no light data + memset (&blocklights[0], 255, size * 3 * sizeof (unsigned int)); //johnfitz -- lit support via lordhavoc + } + +// bound, invert, and shift +store: + + //johnfitz -- only support GL_RGB lightmaps + switch (gl_lightmap_format) + { + case GL_RGB: + stride -= smax * 3; + bl = blocklights; + for (i=0 ; i> 8;if (t > 255) t = 255;*dest++ = t; + t = *bl++ >> 8;if (t > 255) t = 255;*dest++ = t; + t = *bl++ >> 8;if (t > 255) t = 255;*dest++ = t; + } + else + { + t = *bl++ >> 7;if (t > 255) t = 255;*dest++ = t; + t = *bl++ >> 7;if (t > 255) t = 255;*dest++ = t; + t = *bl++ >> 7;if (t > 255) t = 255;*dest++ = t; + } + } + } + break; + default: + Sys_Error ("R_BuildLightMap: bad lightmap format"); + } + //johnfitz +} + +/* +=============== +R_UploadLightmap -- johnfitz -- uploads the modified lightmap to opengl if necessary + +assumes lightmap texture is already bound +=============== +*/ +void R_UploadLightmap(int lmap) +{ + glRect_t *theRect; + + if (!lightmap_modified[lmap]) + return; + + lightmap_modified[lmap] = false; + + theRect = &lightmap_rectchange[lmap]; + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, theRect->t, BLOCK_WIDTH, theRect->h, gl_lightmap_format, + GL_UNSIGNED_BYTE, lightmaps+(lmap* BLOCK_HEIGHT + theRect->t) *BLOCK_WIDTH*lightmap_bytes); + theRect->l = BLOCK_WIDTH; + theRect->t = BLOCK_HEIGHT; + theRect->h = 0; + theRect->w = 0; + + rs_dynamiclightmaps++; +} + +/* +================ +R_RebuildAllLightmaps -- johnfitz -- called when gl_overbright gets toggled +================ +*/ +void R_RebuildAllLightmaps (void) +{ + int i, j; + model_t *mod; + msurface_t *fa; + byte *base; + + if (!cl.worldmodel) // is this the correct test? + return; + + //for each surface in each model, rebuild lightmap with new scale + for (i=1; isurfaces[mod->firstmodelsurface]; + for (j=0; jnummodelsurfaces; j++, fa++) + { + if (fa->flags & SURF_DRAWTILED) + continue; + base = lightmaps + fa->lightmaptexturenum*lightmap_bytes*BLOCK_WIDTH*BLOCK_HEIGHT; + base += fa->light_t * BLOCK_WIDTH * lightmap_bytes + fa->light_s * lightmap_bytes; + R_BuildLightMap (fa, base, BLOCK_WIDTH*lightmap_bytes); + } + } + + //for each lightmap, upload it + for (i=0; i 255 ? 255 : r; + a = sharpness * (255 - r); + a = min(a,255); + return a; +} + +/* +=============== +R_InitParticleTextures -- johnfitz -- rewritten +=============== +*/ +void R_InitParticleTextures (void) +{ + int x,y; + static byte particle1_data[64*64*4]; + static byte particle2_data[2*2*4]; + static byte particle3_data[64*64*4]; + byte *dst; + + // particle texture 1 -- circle + dst = particle1_data; + for (x=0 ; x<64 ; x++) + for (y=0 ; y<64 ; y++) + { + *dst++ = 255; + *dst++ = 255; + *dst++ = 255; + *dst++ = R_ParticleTextureLookup(x, y, 8); + } + particletexture1 = TexMgr_LoadImage (NULL, "particle1", 64, 64, SRC_RGBA, particle1_data, "", (unsigned)particle1_data, TEXPREF_PERSIST | TEXPREF_ALPHA | TEXPREF_LINEAR); + + // particle texture 2 -- square + dst = particle2_data; + for (x=0 ; x<2 ; x++) + for (y=0 ; y<2 ; y++) + { + *dst++ = 255; + *dst++ = 255; + *dst++ = 255; + *dst++ = x || y ? 0 : 255; + } + particletexture2 = TexMgr_LoadImage (NULL, "particle2", 2, 2, SRC_RGBA, particle2_data, "", (unsigned)particle2_data, TEXPREF_PERSIST | TEXPREF_ALPHA | TEXPREF_NEAREST); + + // particle texture 3 -- blob + dst = particle3_data; + for (x=0 ; x<64 ; x++) + for (y=0 ; y<64 ; y++) + { + *dst++ = 255; + *dst++ = 255; + *dst++ = 255; + *dst++ = R_ParticleTextureLookup(x, y, 2); + } + particletexture3 = TexMgr_LoadImage (NULL, "particle3", 64, 64, SRC_RGBA, particle3_data, "", (unsigned)particle3_data, TEXPREF_PERSIST | TEXPREF_ALPHA | TEXPREF_LINEAR); + + + //set default + particletexture = particletexture1; + texturescalefactor = 1.27; +} + +/* +=============== +R_SetParticleTexture_f -- johnfitz +=============== +*/ +void R_SetParticleTexture_f (void) +{ + switch ((int)(r_particles.value)) + { + case 1: + particletexture = particletexture1; + texturescalefactor = 1.27; + break; + case 2: + particletexture = particletexture2; + texturescalefactor = 1.0; + break; +// case 3: +// particletexture = particletexture3; +// texturescalefactor = 1.5; +// break; + } +} + +/* +=============== +R_InitParticles +=============== +*/ +void R_InitParticles (void) +{ + int i; + + i = COM_CheckParm ("-particles"); + + if (i) + { + r_numparticles = (int)(Q_atoi(com_argv[i+1])); + if (r_numparticles < ABSOLUTE_MIN_PARTICLES) + r_numparticles = ABSOLUTE_MIN_PARTICLES; + } + else + { + r_numparticles = MAX_PARTICLES; + } + + particles = (particle_t *) + Hunk_AllocName (r_numparticles * sizeof(particle_t), "particles"); + + Cvar_RegisterVariable (&r_particles, R_SetParticleTexture_f); //johnfitz + Cvar_RegisterVariable (&r_quadparticles, NULL); //johnfitz + + R_InitParticleTextures (); //johnfitz +} + +/* +=============== +R_EntityParticles +=============== +*/ +#define NUMVERTEXNORMALS 162 +extern float r_avertexnormals[NUMVERTEXNORMALS][3]; +vec3_t avelocities[NUMVERTEXNORMALS]; +float beamlength = 16; +vec3_t avelocity = {23, 7, 3}; +float partstep = 0.01; +float timescale = 0.01; + +void R_EntityParticles (entity_t *ent) +{ + int count; + int i; + particle_t *p; + float angle; + float sr, sp, sy, cr, cp, cy; + vec3_t forward; + float dist; + + dist = 64; + count = 50; + + if (!avelocities[0][0]) + { + for (i=0 ; inext; + p->next = active_particles; + active_particles = p; + + p->die = cl.time + 0.01; + p->color = 0x6f; + p->type = pt_explode; + + p->org[0] = ent->origin[0] + r_avertexnormals[i][0]*dist + forward[0]*beamlength; + p->org[1] = ent->origin[1] + r_avertexnormals[i][1]*dist + forward[1]*beamlength; + p->org[2] = ent->origin[2] + r_avertexnormals[i][2]*dist + forward[2]*beamlength; + } +} + +/* +=============== +R_ClearParticles +=============== +*/ +void R_ClearParticles (void) +{ + int i; + + free_particles = &particles[0]; + active_particles = NULL; + + for (i=0 ;inext; + p->next = active_particles; + active_particles = p; + + p->die = 99999; + p->color = (-c)&15; + p->type = pt_static; + VectorCopy (vec3_origin, p->vel); + VectorCopy (org, p->org); + } + + fclose (f); + Con_Printf ("%i points read\n", c); +} + +/* +=============== +R_ParseParticleEffect + +Parse an effect out of the server message +=============== +*/ +void R_ParseParticleEffect (void) +{ + vec3_t org, dir; + int i, count, msgcount, color; + + for (i=0 ; i<3 ; i++) + org[i] = MSG_ReadCoord (); + for (i=0 ; i<3 ; i++) + dir[i] = MSG_ReadChar () * (1.0/16); + msgcount = MSG_ReadByte (); + color = MSG_ReadByte (); + +if (msgcount == 255) + count = 1024; +else + count = msgcount; + + R_RunParticleEffect (org, dir, color, count); +} + +/* +=============== +R_ParticleExplosion +=============== +*/ +void R_ParticleExplosion (vec3_t org) +{ + int i, j; + particle_t *p; + + for (i=0 ; i<1024 ; i++) + { + if (!free_particles) + return; + p = free_particles; + free_particles = p->next; + p->next = active_particles; + active_particles = p; + + p->die = cl.time + 5; + p->color = ramp1[0]; + p->ramp = rand()&3; + if (i & 1) + { + p->type = pt_explode; + for (j=0 ; j<3 ; j++) + { + p->org[j] = org[j] + ((rand()%32)-16); + p->vel[j] = (rand()%512)-256; + } + } + else + { + p->type = pt_explode2; + for (j=0 ; j<3 ; j++) + { + p->org[j] = org[j] + ((rand()%32)-16); + p->vel[j] = (rand()%512)-256; + } + } + } +} + +/* +=============== +R_ParticleExplosion2 +=============== +*/ +void R_ParticleExplosion2 (vec3_t org, int colorStart, int colorLength) +{ + int i, j; + particle_t *p; + int colorMod = 0; + + for (i=0; i<512; i++) + { + if (!free_particles) + return; + p = free_particles; + free_particles = p->next; + p->next = active_particles; + active_particles = p; + + p->die = cl.time + 0.3; + p->color = colorStart + (colorMod % colorLength); + colorMod++; + + p->type = pt_blob; + for (j=0 ; j<3 ; j++) + { + p->org[j] = org[j] + ((rand()%32)-16); + p->vel[j] = (rand()%512)-256; + } + } +} + +/* +=============== +R_BlobExplosion +=============== +*/ +void R_BlobExplosion (vec3_t org) +{ + int i, j; + particle_t *p; + + for (i=0 ; i<1024 ; i++) + { + if (!free_particles) + return; + p = free_particles; + free_particles = p->next; + p->next = active_particles; + active_particles = p; + + p->die = cl.time + 1 + (rand()&8)*0.05; + + if (i & 1) + { + p->type = pt_blob; + p->color = 66 + rand()%6; + for (j=0 ; j<3 ; j++) + { + p->org[j] = org[j] + ((rand()%32)-16); + p->vel[j] = (rand()%512)-256; + } + } + else + { + p->type = pt_blob2; + p->color = 150 + rand()%6; + for (j=0 ; j<3 ; j++) + { + p->org[j] = org[j] + ((rand()%32)-16); + p->vel[j] = (rand()%512)-256; + } + } + } +} + +/* +=============== +R_RunParticleEffect +=============== +*/ +void R_RunParticleEffect (vec3_t org, vec3_t dir, int color, int count) +{ + int i, j; + particle_t *p; + + for (i=0 ; inext; + p->next = active_particles; + active_particles = p; + + if (count == 1024) + { // rocket explosion + p->die = cl.time + 5; + p->color = ramp1[0]; + p->ramp = rand()&3; + if (i & 1) + { + p->type = pt_explode; + for (j=0 ; j<3 ; j++) + { + p->org[j] = org[j] + ((rand()%32)-16); + p->vel[j] = (rand()%512)-256; + } + } + else + { + p->type = pt_explode2; + for (j=0 ; j<3 ; j++) + { + p->org[j] = org[j] + ((rand()%32)-16); + p->vel[j] = (rand()%512)-256; + } + } + } + else + { + p->die = cl.time + 0.1*(rand()%5); + p->color = (color&~7) + (rand()&7); + p->type = pt_slowgrav; + for (j=0 ; j<3 ; j++) + { + p->org[j] = org[j] + ((rand()&15)-8); + p->vel[j] = dir[j]*15;// + (rand()%300)-150; + } + } + } +} + +/* +=============== +R_LavaSplash +=============== +*/ +void R_LavaSplash (vec3_t org) +{ + int i, j, k; + particle_t *p; + float vel; + vec3_t dir; + + for (i=-16 ; i<16 ; i++) + for (j=-16 ; j<16 ; j++) + for (k=0 ; k<1 ; k++) + { + if (!free_particles) + return; + p = free_particles; + free_particles = p->next; + p->next = active_particles; + active_particles = p; + + p->die = cl.time + 2 + (rand()&31) * 0.02; + p->color = 224 + (rand()&7); + p->type = pt_slowgrav; + + dir[0] = j*8 + (rand()&7); + dir[1] = i*8 + (rand()&7); + dir[2] = 256; + + p->org[0] = org[0] + dir[0]; + p->org[1] = org[1] + dir[1]; + p->org[2] = org[2] + (rand()&63); + + VectorNormalize (dir); + vel = 50 + (rand()&63); + VectorScale (dir, vel, p->vel); + } +} + +/* +=============== +R_TeleportSplash +=============== +*/ +void R_TeleportSplash (vec3_t org) +{ + int i, j, k; + particle_t *p; + float vel; + vec3_t dir; + + for (i=-16 ; i<16 ; i+=4) + for (j=-16 ; j<16 ; j+=4) + for (k=-24 ; k<32 ; k+=4) + { + if (!free_particles) + return; + p = free_particles; + free_particles = p->next; + p->next = active_particles; + active_particles = p; + + p->die = cl.time + 0.2 + (rand()&7) * 0.02; + p->color = 7 + (rand()&7); + p->type = pt_slowgrav; + + dir[0] = j*8; + dir[1] = i*8; + dir[2] = k*8; + + p->org[0] = org[0] + i + (rand()&3); + p->org[1] = org[1] + j + (rand()&3); + p->org[2] = org[2] + k + (rand()&3); + + VectorNormalize (dir); + vel = 50 + (rand()&63); + VectorScale (dir, vel, p->vel); + } +} + +/* +=============== +R_RocketTrail + +FIXME -- rename function and use #defined types instead of numbers +=============== +*/ +void R_RocketTrail (vec3_t start, vec3_t end, int type) +{ + vec3_t vec; + float len; + int j; + particle_t *p; + int dec; + static int tracercount; + + VectorSubtract (end, start, vec); + len = VectorNormalize (vec); + if (type < 128) + dec = 3; + else + { + dec = 1; + type -= 128; + } + + while (len > 0) + { + len -= dec; + + if (!free_particles) + return; + p = free_particles; + free_particles = p->next; + p->next = active_particles; + active_particles = p; + + VectorCopy (vec3_origin, p->vel); + p->die = cl.time + 2; + + switch (type) + { + case 0: // rocket trail + p->ramp = (rand()&3); + p->color = ramp3[(int)p->ramp]; + p->type = pt_fire; + for (j=0 ; j<3 ; j++) + p->org[j] = start[j] + ((rand()%6)-3); + break; + + case 1: // smoke smoke + p->ramp = (rand()&3) + 2; + p->color = ramp3[(int)p->ramp]; + p->type = pt_fire; + for (j=0 ; j<3 ; j++) + p->org[j] = start[j] + ((rand()%6)-3); + break; + + case 2: // blood + p->type = pt_grav; + p->color = 67 + (rand()&3); + for (j=0 ; j<3 ; j++) + p->org[j] = start[j] + ((rand()%6)-3); + break; + + case 3: + case 5: // tracer + p->die = cl.time + 0.5; + p->type = pt_static; + if (type == 3) + p->color = 52 + ((tracercount&4)<<1); + else + p->color = 230 + ((tracercount&4)<<1); + + tracercount++; + + VectorCopy (start, p->org); + if (tracercount & 1) + { + p->vel[0] = 30*vec[1]; + p->vel[1] = 30*-vec[0]; + } + else + { + p->vel[0] = 30*-vec[1]; + p->vel[1] = 30*vec[0]; + } + break; + + case 4: // slight blood + p->type = pt_grav; + p->color = 67 + (rand()&3); + for (j=0 ; j<3 ; j++) + p->org[j] = start[j] + ((rand()%6)-3); + len -= 3; + break; + + case 6: // voor trail + p->color = 9*16 + 8 + (rand()&3); + p->type = pt_static; + p->die = cl.time + 0.3; + for (j=0 ; j<3 ; j++) + p->org[j] = start[j] + ((rand()&15)-8); + break; + } + + + VectorAdd (start, vec, start); + } +} + +/* +=============== +CL_RunParticles -- johnfitz -- all the particle behavior, separated from R_DrawParticles +=============== +*/ +void CL_RunParticles (void) +{ + particle_t *p, *kill; + int i; + float time1, time2, time3, dvel, frametime, grav; + extern cvar_t sv_gravity; + /* unused -- kristian + float scale; + */ + + frametime = cl.time - cl.oldtime; + time3 = frametime * 15; + time2 = frametime * 10; + time1 = frametime * 5; + grav = frametime * sv_gravity.value * 0.05; + dvel = 4*frametime; + + for ( ;; ) + { + kill = active_particles; + if (kill && kill->die < cl.time) + { + active_particles = kill->next; + kill->next = free_particles; + free_particles = kill; + continue; + } + break; + } + + for (p=active_particles ; p ; p=p->next) + { + for ( ;; ) + { + kill = p->next; + if (kill && kill->die < cl.time) + { + p->next = kill->next; + kill->next = free_particles; + free_particles = kill; + continue; + } + break; + } + + p->org[0] += p->vel[0]*frametime; + p->org[1] += p->vel[1]*frametime; + p->org[2] += p->vel[2]*frametime; + + switch (p->type) + { + case pt_static: + break; + case pt_fire: + p->ramp += time1; + if (p->ramp >= 6) + p->die = -1; + else + p->color = ramp3[(int)p->ramp]; + p->vel[2] += grav; + break; + + case pt_explode: + p->ramp += time2; + if (p->ramp >=8) + p->die = -1; + else + p->color = ramp1[(int)p->ramp]; + for (i=0 ; i<3 ; i++) + p->vel[i] += p->vel[i]*dvel; + p->vel[2] -= grav; + break; + + case pt_explode2: + p->ramp += time3; + if (p->ramp >=8) + p->die = -1; + else + p->color = ramp2[(int)p->ramp]; + for (i=0 ; i<3 ; i++) + p->vel[i] -= p->vel[i]*frametime; + p->vel[2] -= grav; + break; + + case pt_blob: + for (i=0 ; i<3 ; i++) + p->vel[i] += p->vel[i]*dvel; + p->vel[2] -= grav; + break; + + case pt_blob2: + for (i=0 ; i<2 ; i++) + p->vel[i] -= p->vel[i]*dvel; + p->vel[2] -= grav; + break; + + case pt_grav: + case pt_slowgrav: + p->vel[2] -= grav; + break; + } + } +} + +/* +=============== +R_DrawParticles -- johnfitz -- moved all non-drawing code to CL_RunParticles +=============== +*/ +void R_DrawParticles (void) +{ + particle_t *p; + float scale; + vec3_t up, right, p_up, p_right, p_upright; //johnfitz -- p_ vectors + byte color[4]; //johnfitz -- particle transparency + extern cvar_t r_particles; //johnfitz + /* unused -- kristian + float alpha; //johnfitz -- particle transparency + */ + + if (!r_particles.value) + return; + + VectorScale (vup, 1.5, up); + VectorScale (vright, 1.5, right); + + GL_Bind(particletexture); + glEnable (GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glDepthMask (GL_FALSE); //johnfitz -- fix for particle z-buffer bug + + if (r_quadparticles.value) //johnitz -- quads save fillrate + { + glBegin (GL_QUADS); + for (p=active_particles ; p ; p=p->next) + { + // hack a scale up to keep particles from disapearing + scale = (p->org[0] - r_origin[0]) * vpn[0] + + (p->org[1] - r_origin[1]) * vpn[1] + + (p->org[2] - r_origin[2]) * vpn[2]; + if (scale < 20) + scale = 1 + 0.08; //johnfitz -- added .08 to be consistent + else + scale = 1 + scale * 0.004; + + scale /= 2.0; //quad is half the size of triangle + + scale *= texturescalefactor; //johnfitz -- compensate for apparent size of different particle textures + + //johnfitz -- particle transparency and fade out + *(int *)color = d_8to24table[(int)p->color]; + //alpha = CLAMP(0, p->die + 0.5 - cl.time, 1); + color[3] = 255; //(int)(alpha * 255); + glColor4ubv(color); + //johnfitz + + glTexCoord2f (0,0); + glVertex3fv (p->org); + + glTexCoord2f (0.5,0); + VectorMA (p->org, scale, up, p_up); + glVertex3fv (p_up); + + glTexCoord2f (0.5,0.5); + VectorMA (p_up, scale, right, p_upright); + glVertex3fv (p_upright); + + glTexCoord2f (0,0.5); + VectorMA (p->org, scale, right, p_right); + glVertex3fv (p_right); + + rs_particles++; //johnfitz //FIXME: just use r_numparticles + } + glEnd (); + } + else //johnitz -- triangles save verts + { + glBegin (GL_TRIANGLES); + for (p=active_particles ; p ; p=p->next) + { + // hack a scale up to keep particles from disapearing + scale = (p->org[0] - r_origin[0]) * vpn[0] + + (p->org[1] - r_origin[1]) * vpn[1] + + (p->org[2] - r_origin[2]) * vpn[2]; + if (scale < 20) + scale = 1 + 0.08; //johnfitz -- added .08 to be consistent + else + scale = 1 + scale * 0.004; + + scale *= texturescalefactor; //johnfitz -- compensate for apparent size of different particle textures + + //johnfitz -- particle transparency and fade out + *(int *)color = d_8to24table[(int)p->color]; + //alpha = CLAMP(0, p->die + 0.5 - cl.time, 1); + color[3] = 255; //(int)(alpha * 255); + glColor4ubv(color); + //johnfitz + + glTexCoord2f (0,0); + glVertex3fv (p->org); + + glTexCoord2f (1,0); + VectorMA (p->org, scale, up, p_up); + glVertex3fv (p_up); + + glTexCoord2f (0,1); + VectorMA (p->org, scale, right, p_right); + glVertex3fv (p_right); + + rs_particles++; //johnfitz //FIXME: just use r_numparticles + } + glEnd (); + } + + glDepthMask (GL_TRUE); //johnfitz -- fix for particle z-buffer bug + glDisable (GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glColor3f(1,1,1); +} + + +/* +=============== +R_DrawParticles_ShowTris -- johnfitz +=============== +*/ +void R_DrawParticles_ShowTris (void) +{ + particle_t *p; + float scale; + vec3_t up, right, p_up, p_right, p_upright; + extern cvar_t r_particles; + + if (!r_particles.value) + return; + + VectorScale (vup, 1.5, up); + VectorScale (vright, 1.5, right); + + if (r_quadparticles.value) + { + for (p=active_particles ; p ; p=p->next) + { + glBegin (GL_TRIANGLE_FAN); + + // hack a scale up to keep particles from disapearing + scale = (p->org[0] - r_origin[0]) * vpn[0] + + (p->org[1] - r_origin[1]) * vpn[1] + + (p->org[2] - r_origin[2]) * vpn[2]; + if (scale < 20) + scale = 1 + 0.08; //johnfitz -- added .08 to be consistent + else + scale = 1 + scale * 0.004; + + scale /= 2.0; //quad is half the size of triangle + + scale *= texturescalefactor; //compensate for apparent size of different particle textures + + glVertex3fv (p->org); + + VectorMA (p->org, scale, up, p_up); + glVertex3fv (p_up); + + VectorMA (p_up, scale, right, p_upright); + glVertex3fv (p_upright); + + VectorMA (p->org, scale, right, p_right); + glVertex3fv (p_right); + + glEnd (); + } + } + else + { + glBegin (GL_TRIANGLES); + for (p=active_particles ; p ; p=p->next) + { + // hack a scale up to keep particles from disapearing + scale = (p->org[0] - r_origin[0]) * vpn[0] + + (p->org[1] - r_origin[1]) * vpn[1] + + (p->org[2] - r_origin[2]) * vpn[2]; + if (scale < 20) + scale = 1 + 0.08; //johnfitz -- added .08 to be consistent + else + scale = 1 + scale * 0.004; + + scale *= texturescalefactor; //compensate for apparent size of different particle textures + + glVertex3fv (p->org); + + VectorMA (p->org, scale, up, p_up); + glVertex3fv (p_up); + + VectorMA (p->org, scale, right, p_right); + glVertex3fv (p_right); + } + glEnd (); + } +} \ No newline at end of file diff --git a/quakespasm/Quake/r_sprite.c b/quakespasm/Quake/r_sprite.c new file mode 100644 index 00000000..70ed36f3 --- /dev/null +++ b/quakespasm/Quake/r_sprite.c @@ -0,0 +1,184 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. +*/ +//r_sprite.c -- sprite model rendering + +#include "quakedef.h" + +/* +================ +R_GetSpriteFrame +================ +*/ +mspriteframe_t *R_GetSpriteFrame (entity_t *currententity) +{ + msprite_t *psprite; + mspritegroup_t *pspritegroup; + mspriteframe_t *pspriteframe; + int i, numframes, frame; + float *pintervals, fullinterval, targettime, time; + + psprite = currententity->model->cache.data; + frame = currententity->frame; + + if ((frame >= psprite->numframes) || (frame < 0)) + { + Con_Printf ("R_DrawSprite: no such frame %d\n", frame); + frame = 0; + } + + if (psprite->frames[frame].type == SPR_SINGLE) + { + pspriteframe = psprite->frames[frame].frameptr; + } + else + { + pspritegroup = (mspritegroup_t *)psprite->frames[frame].frameptr; + pintervals = pspritegroup->intervals; + numframes = pspritegroup->numframes; + fullinterval = pintervals[numframes-1]; + + time = cl.time + currententity->syncbase; + + // when loading in Mod_LoadSpriteGroup, we guaranteed all interval values + // are positive, so we don't have to worry about division by 0 + targettime = time - ((int)(time / fullinterval)) * fullinterval; + + for (i=0 ; i<(numframes-1) ; i++) + { + if (pintervals[i] > targettime) + break; + } + + pspriteframe = pspritegroup->frames[i]; + } + + return pspriteframe; +} + +/* +================= +R_DrawSpriteModel -- johnfitz -- rewritten: now supports all orientations +================= +*/ +void R_DrawSpriteModel (entity_t *e) +{ + vec3_t point, v_forward, v_right, v_up; + msprite_t *psprite; + mspriteframe_t *frame; + float *s_up, *s_right; + float angle, sr, cr; + /* unused -- kristian + float len; + */ + + //TODO: frustum cull it? + + frame = R_GetSpriteFrame (e); + psprite = currententity->model->cache.data; + + switch(psprite->type) + { + case SPR_VP_PARALLEL_UPRIGHT: //faces view plane, up is towards the heavens + v_up[0] = 0; + v_up[1] = 0; + v_up[2] = 1; + s_up = v_up; + s_right = vright; + break; + case SPR_FACING_UPRIGHT: //faces camera origin, up is towards the heavens + VectorSubtract(currententity->origin, r_origin, v_forward); + v_forward[2] = 0; + VectorNormalizeFast(v_forward); + v_right[0] = v_forward[1]; + v_right[1] = -v_forward[0]; + v_right[2] = 0; + v_up[0] = 0; + v_up[1] = 0; + v_up[2] = 1; + s_up = v_up; + s_right = v_right; + break; + case SPR_VP_PARALLEL: //faces view plane, up is towards the top of the screen + s_up = vup; + s_right = vright; + break; + case SPR_ORIENTED: //pitch yaw roll are independent of camera + AngleVectors (currententity->angles, v_forward, v_right, v_up); + s_up = v_up; + s_right = v_right; + break; + case SPR_VP_PARALLEL_ORIENTED: //faces view plane, but obeys roll value + angle = currententity->angles[ROLL] * M_PI_DIV_180; + sr = sin(angle); + cr = cos(angle); + v_right[0] = vright[0] * cr + vup[0] * sr; + v_right[1] = vright[1] * cr + vup[1] * sr; + v_right[2] = vright[2] * cr + vup[2] * sr; + v_up[0] = vright[0] * -sr + vup[0] * cr; + v_up[1] = vright[1] * -sr + vup[1] * cr; + v_up[2] = vright[2] * -sr + vup[2] * cr; + s_up = v_up; + s_right = v_right; + break; + default: + return; + } + + //johnfitz: offset decals + if (psprite->type == SPR_ORIENTED) + GL_PolygonOffset (OFFSET_DECAL); + + glColor3f (1,1,1); + + GL_DisableMultitexture(); + + GL_Bind(frame->gltexture); + + glEnable (GL_ALPHA_TEST); + glBegin (GL_TRIANGLE_FAN); //was GL_QUADS, but changed to support r_showtris + + glTexCoord2f (0, frame->tmax); + VectorMA (e->origin, frame->down, s_up, point); + VectorMA (point, frame->left, s_right, point); + glVertex3fv (point); + + glTexCoord2f (0, 0); + VectorMA (e->origin, frame->up, s_up, point); + VectorMA (point, frame->left, s_right, point); + glVertex3fv (point); + + glTexCoord2f (frame->smax, 0); + VectorMA (e->origin, frame->up, s_up, point); + VectorMA (point, frame->right, s_right, point); + glVertex3fv (point); + + glTexCoord2f (frame->smax, frame->tmax); + VectorMA (e->origin, frame->down, s_up, point); + VectorMA (point, frame->right, s_right, point); + glVertex3fv (point); + + glEnd (); + glDisable (GL_ALPHA_TEST); + + //johnfitz: offset decals + if (psprite->type == SPR_ORIENTED) + GL_PolygonOffset (OFFSET_NONE); +} diff --git a/quakespasm/Quake/r_world.c b/quakespasm/Quake/r_world.c new file mode 100644 index 00000000..8b6c3553 --- /dev/null +++ b/quakespasm/Quake/r_world.c @@ -0,0 +1,751 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// r_world.c: world model rendering + +#include "quakedef.h" + +extern cvar_t gl_fullbrights, r_drawflat, gl_overbright, r_oldwater, r_oldskyleaf, r_showtris; //johnfitz + +extern glpoly_t *lightmap_polys[MAX_LIGHTMAPS]; + +byte *SV_FatPVS (vec3_t org, model_t *worldmodel); +extern byte mod_novis[MAX_MAP_LEAFS/8]; +int vis_changed; //if true, force pvs to be refreshed + +//============================================================================== +// +// SETUP CHAINS +// +//============================================================================== + +/* +=============== +R_MarkSurfaces -- johnfitz -- mark surfaces based on PVS and rebuild texture chains +=============== +*/ +void R_MarkSurfaces (void) +{ + byte *vis; + mleaf_t *leaf; + mnode_t *node; + msurface_t *surf, **mark; + int i, j; + qboolean nearwaterportal; + + // clear lightmap chains + memset (lightmap_polys, 0, sizeof(lightmap_polys)); + + // check this leaf for water portals + // TODO: loop through all water surfs and use distance to leaf cullbox + nearwaterportal = false; + for (i=0, mark = r_viewleaf->firstmarksurface; i < r_viewleaf->nummarksurfaces; i++, mark++) + if ((*mark)->flags & SURF_DRAWTURB) + nearwaterportal = true; + + // choose vis data + if (r_novis.value || r_viewleaf->contents == CONTENTS_SOLID || r_viewleaf->contents == CONTENTS_SKY) + vis = &mod_novis[0]; + else if (nearwaterportal) + vis = SV_FatPVS (r_origin, cl.worldmodel); + else + vis = Mod_LeafPVS (r_viewleaf, cl.worldmodel); + + // if surface chains don't need regenerating, just add static entities and return + if (r_oldviewleaf == r_viewleaf && !vis_changed && !nearwaterportal) + { + leaf = &cl.worldmodel->leafs[1]; + for (i=0 ; inumleafs ; i++, leaf++) + if (vis[i>>3] & (1<<(i&7))) + if (leaf->efrags) + R_StoreEfrags (&leaf->efrags); + return; + } + + r_visframecount++; + r_oldviewleaf = r_viewleaf; + + // iterate through leaves, marking surfaces + leaf = &cl.worldmodel->leafs[1]; + for (i=0 ; inumleafs ; i++, leaf++) + { + if (vis[i>>3] & (1<<(i&7))) + { + if (r_oldskyleaf.value || leaf->contents != CONTENTS_SKY) + for (j=0, mark = leaf->firstmarksurface; jnummarksurfaces; j++, mark++) + (*mark)->visframe = r_visframecount; + + // add static models + if (leaf->efrags) + R_StoreEfrags (&leaf->efrags); + } + } + + // set all chains to null + for (i=0 ; inumtextures ; i++) + if (cl.worldmodel->textures[i]) + cl.worldmodel->textures[i]->texturechain = NULL; + + // rebuild chains + +#if 1 + //iterate through surfaces one node at a time to rebuild chains + //need to do it this way if we want to work with tyrann's skip removal tool + //becuase his tool doesn't actually remove the surfaces from the bsp surfaces lump + //nor does it remove references to them in each leaf's marksurfaces list + for (i=0, node = cl.worldmodel->nodes ; inumnodes ; i++, node++) + for (j=0, surf=&cl.worldmodel->surfaces[node->firstsurface] ; jnumsurfaces ; j++, surf++) + if (surf->visframe == r_visframecount) + { + surf->texturechain = surf->texinfo->texture->texturechain; + surf->texinfo->texture->texturechain = surf; + } +#else + //the old way + surf = &cl.worldmodel->surfaces[cl.worldmodel->firstmodelsurface]; + for (i=0 ; inummodelsurfaces ; i++, surf++) + { + if (surf->visframe == r_visframecount) + { + surf->texturechain = surf->texinfo->texture->texturechain; + surf->texinfo->texture->texturechain = surf; + } + } +#endif +} + +/* +================ +R_BackFaceCull -- johnfitz -- returns true if the surface is facing away from vieworg +================ +*/ +qboolean R_BackFaceCull (msurface_t *surf) +{ + double dot; + + switch (surf->plane->type) + { + case PLANE_X: + dot = r_refdef.vieworg[0] - surf->plane->dist; + break; + case PLANE_Y: + dot = r_refdef.vieworg[1] - surf->plane->dist; + break; + case PLANE_Z: + dot = r_refdef.vieworg[2] - surf->plane->dist; + break; + default: + dot = DotProduct (r_refdef.vieworg, surf->plane->normal) - surf->plane->dist; + break; + } + + if ((dot < 0) ^ !!(surf->flags & SURF_PLANEBACK)) + return true; + + return false; +} + +/* +================ +R_CullSurfaces -- johnfitz +================ +*/ +void R_CullSurfaces (void) +{ + msurface_t *s; + int i; + + if (!r_drawworld_cheatsafe) + return; + + s = &cl.worldmodel->surfaces[cl.worldmodel->firstmodelsurface]; + for (i=0 ; inummodelsurfaces ; i++, s++) + { + if (s->visframe == r_visframecount) + { + if (R_CullBox(s->mins, s->maxs) || R_BackFaceCull (s)) + s->culled = true; + else + { + s->culled = false; + rs_brushpolys++; //count wpolys here + if (s->texinfo->texture->warpimage) + s->texinfo->texture->update_warp = true; + } + } + } +} + +/* +================ +R_BuildLightmapChains -- johnfitz -- used for r_lightmap 1 +================ +*/ +void R_BuildLightmapChains (void) +{ + msurface_t *s; + int i; + + // clear lightmap chains (already done in r_marksurfaces, but clearing them here to be safe becuase of r_stereo) + memset (lightmap_polys, 0, sizeof(lightmap_polys)); + + // now rebuild them + s = &cl.worldmodel->surfaces[cl.worldmodel->firstmodelsurface]; + for (i=0 ; inummodelsurfaces ; i++, s++) + if (s->visframe == r_visframecount && !R_CullBox(s->mins, s->maxs) && !R_BackFaceCull (s)) + R_RenderDynamicLightmaps (s); +} + +//============================================================================== +// +// DRAW CHAINS +// +//============================================================================== + +/* +================ +R_DrawTextureChains_ShowTris -- johnfitz +================ +*/ +void R_DrawTextureChains_ShowTris (void) +{ + int i; + msurface_t *s; + texture_t *t; + glpoly_t *p; + + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + if (!t) + continue; + + if (r_oldwater.value && t->texturechain && (t->texturechain->flags & SURF_DRAWTURB)) + { + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + for (p = s->polys->next; p; p = p->next) + { + DrawGLTriangleFan (p); + } + } + else + { + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + DrawGLTriangleFan (s->polys); + } + } + } +} + +/* +================ +R_DrawTextureChains_Drawflat -- johnfitz +================ +*/ +void R_DrawTextureChains_Drawflat (void) +{ + int i; + msurface_t *s; + texture_t *t; + glpoly_t *p; + + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + if (!t) + continue; + + if (r_oldwater.value && t->texturechain && (t->texturechain->flags & SURF_DRAWTURB)) + { + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + for (p = s->polys->next; p; p = p->next) + { + srand((unsigned int) p); + glColor3f (rand()%256/255.0, rand()%256/255.0, rand()%256/255.0); + DrawGLPoly (p); + rs_brushpasses++; + } + } + else + { + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + srand((unsigned int) s->polys); + glColor3f (rand()%256/255.0, rand()%256/255.0, rand()%256/255.0); + DrawGLPoly (s->polys); + rs_brushpasses++; + } + } + } + glColor3f (1,1,1); + srand ((int) (cl.time * 1000)); +} + +/* +================ +R_DrawTextureChains_Glow -- johnfitz +================ +*/ +void R_DrawTextureChains_Glow (void) +{ + int i; + msurface_t *s; + texture_t *t; + gltexture_t *glt; + qboolean bound; + + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + + if (!t || !t->texturechain || !(glt = R_TextureAnimation(t,0)->fullbright)) + continue; + + bound = false; + + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + if (!bound) //only bind once we are sure we need this texture + { + GL_Bind (glt); + bound = true; + } + DrawGLPoly (s->polys); + rs_brushpasses++; + } + } +} + +/* +================ +R_DrawTextureChains_Multitexture -- johnfitz +================ +*/ +void R_DrawTextureChains_Multitexture (void) +{ + int i, j; + msurface_t *s; + texture_t *t; + float *v; + qboolean bound; + + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + + if (!t || !t->texturechain || t->texturechain->flags & (SURF_DRAWTILED | SURF_NOTEXTURE)) + continue; + + bound = false; + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + if (!bound) //only bind once we are sure we need this texture + { + GL_Bind ((R_TextureAnimation(t,0))->gltexture); + GL_EnableMultitexture(); // selects TEXTURE1 + bound = true; + } + R_RenderDynamicLightmaps (s); + GL_Bind (lightmap_textures[s->lightmaptexturenum]); + R_UploadLightmap(s->lightmaptexturenum); + glBegin(GL_POLYGON); + v = s->polys->verts[0]; + for (j=0 ; jpolys->numverts ; j++, v+= VERTEXSIZE) + { + GL_MTexCoord2fFunc (TEXTURE0, v[3], v[4]); + GL_MTexCoord2fFunc (TEXTURE1, v[5], v[6]); + glVertex3fv (v); + } + glEnd (); + rs_brushpasses++; + } + GL_DisableMultitexture(); // selects TEXTURE0 + } +} + +/* +================ +R_DrawTextureChains_NoTexture -- johnfitz + +draws surfs whose textures were missing from the BSP +================ +*/ +void R_DrawTextureChains_NoTexture (void) +{ + int i; + msurface_t *s; + texture_t *t; + qboolean bound; + + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + + if (!t || !t->texturechain || !(t->texturechain->flags & SURF_NOTEXTURE)) + continue; + + bound = false; + + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + if (!bound) //only bind once we are sure we need this texture + { + GL_Bind (t->gltexture); + bound = true; + } + DrawGLPoly (s->polys); + rs_brushpasses++; + } + } +} + +/* +================ +R_DrawTextureChains_TextureOnly -- johnfitz +================ +*/ +void R_DrawTextureChains_TextureOnly (void) +{ + int i; + msurface_t *s; + texture_t *t; + qboolean bound; + + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + + if (!t || !t->texturechain || t->texturechain->flags & (SURF_DRAWTURB | SURF_DRAWSKY)) + continue; + + bound = false; + + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + if (!bound) //only bind once we are sure we need this texture + { + GL_Bind ((R_TextureAnimation(t,0))->gltexture); + bound = true; + } + R_RenderDynamicLightmaps (s); //adds to lightmap chain + DrawGLPoly (s->polys); + rs_brushpasses++; + } + } +} + +/* +================ +R_DrawTextureChains_Water -- johnfitz +================ +*/ +void R_DrawTextureChains_Water (void) +{ + int i; + msurface_t *s; + texture_t *t; + glpoly_t *p; + qboolean bound; + /* unused -- kristian + int j; + float *v; + */ + + if (r_drawflat_cheatsafe || r_lightmap_cheatsafe || !r_drawworld_cheatsafe) + return; + + if (r_wateralpha.value < 1.0) + { + glDepthMask(GL_FALSE); + glEnable (GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor4f (1,1,1,r_wateralpha.value); + } + + if (r_oldwater.value) + { + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + if (!t || !t->texturechain || !(t->texturechain->flags & SURF_DRAWTURB)) + continue; + bound = false; + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + if (!bound) //only bind once we are sure we need this texture + { + GL_Bind (t->gltexture); + bound = true; + } + for (p = s->polys->next; p; p = p->next) + { + DrawWaterPoly (p); + rs_brushpasses++; + } + } + } + } + else + { + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + if (!t || !t->texturechain || !(t->texturechain->flags & SURF_DRAWTURB)) + continue; + bound = false; + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + if (!bound) //only bind once we are sure we need this texture + { + GL_Bind (t->warpimage); + bound = true; + } + DrawGLPoly (s->polys); + rs_brushpasses++; + } + } + } + + if (r_wateralpha.value < 1.0) + { + glDepthMask(GL_TRUE); + glDisable (GL_BLEND); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glColor3f (1,1,1); + } +} + +/* +================ +R_DrawTextureChains_White -- johnfitz -- draw sky and water as white polys when r_lightmap is 1 +================ +*/ +void R_DrawTextureChains_White (void) +{ + int i; + msurface_t *s; + texture_t *t; + + glDisable (GL_TEXTURE_2D); + for (i=0 ; inumtextures ; i++) + { + t = cl.worldmodel->textures[i]; + + if (!t || !t->texturechain || !(t->texturechain->flags & SURF_DRAWTILED)) + continue; + + for (s = t->texturechain; s; s = s->texturechain) + if (!s->culled) + { + DrawGLPoly (s->polys); + rs_brushpasses++; + } + } + glEnable (GL_TEXTURE_2D); +} + +/* +================ +R_DrawLightmapChains -- johnfitz -- R_BlendLightmaps stripped down to almost nothing +================ +*/ +void R_DrawLightmapChains (void) +{ + int i, j; + glpoly_t *p; + float *v; + + for (i=0 ; ichain) + { + glBegin (GL_POLYGON); + v = p->verts[0]; + for (j=0 ; jnumverts ; j++, v+= VERTEXSIZE) + { + glTexCoord2f (v[5], v[6]); + glVertex3fv (v); + } + glEnd (); + rs_brushpasses++; + } + } +} + +/* +============= +R_DrawWorld -- johnfitz -- rewritten +============= +*/ +void R_DrawWorld (void) +{ + if (!r_drawworld_cheatsafe) + return; + + if (r_drawflat_cheatsafe) + { + glDisable (GL_TEXTURE_2D); + R_DrawTextureChains_Drawflat (); + glEnable (GL_TEXTURE_2D); + return; + } + + if (r_fullbright_cheatsafe) + { + R_DrawTextureChains_TextureOnly (); + goto fullbrights; + } + + if (r_lightmap_cheatsafe) + { + R_BuildLightmapChains (); + if (!gl_overbright.value) + { + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(0.5, 0.5, 0.5); + } + R_DrawLightmapChains (); + if (!gl_overbright.value) + { + glColor3f(1,1,1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + R_DrawTextureChains_White (); + return; + } + + R_DrawTextureChains_NoTexture (); + + if (gl_overbright.value) + { + if (gl_texture_env_combine && gl_mtexable) + { + GL_EnableMultitexture (); + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_EXT); + glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_MODULATE); + glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT, GL_PREVIOUS_EXT); + glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT, GL_TEXTURE); + glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 2.0f); + GL_DisableMultitexture (); + R_DrawTextureChains_Multitexture (); + GL_EnableMultitexture (); + glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT, 1.0f); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_DisableMultitexture (); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + else + { + //to make fog work with multipass lightmapping, need to do one pass + //with no fog, one modulate pass with black fog, and one additive + //pass with black geometry and normal fog + Fog_DisableGFog (); + R_DrawTextureChains_TextureOnly (); + Fog_EnableGFog (); + glDepthMask (GL_FALSE); + glEnable (GL_BLEND); + glBlendFunc (GL_DST_COLOR, GL_SRC_COLOR); //2x modulate + Fog_StartAdditive (); + R_DrawLightmapChains (); + Fog_StopAdditive (); + if (Fog_GetDensity() > 0) + { + glBlendFunc(GL_ONE, GL_ONE); //add + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(0,0,0); + R_DrawTextureChains_TextureOnly (); + glColor3f(1,1,1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable (GL_BLEND); + glDepthMask (GL_TRUE); + } + } + else + { + if (gl_mtexable) + { + GL_EnableMultitexture (); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + GL_DisableMultitexture (); + R_DrawTextureChains_Multitexture (); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + else + { + //to make fog work with multipass lightmapping, need to do one pass + //with no fog, one modulate pass with black fog, and one additive + //pass with black geometry and normal fog + Fog_DisableGFog (); + R_DrawTextureChains_TextureOnly (); + Fog_EnableGFog (); + glDepthMask (GL_FALSE); + glEnable (GL_BLEND); + glBlendFunc(GL_ZERO, GL_SRC_COLOR); //modulate + Fog_StartAdditive (); + R_DrawLightmapChains (); + Fog_StopAdditive (); + if (Fog_GetDensity() > 0) + { + glBlendFunc(GL_ONE, GL_ONE); //add + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glColor3f(0,0,0); + R_DrawTextureChains_TextureOnly (); + glColor3f(1,1,1); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + } + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable (GL_BLEND); + glDepthMask (GL_TRUE); + } + } + +fullbrights: + if (gl_fullbrights.value) + { + glDepthMask (GL_FALSE); + glEnable (GL_BLEND); + glBlendFunc (GL_ONE, GL_ONE); + Fog_StartAdditive (); + R_DrawTextureChains_Glow (); + Fog_StopAdditive (); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable (GL_BLEND); + glDepthMask (GL_TRUE); + } +} \ No newline at end of file diff --git a/quakespasm/Quake/render.h b/quakespasm/Quake/render.h new file mode 100644 index 00000000..dd6f9e15 --- /dev/null +++ b/quakespasm/Quake/render.h @@ -0,0 +1,175 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ + +// refresh.h -- public interface to refresh functions + +#define MAXCLIPPLANES 11 + +#define TOP_RANGE 16 // soldier uniform colors +#define BOTTOM_RANGE 96 + +//============================================================================= + +typedef struct efrag_s +{ + struct mleaf_s *leaf; + struct efrag_s *leafnext; + struct entity_s *entity; + struct efrag_s *entnext; +} efrag_t; + +//johnfitz -- for lerping +#define LERP_MOVESTEP (1<<0) //this is a MOVETYPE_STEP entity, enable movement lerp +#define LERP_RESETANIM (1<<1) //disable anim lerping until next anim frame +#define LERP_RESETANIM2 (1<<2) //set this and previous flag to disable anim lerping for two anim frames +#define LERP_RESETMOVE (1<<3) //disable movement lerping until next origin/angles change +#define LERP_FINISH (1<<4) //use lerpfinish time from server update instead of assuming interval of 0.1 +//johnfitz + +typedef struct entity_s +{ + qboolean forcelink; // model changed + + int update_type; + + entity_state_t baseline; // to fill in defaults in updates + + double msgtime; // time of last update + vec3_t msg_origins[2]; // last two updates (0 is newest) + vec3_t origin; + vec3_t msg_angles[2]; // last two updates (0 is newest) + vec3_t angles; + struct model_s *model; // NULL = no model + struct efrag_s *efrag; // linked list of efrags + int frame; + float syncbase; // for client-side animations + byte *colormap; + int effects; // light, particles, etc + int skinnum; // for Alias models + int visframe; // last frame this entity was + // found in an active leaf + + int dlightframe; // dynamic lighting + int dlightbits; + +// FIXME: could turn these into a union + int trivial_accept; + struct mnode_s *topnode; // for bmodels, first world node + // that splits bmodel, or NULL if + // not split + + byte alpha; //johnfitz -- alpha + byte lerpflags; //johnfitz -- lerping + float lerpstart; //johnfitz -- animation lerping + float lerptime; //johnfitz -- animation lerping + float lerpfinish; //johnfitz -- lerping -- server sent us a more accurate interval, use it instead of 0.1 + short previouspose; //johnfitz -- animation lerping + short currentpose; //johnfitz -- animation lerping +// short futurepose; //johnfitz -- animation lerping + float movelerpstart; //johnfitz -- transform lerping + vec3_t previousorigin; //johnfitz -- transform lerping + vec3_t currentorigin; //johnfitz -- transform lerping + vec3_t previousangles; //johnfitz -- transform lerping + vec3_t currentangles; //johnfitz -- transform lerping +} entity_t; + +// !!! if this is changed, it must be changed in asm_draw.h too !!! +typedef struct +{ + vrect_t vrect; // subwindow in video for refresh + // FIXME: not need vrect next field here? + vrect_t aliasvrect; // scaled Alias version + int vrectright, vrectbottom; // right & bottom screen coords + int aliasvrectright, aliasvrectbottom; // scaled Alias versions + float vrectrightedge; // rightmost right edge we care about, + // for use in edge list + float fvrectx, fvrecty; // for floating-point compares + float fvrectx_adj, fvrecty_adj; // left and top edges, for clamping + int vrect_x_adj_shift20; // (vrect.x + 0.5 - epsilon) << 20 + int vrectright_adj_shift20; // (vrectright + 0.5 - epsilon) << 20 + float fvrectright_adj, fvrectbottom_adj; + // right and bottom edges, for clamping + float fvrectright; // rightmost edge, for Alias clamping + float fvrectbottom; // bottommost edge, for Alias clamping + float horizontalFieldOfView; // at Z = 1.0, this many X is visible + // 2.0 = 90 degrees + float xOrigin; // should probably allways be 0.5 + float yOrigin; // between be around 0.3 to 0.5 + + vec3_t vieworg; + vec3_t viewangles; + + float fov_x, fov_y; + + int ambientlight; +} refdef_t; + + +// +// refresh +// +extern int reinit_surfcache; + + +extern refdef_t r_refdef; +extern vec3_t r_origin, vpn, vright, vup; + + +void R_Init (void); +void R_InitTextures (void); +void R_InitEfrags (void); +void R_RenderView (void); // must set r_refdef first +void R_ViewChanged (vrect_t *pvrect, int lineadj, float aspect); + // called whenever r_refdef or vid change +//void R_InitSky (struct texture_s *mt); // called at level load + +void R_CheckEfrags (void); //johnfitz +void R_AddEfrags (entity_t *ent); +void R_RemoveEfrags (entity_t *ent); + +void R_NewMap (void); + + +void R_ParseParticleEffect (void); +void R_RunParticleEffect (vec3_t org, vec3_t dir, int color, int count); +void R_RocketTrail (vec3_t start, vec3_t end, int type); +void R_EntityParticles (entity_t *ent); +void R_BlobExplosion (vec3_t org); +void R_ParticleExplosion (vec3_t org); +void R_ParticleExplosion2 (vec3_t org, int colorStart, int colorLength); +void R_LavaSplash (vec3_t org); +void R_TeleportSplash (vec3_t org); + +void R_PushDlights (void); + + +// +// surface cache related +// +extern int reinit_surfcache; // if 1, surface cache is currently empty and +extern qboolean r_cache_thrash; // set if thrashing the surface cache + +int D_SurfaceCacheForRes (int width, int height); +void D_FlushCaches (void); +void D_DeleteSurfaceCache (void); +void D_InitCaches (void *buffer, int size); +void R_SetVrect (vrect_t *pvrect, vrect_t *pvrectin, int lineadj); + diff --git a/quakespasm/Quake/resource.h b/quakespasm/Quake/resource.h new file mode 100644 index 00000000..d2004d4e --- /dev/null +++ b/quakespasm/Quake/resource.h @@ -0,0 +1,20 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by winquake.rc +// +#define IDS_STRING1 1 +#define IDI_ICON2 1 +#define IDD_DIALOG1 108 +#define IDD_PROGRESS 109 +#define IDC_PROGRESS 1000 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 113 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1004 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/quakespasm/Quake/sbar.c b/quakespasm/Quake/sbar.c new file mode 100644 index 00000000..c8265e53 --- /dev/null +++ b/quakespasm/Quake/sbar.c @@ -0,0 +1,1286 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// sbar.c -- status bar code + +#include "quakedef.h" + +int sb_updates; // if >= vid.numpages, no update needed + +#define STAT_MINUS 10 // num frame for '-' stats digit +qpic_t *sb_nums[2][11]; +qpic_t *sb_colon, *sb_slash; +qpic_t *sb_ibar; +qpic_t *sb_sbar; +qpic_t *sb_scorebar; + +qpic_t *sb_weapons[7][8]; // 0 is active, 1 is owned, 2-5 are flashes +qpic_t *sb_ammo[4]; +qpic_t *sb_sigil[4]; +qpic_t *sb_armor[3]; +qpic_t *sb_items[32]; + +qpic_t *sb_faces[7][2]; // 0 is gibbed, 1 is dead, 2-6 are alive + // 0 is static, 1 is temporary animation +qpic_t *sb_face_invis; +qpic_t *sb_face_quad; +qpic_t *sb_face_invuln; +qpic_t *sb_face_invis_invuln; + +qboolean sb_showscores; + +int sb_lines; // scan lines to draw + +qpic_t *rsb_invbar[2]; +qpic_t *rsb_weapons[5]; +qpic_t *rsb_items[2]; +qpic_t *rsb_ammo[3]; +qpic_t *rsb_teambord; // PGM 01/19/97 - team color border + +//MED 01/04/97 added two more weapons + 3 alternates for grenade launcher +qpic_t *hsb_weapons[7][5]; // 0 is active, 1 is owned, 2-5 are flashes +//MED 01/04/97 added array to simplify weapon parsing +int hipweapons[4] = {HIT_LASER_CANNON_BIT,HIT_MJOLNIR_BIT,4,HIT_PROXIMITY_GUN_BIT}; +//MED 01/04/97 added hipnotic items array +qpic_t *hsb_items[2]; + +void Sbar_MiniDeathmatchOverlay (void); +void Sbar_DeathmatchOverlay (void); +void M_DrawPic (int x, int y, qpic_t *pic); + +/* +=============== +Sbar_ShowScores + +Tab key down +=============== +*/ +void Sbar_ShowScores (void) +{ + if (sb_showscores) + return; + sb_showscores = true; + sb_updates = 0; +} + +/* +=============== +Sbar_DontShowScores + +Tab key up +=============== +*/ +void Sbar_DontShowScores (void) +{ + sb_showscores = false; + sb_updates = 0; +} + +/* +=============== +Sbar_Changed +=============== +*/ +void Sbar_Changed (void) +{ + sb_updates = 0; // update next frame +} + +/* +=============== +Sbar_LoadPics -- johnfitz -- load all the sbar pics +=============== +*/ +void Sbar_LoadPics (void) +{ + int i; + + for (i=0 ; i<10 ; i++) + { + sb_nums[0][i] = Draw_PicFromWad (va("num_%i",i)); + sb_nums[1][i] = Draw_PicFromWad (va("anum_%i",i)); + } + + sb_nums[0][10] = Draw_PicFromWad ("num_minus"); + sb_nums[1][10] = Draw_PicFromWad ("anum_minus"); + + sb_colon = Draw_PicFromWad ("num_colon"); + sb_slash = Draw_PicFromWad ("num_slash"); + + sb_weapons[0][0] = Draw_PicFromWad ("inv_shotgun"); + sb_weapons[0][1] = Draw_PicFromWad ("inv_sshotgun"); + sb_weapons[0][2] = Draw_PicFromWad ("inv_nailgun"); + sb_weapons[0][3] = Draw_PicFromWad ("inv_snailgun"); + sb_weapons[0][4] = Draw_PicFromWad ("inv_rlaunch"); + sb_weapons[0][5] = Draw_PicFromWad ("inv_srlaunch"); + sb_weapons[0][6] = Draw_PicFromWad ("inv_lightng"); + + sb_weapons[1][0] = Draw_PicFromWad ("inv2_shotgun"); + sb_weapons[1][1] = Draw_PicFromWad ("inv2_sshotgun"); + sb_weapons[1][2] = Draw_PicFromWad ("inv2_nailgun"); + sb_weapons[1][3] = Draw_PicFromWad ("inv2_snailgun"); + sb_weapons[1][4] = Draw_PicFromWad ("inv2_rlaunch"); + sb_weapons[1][5] = Draw_PicFromWad ("inv2_srlaunch"); + sb_weapons[1][6] = Draw_PicFromWad ("inv2_lightng"); + + for (i=0 ; i<5 ; i++) + { + sb_weapons[2+i][0] = Draw_PicFromWad (va("inva%i_shotgun",i+1)); + sb_weapons[2+i][1] = Draw_PicFromWad (va("inva%i_sshotgun",i+1)); + sb_weapons[2+i][2] = Draw_PicFromWad (va("inva%i_nailgun",i+1)); + sb_weapons[2+i][3] = Draw_PicFromWad (va("inva%i_snailgun",i+1)); + sb_weapons[2+i][4] = Draw_PicFromWad (va("inva%i_rlaunch",i+1)); + sb_weapons[2+i][5] = Draw_PicFromWad (va("inva%i_srlaunch",i+1)); + sb_weapons[2+i][6] = Draw_PicFromWad (va("inva%i_lightng",i+1)); + } + + sb_ammo[0] = Draw_PicFromWad ("sb_shells"); + sb_ammo[1] = Draw_PicFromWad ("sb_nails"); + sb_ammo[2] = Draw_PicFromWad ("sb_rocket"); + sb_ammo[3] = Draw_PicFromWad ("sb_cells"); + + sb_armor[0] = Draw_PicFromWad ("sb_armor1"); + sb_armor[1] = Draw_PicFromWad ("sb_armor2"); + sb_armor[2] = Draw_PicFromWad ("sb_armor3"); + + sb_items[0] = Draw_PicFromWad ("sb_key1"); + sb_items[1] = Draw_PicFromWad ("sb_key2"); + sb_items[2] = Draw_PicFromWad ("sb_invis"); + sb_items[3] = Draw_PicFromWad ("sb_invuln"); + sb_items[4] = Draw_PicFromWad ("sb_suit"); + sb_items[5] = Draw_PicFromWad ("sb_quad"); + + sb_sigil[0] = Draw_PicFromWad ("sb_sigil1"); + sb_sigil[1] = Draw_PicFromWad ("sb_sigil2"); + sb_sigil[2] = Draw_PicFromWad ("sb_sigil3"); + sb_sigil[3] = Draw_PicFromWad ("sb_sigil4"); + + sb_faces[4][0] = Draw_PicFromWad ("face1"); + sb_faces[4][1] = Draw_PicFromWad ("face_p1"); + sb_faces[3][0] = Draw_PicFromWad ("face2"); + sb_faces[3][1] = Draw_PicFromWad ("face_p2"); + sb_faces[2][0] = Draw_PicFromWad ("face3"); + sb_faces[2][1] = Draw_PicFromWad ("face_p3"); + sb_faces[1][0] = Draw_PicFromWad ("face4"); + sb_faces[1][1] = Draw_PicFromWad ("face_p4"); + sb_faces[0][0] = Draw_PicFromWad ("face5"); + sb_faces[0][1] = Draw_PicFromWad ("face_p5"); + + sb_face_invis = Draw_PicFromWad ("face_invis"); + sb_face_invuln = Draw_PicFromWad ("face_invul2"); + sb_face_invis_invuln = Draw_PicFromWad ("face_inv2"); + sb_face_quad = Draw_PicFromWad ("face_quad"); + + sb_sbar = Draw_PicFromWad ("sbar"); + sb_ibar = Draw_PicFromWad ("ibar"); + sb_scorebar = Draw_PicFromWad ("scorebar"); + +//MED 01/04/97 added new hipnotic weapons + if (hipnotic) + { + hsb_weapons[0][0] = Draw_PicFromWad ("inv_laser"); + hsb_weapons[0][1] = Draw_PicFromWad ("inv_mjolnir"); + hsb_weapons[0][2] = Draw_PicFromWad ("inv_gren_prox"); + hsb_weapons[0][3] = Draw_PicFromWad ("inv_prox_gren"); + hsb_weapons[0][4] = Draw_PicFromWad ("inv_prox"); + + hsb_weapons[1][0] = Draw_PicFromWad ("inv2_laser"); + hsb_weapons[1][1] = Draw_PicFromWad ("inv2_mjolnir"); + hsb_weapons[1][2] = Draw_PicFromWad ("inv2_gren_prox"); + hsb_weapons[1][3] = Draw_PicFromWad ("inv2_prox_gren"); + hsb_weapons[1][4] = Draw_PicFromWad ("inv2_prox"); + + for (i=0 ; i<5 ; i++) + { + hsb_weapons[2+i][0] = Draw_PicFromWad (va("inva%i_laser",i+1)); + hsb_weapons[2+i][1] = Draw_PicFromWad (va("inva%i_mjolnir",i+1)); + hsb_weapons[2+i][2] = Draw_PicFromWad (va("inva%i_gren_prox",i+1)); + hsb_weapons[2+i][3] = Draw_PicFromWad (va("inva%i_prox_gren",i+1)); + hsb_weapons[2+i][4] = Draw_PicFromWad (va("inva%i_prox",i+1)); + } + + hsb_items[0] = Draw_PicFromWad ("sb_wsuit"); + hsb_items[1] = Draw_PicFromWad ("sb_eshld"); + } + + if (rogue) + { + rsb_invbar[0] = Draw_PicFromWad ("r_invbar1"); + rsb_invbar[1] = Draw_PicFromWad ("r_invbar2"); + + rsb_weapons[0] = Draw_PicFromWad ("r_lava"); + rsb_weapons[1] = Draw_PicFromWad ("r_superlava"); + rsb_weapons[2] = Draw_PicFromWad ("r_gren"); + rsb_weapons[3] = Draw_PicFromWad ("r_multirock"); + rsb_weapons[4] = Draw_PicFromWad ("r_plasma"); + + rsb_items[0] = Draw_PicFromWad ("r_shield1"); + rsb_items[1] = Draw_PicFromWad ("r_agrav1"); + +// PGM 01/19/97 - team color border + rsb_teambord = Draw_PicFromWad ("r_teambord"); +// PGM 01/19/97 - team color border + + rsb_ammo[0] = Draw_PicFromWad ("r_ammolava"); + rsb_ammo[1] = Draw_PicFromWad ("r_ammomulti"); + rsb_ammo[2] = Draw_PicFromWad ("r_ammoplasma"); + } +} + +/* +=============== +Sbar_Init -- johnfitz -- rewritten +=============== +*/ +void Sbar_Init (void) +{ + Cmd_AddCommand ("+showscores", Sbar_ShowScores); + Cmd_AddCommand ("-showscores", Sbar_DontShowScores); + + Sbar_LoadPics (); +} + + +//============================================================================= + +// drawing routines are relative to the status bar location + +/* +============= +Sbar_DrawPic -- johnfitz -- rewritten now that GL_SetCanvas is doing the work +============= +*/ +void Sbar_DrawPic (int x, int y, qpic_t *pic) +{ + Draw_Pic (x, y + 24, pic); +} + +/* +============= +Sbar_DrawPicAlpha -- johnfitz +============= +*/ +Sbar_DrawPicAlpha (int x, int y, qpic_t *pic, float alpha) +{ + glDisable (GL_ALPHA_TEST); + glEnable (GL_BLEND); + glColor4f(1,1,1,alpha); + Draw_Pic (x, y + 24, pic); + glColor3f(1,1,1); + glDisable (GL_BLEND); + glEnable (GL_ALPHA_TEST); +} + +/* +================ +Sbar_DrawCharacter -- johnfitz -- rewritten now that GL_SetCanvas is doing the work +================ +*/ +void Sbar_DrawCharacter (int x, int y, int num) +{ + Draw_Character (x, y + 24, num); +} + +/* +================ +Sbar_DrawString -- johnfitz -- rewritten now that GL_SetCanvas is doing the work +================ +*/ +void Sbar_DrawString (int x, int y, char *str) +{ + Draw_String (x, y + 24, str); +} + +/* +=============== +Sbar_DrawScrollString -- johnfitz + +scroll the string inside a glscissor region +=============== +*/ +void Sbar_DrawScrollString (int x, int y, int width, char* str) +{ + float scale; + int len, ofs, left; + + scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); + left = x * scale; + if (cl.gametype != GAME_DEATHMATCH) + left += (((float)glwidth - 320.0 * scale) / 2); + + glEnable (GL_SCISSOR_TEST); + glScissor (left, 0, width * scale, glheight); + + len = strlen(str)*8 + 40; + ofs = ((int)(realtime*30))%len; + Sbar_DrawString (x - ofs, y, str); + Sbar_DrawCharacter (x - ofs + len - 32, y, '/'); + Sbar_DrawCharacter (x - ofs + len - 24, y, '/'); + Sbar_DrawCharacter (x - ofs + len - 16, y, '/'); + Sbar_DrawString (x - ofs + len, y, str); + + glDisable (GL_SCISSOR_TEST); +} + +/* +============= +Sbar_itoa +============= +*/ +int Sbar_itoa (int num, char *buf) +{ + char *str; + int pow10; + int dig; + + str = buf; + + if (num < 0) + { + *str++ = '-'; + num = -num; + } + + for (pow10 = 10 ; num >= pow10 ; pow10 *= 10) + ; + + do + { + pow10 /= 10; + dig = num/pow10; + *str++ = '0'+dig; + num -= dig*pow10; + } while (pow10 != 1); + + *str = 0; + + return str-buf; +} + + +/* +============= +Sbar_DrawNum +============= +*/ +void Sbar_DrawNum (int x, int y, int num, int digits, int color) +{ + char str[12]; + char *ptr; + int l, frame; + + num = min(999,num); //johnfitz -- cap high values rather than truncating number + + l = Sbar_itoa (num, str); + ptr = str; + if (l > digits) + ptr += (l-digits); + if (l < digits) + x += (digits-l)*24; + + while (*ptr) + { + if (*ptr == '-') + frame = STAT_MINUS; + else + frame = *ptr -'0'; + + Sbar_DrawPic (x,y,sb_nums[color][frame]); //johnfitz -- DrawTransPic is obsolete + x += 24; + ptr++; + } +} + +//============================================================================= + +int fragsort[MAX_SCOREBOARD]; + +char scoreboardtext[MAX_SCOREBOARD][20]; +int scoreboardtop[MAX_SCOREBOARD]; +int scoreboardbottom[MAX_SCOREBOARD]; +int scoreboardcount[MAX_SCOREBOARD]; +int scoreboardlines; + +/* +=============== +Sbar_SortFrags +=============== +*/ +void Sbar_SortFrags (void) +{ + int i, j, k; + +// sort by frags + scoreboardlines = 0; + for (i=0 ; ifrags, s->name); + + top = s->colors & 0xf0; + bottom = (s->colors & 15) <<4; + scoreboardtop[i] = Sbar_ColorForMap (top); + scoreboardbottom[i] = Sbar_ColorForMap (bottom); + } +} + +/* +=============== +Sbar_SoloScoreboard -- johnfitz -- new layout +=============== +*/ +void Sbar_SoloScoreboard (void) +{ + char str[80]; + int minutes, seconds, tens, units; + int len; + + sprintf (str,"Kills: %i/%i", cl.stats[STAT_MONSTERS], cl.stats[STAT_TOTALMONSTERS]); + Sbar_DrawString (8, 12, str); + + sprintf (str,"Secrets: %i/%i", cl.stats[STAT_SECRETS], cl.stats[STAT_TOTALSECRETS]); + Sbar_DrawString (312 - strlen(str)*8, 12, str); + + minutes = cl.time / 60; + seconds = cl.time - 60*minutes; + tens = seconds / 10; + units = seconds - 10*tens; + sprintf (str,"%i:%i%i", minutes, tens, units); + Sbar_DrawString (160 - strlen(str)*4, 12, str); + + len = strlen (cl.levelname); + if (len > 40) + Sbar_DrawScrollString (0, 4, 320, cl.levelname); + else + Sbar_DrawString (160 - len*4, 4, cl.levelname); +} + +/* +=============== +Sbar_DrawScoreboard +=============== +*/ +void Sbar_DrawScoreboard (void) +{ + Sbar_SoloScoreboard (); + if (cl.gametype == GAME_DEATHMATCH) + Sbar_DeathmatchOverlay (); +} + +//============================================================================= + +/* +=============== +Sbar_DrawInventory +=============== +*/ +void Sbar_DrawInventory (void) +{ + int i; + char num[6]; + float time; + int flashon; + + if (rogue) + { + if ( cl.stats[STAT_ACTIVEWEAPON] >= RIT_LAVA_NAILGUN ) + Sbar_DrawPicAlpha (0, -24, rsb_invbar[0], scr_sbaralpha.value); //johnfitz -- scr_sbaralpha + else + Sbar_DrawPicAlpha (0, -24, rsb_invbar[1], scr_sbaralpha.value); //johnfitz -- scr_sbaralpha + } + else + { + Sbar_DrawPicAlpha (0, -24, sb_ibar, scr_sbaralpha.value); //johnfitz -- scr_sbaralpha + } + +// weapons + for (i=0 ; i<7 ; i++) + { + if (cl.items & (IT_SHOTGUN<= 10) + { + if ( cl.stats[STAT_ACTIVEWEAPON] == (IT_SHOTGUN< 1) + sb_updates = 0; // force update to remove flash + } + } + +// MED 01/04/97 +// hipnotic weapons + if (hipnotic) + { + int grenadeflashing=0; + for (i=0 ; i<4 ; i++) + { + if (cl.items & (1<= 10) + { + if ( cl.stats[STAT_ACTIVEWEAPON] == (1< 1) + sb_updates = 0; // force update to remove flash + } + } + } + + if (rogue) + { + // check for powered up weapon. + if ( cl.stats[STAT_ACTIVEWEAPON] >= RIT_LAVA_NAILGUN ) + { + for (i=0;i<5;i++) + { + if (cl.stats[STAT_ACTIVEWEAPON] == (RIT_LAVA_NAILGUN << i)) + { + Sbar_DrawPic ((i+2)*24, -16, rsb_weapons[i]); + } + } + } + } + +// ammo counts + for (i=0 ; i<4 ; i++) + { + sprintf (num, "%3i", min(999,cl.stats[STAT_SHELLS+i])); //johnfitz -- cap displayed value to 999 + if (num[0] != ' ') + Sbar_DrawCharacter ( (6*i+1)*8 + 2, -24, 18 + num[0] - '0'); + if (num[1] != ' ') + Sbar_DrawCharacter ( (6*i+2)*8 + 2, -24, 18 + num[1] - '0'); + if (num[2] != ' ') + Sbar_DrawCharacter ( (6*i+3)*8 + 2, -24, 18 + num[2] - '0'); + } + + flashon = 0; + // items + for (i=0 ; i<6 ; i++) + if (cl.items & (1<<(17+i))) + { + time = cl.item_gettime[17+i]; + if (time && time > cl.time - 2 && flashon ) + { // flash frame + sb_updates = 0; + } + else + { + //MED 01/04/97 changed keys + if (!hipnotic || (i>1)) + { + Sbar_DrawPic (192 + i*16, -16, sb_items[i]); + } + } + if (time && time > cl.time - 2) + sb_updates = 0; + } + //MED 01/04/97 added hipnotic items + // hipnotic items + if (hipnotic) + { + for (i=0 ; i<2 ; i++) + if (cl.items & (1<<(24+i))) + { + time = cl.item_gettime[24+i]; + if (time && time > cl.time - 2 && flashon ) + { // flash frame + sb_updates = 0; + } + else + { + Sbar_DrawPic (288 + i*16, -16, hsb_items[i]); + } + if (time && time > cl.time - 2) + sb_updates = 0; + } + } + + if (rogue) + { + // new rogue items + for (i=0 ; i<2 ; i++) + { + if (cl.items & (1<<(29+i))) + { + time = cl.item_gettime[29+i]; + + if (time && time > cl.time - 2 && flashon ) + { // flash frame + sb_updates = 0; + } + else + { + Sbar_DrawPic (288 + i*16, -16, rsb_items[i]); + } + + if (time && time > cl.time - 2) + sb_updates = 0; + } + } + } + else + { + // sigils + for (i=0 ; i<4 ; i++) + { + if (cl.items & (1<<(28+i))) + { + time = cl.item_gettime[28+i]; + if (time && time > cl.time - 2 && flashon ) + { // flash frame + sb_updates = 0; + } + else + Sbar_DrawPic (320-32 + i*8, -16, sb_sigil[i]); + if (time && time > cl.time - 2) + sb_updates = 0; + } + } + } +} + +//============================================================================= + +/* +=============== +Sbar_DrawFrags -- johnfitz -- heavy revision +=============== +*/ +void Sbar_DrawFrags (void) +{ + int numscores, i, x, color; + char num[12]; + scoreboard_t *s; + + Sbar_SortFrags (); + +// draw the text + numscores = min (scoreboardlines, 4); + + for (i=0, x=184; iname[0]) + continue; + + // top color + color = s->colors & 0xf0; + color = Sbar_ColorForMap (color); + Draw_Fill (x + 10, 1, 28, 4, color, 1); + + // bottom color + color = (s->colors & 15)<<4; + color = Sbar_ColorForMap (color); + Draw_Fill (x + 10, 5, 28, 3, color, 1); + + // number + sprintf (num, "%3i", s->frags); + Sbar_DrawCharacter (x + 12, -24, num[0]); + Sbar_DrawCharacter (x + 20, -24, num[1]); + Sbar_DrawCharacter (x + 28, -24, num[2]); + + // brackets + if (fragsort[i] == cl.viewentity - 1) + { + Sbar_DrawCharacter (x + 6, -24, 16); + Sbar_DrawCharacter (x + 32, -24, 17); + } + } +} + +//============================================================================= + + +/* +=============== +Sbar_DrawFace +=============== +*/ +void Sbar_DrawFace (void) +{ + int f, anim; + +// PGM 01/19/97 - team color drawing +// PGM 03/02/97 - fixed so color swatch only appears in CTF modes + if (rogue && (cl.maxclients != 1) && (teamplay.value>3) && (teamplay.value<7)) + { + int top, bottom; + int xofs; + char num[12]; + scoreboard_t *s; + + s = &cl.scores[cl.viewentity - 1]; + // draw background + top = s->colors & 0xf0; + bottom = (s->colors & 15)<<4; + top = Sbar_ColorForMap (top); + bottom = Sbar_ColorForMap (bottom); + + if (cl.gametype == GAME_DEATHMATCH) + xofs = 113; + else + xofs = ((vid.width - 320)>>1) + 113; + + Sbar_DrawPic (112, 0, rsb_teambord); + Draw_Fill (xofs, /*vid.height-*/24+3, 22, 9, top, 1); //johnfitz -- sbar coords are now relative + Draw_Fill (xofs, /*vid.height-*/24+12, 22, 9, bottom, 1); //johnfitz -- sbar coords are now relative + + // draw number + f = s->frags; + sprintf (num, "%3i",f); + + if (top==8) + { + if (num[0] != ' ') + Sbar_DrawCharacter(113, 3, 18 + num[0] - '0'); + if (num[1] != ' ') + Sbar_DrawCharacter(120, 3, 18 + num[1] - '0'); + if (num[2] != ' ') + Sbar_DrawCharacter(127, 3, 18 + num[2] - '0'); + } + else + { + Sbar_DrawCharacter ( 113, 3, num[0]); + Sbar_DrawCharacter ( 120, 3, num[1]); + Sbar_DrawCharacter ( 127, 3, num[2]); + } + + return; + } +// PGM 01/19/97 - team color drawing + + if ( (cl.items & (IT_INVISIBILITY | IT_INVULNERABILITY) ) + == (IT_INVISIBILITY | IT_INVULNERABILITY) ) + { + Sbar_DrawPic (112, 0, sb_face_invis_invuln); + return; + } + if (cl.items & IT_QUAD) + { + Sbar_DrawPic (112, 0, sb_face_quad ); + return; + } + if (cl.items & IT_INVISIBILITY) + { + Sbar_DrawPic (112, 0, sb_face_invis ); + return; + } + if (cl.items & IT_INVULNERABILITY) + { + Sbar_DrawPic (112, 0, sb_face_invuln); + return; + } + + if (cl.stats[STAT_HEALTH] >= 100) + f = 4; + else + f = cl.stats[STAT_HEALTH] / 20; + + if (cl.time <= cl.faceanimtime) + { + anim = 1; + sb_updates = 0; // make sure the anim gets drawn over + } + else + anim = 0; + Sbar_DrawPic (112, 0, sb_faces[f][anim]); +} + +/* +=============== +Sbar_Draw +=============== +*/ +void Sbar_Draw (void) +{ + float w; //johnfitz + + if (scr_con_current == vid.height) + return; // console is full screen + + if (cl.intermission) + return; //johnfitz -- never draw sbar during intermission + + if (sb_updates >= vid.numpages && !gl_clear.value && scr_sbaralpha.value >= 1 && !isIntelVideo) //johnfitz -- gl_clear, scr_sbaralpha, intel workarounds from baker + return; + + sb_updates++; + + GL_SetCanvas (CANVAS_DEFAULT); //johnfitz + + //johnfitz -- don't waste fillrate by clearing the area behind the sbar + w = CLAMP (320.0f, scr_sbarscale.value * 320.0f, (float)glwidth); + if (sb_lines && glwidth > w) + { + if (scr_sbaralpha.value < 1) + Draw_TileClear (0, glheight - sb_lines, glwidth, sb_lines); + if (cl.gametype == GAME_DEATHMATCH) + Draw_TileClear (w, glheight - sb_lines, glwidth - w, sb_lines); + else + { + Draw_TileClear (0, glheight - sb_lines, (glwidth - w) / 2.0f, sb_lines); + Draw_TileClear ((glwidth - w) / 2.0f + w, glheight - sb_lines, (glwidth - w) / 2.0f, sb_lines); + } + } + //johnfitz + + GL_SetCanvas (CANVAS_SBAR); //johnfitz + + if (scr_viewsize.value < 110) //johnfitz -- check viewsize instead of sb_lines + { + Sbar_DrawInventory (); + if (cl.maxclients != 1) + Sbar_DrawFrags (); + } + + if (sb_showscores || cl.stats[STAT_HEALTH] <= 0) + { + Sbar_DrawPicAlpha (0, 0, sb_scorebar, scr_sbaralpha.value); //johnfitz -- scr_sbaralpha + Sbar_DrawScoreboard (); + sb_updates = 0; + } + else if (scr_viewsize.value < 120) //johnfitz -- check viewsize instead of sb_lines + { + Sbar_DrawPicAlpha (0, 0, sb_sbar, scr_sbaralpha.value); //johnfitz -- scr_sbaralpha + + // keys (hipnotic only) + //MED 01/04/97 moved keys here so they would not be overwritten + if (hipnotic) + { + if (cl.items & IT_KEY1) + Sbar_DrawPic (209, 3, sb_items[0]); + if (cl.items & IT_KEY2) + Sbar_DrawPic (209, 12, sb_items[1]); + } + // armor + if (cl.items & IT_INVULNERABILITY) + { + Sbar_DrawNum (24, 0, 666, 3, 1); + Sbar_DrawPic (0, 0, draw_disc); + } + else + { + if (rogue) + { + Sbar_DrawNum (24, 0, cl.stats[STAT_ARMOR], 3, + cl.stats[STAT_ARMOR] <= 25); + if (cl.items & RIT_ARMOR3) + Sbar_DrawPic (0, 0, sb_armor[2]); + else if (cl.items & RIT_ARMOR2) + Sbar_DrawPic (0, 0, sb_armor[1]); + else if (cl.items & RIT_ARMOR1) + Sbar_DrawPic (0, 0, sb_armor[0]); + } + else + { + Sbar_DrawNum (24, 0, cl.stats[STAT_ARMOR], 3 + , cl.stats[STAT_ARMOR] <= 25); + if (cl.items & IT_ARMOR3) + Sbar_DrawPic (0, 0, sb_armor[2]); + else if (cl.items & IT_ARMOR2) + Sbar_DrawPic (0, 0, sb_armor[1]); + else if (cl.items & IT_ARMOR1) + Sbar_DrawPic (0, 0, sb_armor[0]); + } + } + + // face + Sbar_DrawFace (); + + // health + Sbar_DrawNum (136, 0, cl.stats[STAT_HEALTH], 3 + , cl.stats[STAT_HEALTH] <= 25); + + // ammo icon + if (rogue) + { + if (cl.items & RIT_SHELLS) + Sbar_DrawPic (224, 0, sb_ammo[0]); + else if (cl.items & RIT_NAILS) + Sbar_DrawPic (224, 0, sb_ammo[1]); + else if (cl.items & RIT_ROCKETS) + Sbar_DrawPic (224, 0, sb_ammo[2]); + else if (cl.items & RIT_CELLS) + Sbar_DrawPic (224, 0, sb_ammo[3]); + else if (cl.items & RIT_LAVA_NAILS) + Sbar_DrawPic (224, 0, rsb_ammo[0]); + else if (cl.items & RIT_PLASMA_AMMO) + Sbar_DrawPic (224, 0, rsb_ammo[1]); + else if (cl.items & RIT_MULTI_ROCKETS) + Sbar_DrawPic (224, 0, rsb_ammo[2]); + } + else + { + if (cl.items & IT_SHELLS) + Sbar_DrawPic (224, 0, sb_ammo[0]); + else if (cl.items & IT_NAILS) + Sbar_DrawPic (224, 0, sb_ammo[1]); + else if (cl.items & IT_ROCKETS) + Sbar_DrawPic (224, 0, sb_ammo[2]); + else if (cl.items & IT_CELLS) + Sbar_DrawPic (224, 0, sb_ammo[3]); + } + + Sbar_DrawNum (248, 0, cl.stats[STAT_AMMO], 3, + cl.stats[STAT_AMMO] <= 10); + } + + //johnfitz -- removed the vid.width > 320 check here + if (cl.gametype == GAME_DEATHMATCH) + Sbar_MiniDeathmatchOverlay (); +} + +//============================================================================= + +/* +================== +Sbar_IntermissionNumber + +================== +*/ +void Sbar_IntermissionNumber (int x, int y, int num, int digits, int color) +{ + char str[12]; + char *ptr; + int l, frame; + + l = Sbar_itoa (num, str); + ptr = str; + if (l > digits) + ptr += (l-digits); + if (l < digits) + x += (digits-l)*24; + + while (*ptr) + { + if (*ptr == '-') + frame = STAT_MINUS; + else + frame = *ptr -'0'; + + Draw_Pic (x,y,sb_nums[color][frame]); //johnfitz -- stretched menus + x += 24; + ptr++; + } +} + +/* +================== +Sbar_DeathmatchOverlay + +================== +*/ +void Sbar_DeathmatchOverlay (void) +{ + qpic_t *pic; + int i, k, l; + int top, bottom; + int x, y, f; + char num[12]; + scoreboard_t *s; + + GL_SetCanvas (CANVAS_MENU); //johnfitz + + pic = Draw_CachePic ("gfx/ranking.lmp"); + M_DrawPic ((320-pic->width)/2, 8, pic); + +// scores + Sbar_SortFrags (); + +// draw the text + l = scoreboardlines; + + x = 80; //johnfitz -- simplified becuase some positioning is handled elsewhere + y = 40; + for (i=0 ; iname[0]) + continue; + + // draw background + top = s->colors & 0xf0; + bottom = (s->colors & 15)<<4; + top = Sbar_ColorForMap (top); + bottom = Sbar_ColorForMap (bottom); + + Draw_Fill ( x, y, 40, 4, top, 1); //johnfitz -- stretched overlays + Draw_Fill ( x, y+4, 40, 4, bottom, 1); //johnfitz -- stretched overlays + + // draw number + f = s->frags; + sprintf (num, "%3i",f); + + Draw_Character ( x+8 , y, num[0]); //johnfitz -- stretched overlays + Draw_Character ( x+16 , y, num[1]); //johnfitz -- stretched overlays + Draw_Character ( x+24 , y, num[2]); //johnfitz -- stretched overlays + + if (k == cl.viewentity - 1) + Draw_Character ( x - 8, y, 12); //johnfitz -- stretched overlays + +#if 0 +{ + int total; + int n, minutes, tens, units; + + // draw time + total = cl.completed_time - s->entertime; + minutes = (int)total/60; + n = total - minutes*60; + tens = n/10; + units = n%10; + + sprintf (num, "%3i:%i%i", minutes, tens, units); + + M_Print ( x+48 , y, num); //johnfitz -- was Draw_String, changed for stretched overlays +} +#endif + + // draw name + M_Print (x+64, y, s->name); //johnfitz -- was Draw_String, changed for stretched overlays + + y += 10; + } + + GL_SetCanvas (CANVAS_SBAR); //johnfitz +} + +/* +================== +Sbar_MiniDeathmatchOverlay +================== +*/ +void Sbar_MiniDeathmatchOverlay (void) +{ + int i, k, l, top, bottom, x, y, f, numlines; + char num[12]; + float scale; //johnfitz + qpic_t *pic; + scoreboard_t *s; + + scale = CLAMP (1.0, scr_sbarscale.value, (float)glwidth / 320.0); //johnfitz + + //MAX_SCOREBOARDNAME = 32, so total width for this overlay plus sbar is 632, but we can cut off some i guess + if (glwidth/scale < 512 || scr_viewsize.value >= 120) //johnfitz -- test should consider scr_sbarscale + return; + +// scores + Sbar_SortFrags (); + +// draw the text + l = scoreboardlines; + numlines = (scr_viewsize.value >= 110) ? 3 : 6; //johnfitz + + //find us + for (i = 0; i < scoreboardlines; i++) + if (fragsort[i] == cl.viewentity - 1) + break; + if (i == scoreboardlines) // we're not there + i = 0; + else // figure out start + i = i - numlines/2; + if (i > scoreboardlines - numlines) + i = scoreboardlines - numlines; + if (i < 0) + i = 0; + + x = 324; + y = (scr_viewsize.value >= 110) ? 24 : 0; //johnfitz -- start at the right place + for ( ; i < scoreboardlines && y <= 48; i++, y+=8) //johnfitz -- change y init, test, inc + { + k = fragsort[i]; + s = &cl.scores[k]; + if (!s->name[0]) + continue; + + // colors + top = s->colors & 0xf0; + bottom = (s->colors & 15)<<4; + top = Sbar_ColorForMap (top); + bottom = Sbar_ColorForMap (bottom); + + Draw_Fill ( x, y+1, 40, 4, top, 1); + Draw_Fill ( x, y+5, 40, 3, bottom, 1); + + // number + f = s->frags; + sprintf (num, "%3i",f); + Draw_Character ( x+8 , y, num[0]); + Draw_Character ( x+16 , y, num[1]); + Draw_Character ( x+24 , y, num[2]); + + // brackets + if (k == cl.viewentity - 1) + { + Draw_Character ( x, y, 16); + Draw_Character ( x+32, y, 17); + } + + // name + Draw_String (x+48, y, s->name); + } +} + +/* +================== +Sbar_IntermissionOverlay +================== +*/ +void Sbar_IntermissionOverlay (void) +{ + qpic_t *pic; + int dig; + int num; + + if (cl.gametype == GAME_DEATHMATCH) + { + Sbar_DeathmatchOverlay (); + return; + } + + GL_SetCanvas (CANVAS_MENU); //johnfitz + + pic = Draw_CachePic ("gfx/complete.lmp"); + Draw_Pic (64, 24, pic); + + pic = Draw_CachePic ("gfx/inter.lmp"); + Draw_Pic (0, 56, pic); + + dig = cl.completed_time/60; + Sbar_IntermissionNumber (152, 64, dig, 3, 0); //johnfitz -- was 160 + num = cl.completed_time - dig*60; + Draw_Pic (224,64,sb_colon); //johnfitz -- was 234 + Draw_Pic (240,64,sb_nums[0][num/10]); //johnfitz -- was 246 + Draw_Pic (264,64,sb_nums[0][num%10]); //johnfitz -- was 266 + + Sbar_IntermissionNumber (152, 104, cl.stats[STAT_SECRETS], 3, 0); //johnfitz -- was 160 + Draw_Pic (224,104,sb_slash); //johnfitz -- was 232 + Sbar_IntermissionNumber (240, 104, cl.stats[STAT_TOTALSECRETS], 3, 0); //johnfitz -- was 248 + + Sbar_IntermissionNumber (152, 144, cl.stats[STAT_MONSTERS], 3, 0); //johnfitz -- was 160 + Draw_Pic (224,144,sb_slash); //johnfitz -- was 232 + Sbar_IntermissionNumber (240, 144, cl.stats[STAT_TOTALMONSTERS], 3, 0); //johnfitz -- was 248 +} + + +/* +================== +Sbar_FinaleOverlay +================== +*/ +void Sbar_FinaleOverlay (void) +{ + qpic_t *pic; + + GL_SetCanvas (CANVAS_MENU); //johnfitz + + pic = Draw_CachePic ("gfx/finale.lmp"); + Draw_Pic ( (320 - pic->width)/2, 16, pic); //johnfitz -- stretched menus +} diff --git a/quakespasm/Quake/sbar.h b/quakespasm/Quake/sbar.h new file mode 100644 index 00000000..819552fd --- /dev/null +++ b/quakespasm/Quake/sbar.h @@ -0,0 +1,38 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ + +// the status bar is only redrawn if something has changed, but if anything +// does, the entire thing will be redrawn for the next vid.numpages frames. + +extern int sb_lines; // scan lines to draw + +void Sbar_Init (void); + +void Sbar_Changed (void); +// call whenever any of the client stats represented on the sbar changes + +void Sbar_Draw (void); +// called every frame by screen + +void Sbar_IntermissionOverlay (void); +// called each frame after the level has been completed + +void Sbar_FinaleOverlay (void); diff --git a/quakespasm/Quake/screen.h b/quakespasm/Quake/screen.h new file mode 100644 index 00000000..e4c1872f --- /dev/null +++ b/quakespasm/Quake/screen.h @@ -0,0 +1,75 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// screen.h + +void SCR_Init (void); + +void SCR_UpdateScreen (void); + + +void SCR_SizeUp (void); +void SCR_SizeDown (void); +void SCR_BringDownConsole (void); +void SCR_CenterPrint (char *str); + +void SCR_BeginLoadingPlaque (void); +void SCR_EndLoadingPlaque (void); + +int SCR_ModalMessage (char *text, float timeout); //johnfitz -- added timeout + +extern float scr_con_current; +extern float scr_conlines; // lines of console to display + +extern int sb_lines; + +extern int clearnotify; // set to 0 whenever notify text is drawn +extern qboolean scr_disabled_for_loading; +extern qboolean scr_skipupdate; + +extern cvar_t scr_viewsize; + +extern cvar_t scr_sbaralpha; //johnfitz + +extern qboolean block_drawing; + +void SCR_UpdateWholeScreen (void); + +//johnfitz -- stuff for 2d drawing control +typedef enum { + CANVAS_NONE, + CANVAS_DEFAULT, + CANVAS_CONSOLE, + CANVAS_MENU, + CANVAS_SBAR, + CANVAS_WARPIMAGE, + CANVAS_CROSSHAIR, + CANVAS_BOTTOMLEFT, + CANVAS_BOTTOMRIGHT, + CANVAS_TOPRIGHT, +} canvastype; +extern cvar_t scr_menuscale; +extern cvar_t scr_sbarscale; +extern cvar_t scr_conwidth; +extern cvar_t scr_conscale; +extern cvar_t scr_crosshaircale; +//johnfitz + +extern int scr_tileclear_updates; //johnfitz diff --git a/quakespasm/Quake/server.h b/quakespasm/Quake/server.h new file mode 100644 index 00000000..143104b5 --- /dev/null +++ b/quakespasm/Quake/server.h @@ -0,0 +1,228 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// server.h + +typedef struct +{ + int maxclients; + int maxclientslimit; + struct client_s *clients; // [maxclients] + int serverflags; // episode completion information + qboolean changelevel_issued; // cleared when at SV_SpawnServer +} server_static_t; + +//============================================================================= + +typedef enum {ss_loading, ss_active} server_state_t; + +typedef struct +{ + qboolean active; // false if only a net client + + qboolean paused; + qboolean loadgame; // handle connections specially + + double time; + + int lastcheck; // used by PF_checkclient + double lastchecktime; + + char name[64]; // map name + char modelname[64]; // maps/.bsp, for model_precache[0] + struct model_s *worldmodel; + char *model_precache[MAX_MODELS]; // NULL terminated + struct model_s *models[MAX_MODELS]; + char *sound_precache[MAX_SOUNDS]; // NULL terminated + char *lightstyles[MAX_LIGHTSTYLES]; + int num_edicts; + int max_edicts; + edict_t *edicts; // can NOT be array indexed, because + // edict_t is variable sized, but can + // be used to reference the world ent + server_state_t state; // some actions are only valid during load + + sizebuf_t datagram; + byte datagram_buf[MAX_DATAGRAM]; + + sizebuf_t reliable_datagram; // copied to all clients at end of frame + byte reliable_datagram_buf[MAX_DATAGRAM]; + + sizebuf_t signon; + byte signon_buf[MAX_MSGLEN-2]; //johnfitz -- was 8192, now uses MAX_MSGLEN + + unsigned protocol; //johnfitz +} server_t; + + +#define NUM_PING_TIMES 16 +#define NUM_SPAWN_PARMS 16 + +typedef struct client_s +{ + qboolean active; // false = client is free + qboolean spawned; // false = don't send datagrams + qboolean dropasap; // has been told to go to another level + qboolean privileged; // can execute any host command + qboolean sendsignon; // only valid before spawned + + double last_message; // reliable messages must be sent + // periodically + + struct qsocket_s *netconnection; // communications handle + + usercmd_t cmd; // movement + vec3_t wishdir; // intended motion calced from cmd + + sizebuf_t message; // can be added to at any time, + // copied and clear once per frame + byte msgbuf[MAX_MSGLEN]; + edict_t *edict; // EDICT_NUM(clientnum+1) + char name[32]; // for printing to other people + int colors; + + float ping_times[NUM_PING_TIMES]; + int num_pings; // ping_times[num_pings%NUM_PING_TIMES] + +// spawn parms are carried from level to level + float spawn_parms[NUM_SPAWN_PARMS]; + +// client known data for deltas + int old_frags; +} client_t; + + +//============================================================================= + +// edict->movetype values +#define MOVETYPE_NONE 0 // never moves +#define MOVETYPE_ANGLENOCLIP 1 +#define MOVETYPE_ANGLECLIP 2 +#define MOVETYPE_WALK 3 // gravity +#define MOVETYPE_STEP 4 // gravity, special edge handling +#define MOVETYPE_FLY 5 +#define MOVETYPE_TOSS 6 // gravity +#define MOVETYPE_PUSH 7 // no clip to world, push and crush +#define MOVETYPE_NOCLIP 8 +#define MOVETYPE_FLYMISSILE 9 // extra size to monsters +#define MOVETYPE_BOUNCE 10 + +// edict->solid values +#define SOLID_NOT 0 // no interaction with other objects +#define SOLID_TRIGGER 1 // touch on edge, but not blocking +#define SOLID_BBOX 2 // touch on edge, block +#define SOLID_SLIDEBOX 3 // touch on edge, but not an onground +#define SOLID_BSP 4 // bsp clip, touch on edge, block + +// edict->deadflag values +#define DEAD_NO 0 +#define DEAD_DYING 1 +#define DEAD_DEAD 2 + +#define DAMAGE_NO 0 +#define DAMAGE_YES 1 +#define DAMAGE_AIM 2 + +// edict->flags +#define FL_FLY 1 +#define FL_SWIM 2 +//#define FL_GLIMPSE 4 +#define FL_CONVEYOR 4 +#define FL_CLIENT 8 +#define FL_INWATER 16 +#define FL_MONSTER 32 +#define FL_GODMODE 64 +#define FL_NOTARGET 128 +#define FL_ITEM 256 +#define FL_ONGROUND 512 +#define FL_PARTIALGROUND 1024 // not all corners are valid +#define FL_WATERJUMP 2048 // player jumping out of water +#define FL_JUMPRELEASED 4096 // for jump debouncing + +// entity effects + +#define EF_BRIGHTFIELD 1 +#define EF_MUZZLEFLASH 2 +#define EF_BRIGHTLIGHT 4 +#define EF_DIMLIGHT 8 + +#define SPAWNFLAG_NOT_EASY 256 +#define SPAWNFLAG_NOT_MEDIUM 512 +#define SPAWNFLAG_NOT_HARD 1024 +#define SPAWNFLAG_NOT_DEATHMATCH 2048 + +//============================================================================ + +extern cvar_t teamplay; +extern cvar_t skill; +extern cvar_t deathmatch; +extern cvar_t coop; +extern cvar_t fraglimit; +extern cvar_t timelimit; + +extern server_static_t svs; // persistant server info +extern server_t sv; // local server + +extern client_t *host_client; + +extern jmp_buf host_abortserver; + +extern double host_time; + +extern edict_t *sv_player; + +//=========================================================== + +void SV_Init (void); + +void SV_StartParticle (vec3_t org, vec3_t dir, int color, int count); +void SV_StartSound (edict_t *entity, int channel, char *sample, int volume, + float attenuation); + +void SV_DropClient (qboolean crash); + +void SV_SendClientMessages (void); +void SV_ClearDatagram (void); + +int SV_ModelIndex (char *name); + +void SV_SetIdealPitch (void); + +void SV_AddUpdates (void); + +void SV_ClientThink (void); +void SV_AddClientToServer (struct qsocket_s *ret); + +void SV_ClientPrintf (char *fmt, ...); +void SV_BroadcastPrintf (char *fmt, ...); + +void SV_Physics (void); + +qboolean SV_CheckBottom (edict_t *ent); +qboolean SV_movestep (edict_t *ent, vec3_t move, qboolean relink); + +void SV_WriteClientdataToMessage (edict_t *ent, sizebuf_t *msg); + +void SV_MoveToGoal (void); + +void SV_CheckForNewClients (void); +void SV_RunClients (void); +void SV_SaveSpawnparms (); +void SV_SpawnServer (char *server); diff --git a/quakespasm/Quake/snd_dma.c b/quakespasm/Quake/snd_dma.c new file mode 100644 index 00000000..072de83c --- /dev/null +++ b/quakespasm/Quake/snd_dma.c @@ -0,0 +1,967 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// snd_dma.c -- main control for any streaming sound output device + +#include "quakedef.h" + +void S_Play(void); +void S_PlayVol(void); +void S_SoundList(void); +void S_Update_(); +void S_StopAllSounds(qboolean clear); +void S_StopAllSoundsC(void); + +// ======================================================================= +// Internal sound data & structures +// ======================================================================= + +channel_t channels[MAX_CHANNELS]; +int total_channels; + +int snd_blocked = 0; +static qboolean snd_ambient = 1; +qboolean snd_initialized = false; + +// pointer should go away +volatile dma_t *shm = 0; +volatile dma_t sn; + +vec3_t listener_origin; +vec3_t listener_forward; +vec3_t listener_right; +vec3_t listener_up; +vec_t sound_nominal_clip_dist=1000.0; + +int soundtime; // sample PAIRS +int paintedtime; // sample PAIRS + + +#define MAX_SFX 512 +sfx_t *known_sfx; // hunk allocated [MAX_SFX] +int num_sfx; + +sfx_t *ambient_sfx[NUM_AMBIENTS]; + +int sound_started=0; + +cvar_t bgmvolume = {"bgmvolume", "1", true}; +cvar_t volume = {"volume", "0.7", true}; + +cvar_t nosound = {"nosound", "0"}; +cvar_t precache = {"precache", "1"}; +cvar_t loadas8bit = {"loadas8bit", "0"}; +cvar_t bgmbuffer = {"bgmbuffer", "4096"}; +cvar_t ambient_level = {"ambient_level", "0.3"}; +cvar_t ambient_fade = {"ambient_fade", "100"}; +cvar_t snd_noextraupdate = {"snd_noextraupdate", "0"}; +cvar_t snd_show = {"snd_show", "0"}; +cvar_t _snd_mixahead = {"_snd_mixahead", "0.1", true}; +cvar_t sndspeed = {"sndspeed", "11025"}; + + +// ==================================================================== +// User-setable variables +// ==================================================================== + + +// +// Fake dma is a synchronous faking of the DMA progress used for +// isolating performance in the renderer. The fakedma_updates is +// number of times S_Update() is called per second. +// + +qboolean fakedma = false; +int fakedma_updates = 15; + + +void S_AmbientOff (void) +{ + snd_ambient = false; +} + + +void S_AmbientOn (void) +{ + snd_ambient = true; +} + + +void S_SoundInfo_f(void) +{ + if (!sound_started || !shm) + { + Con_Printf ("sound system not started\n"); + return; + } + + Con_Printf("%5d stereo\n", shm->channels - 1); + Con_Printf("%5d samples\n", shm->samples); + Con_Printf("%5d samplepos\n", shm->samplepos); + Con_Printf("%5d samplebits\n", shm->samplebits); + Con_Printf("%5d submission_chunk\n", shm->submission_chunk); + Con_Printf("%5d speed\n", shm->speed); + Con_Printf("0x%x dma buffer\n", shm->buffer); + Con_Printf("%5d total_channels\n", total_channels); +} + + +/* +================ +S_Startup +================ +*/ + +void S_Startup (void) +{ + int rc; + + if (!snd_initialized) + return; + + if (!fakedma) + { + rc = SNDDMA_Init(); + + if (!rc) + { +#ifndef _WIN32 + Con_Printf("S_Startup: SNDDMA_Init failed.\n"); +#endif + sound_started = 0; + return; + } + } + + sound_started = 1; +} + + +/* +================ +S_Init +================ +*/ +void S_Init (void) +{ + if (COM_CheckParm("-nosound")) + return; + + //johnfitz -- clean up init readouts + Con_Printf("Sound Initialization\n"); + //Con_Printf("------------- Init Sound -------------\n"); + //Con_Printf("%cSound Init\n", 2); + //johnfitz + + if (COM_CheckParm("-simsound")) + fakedma = true; + + Cmd_AddCommand("play", S_Play); + Cmd_AddCommand("playvol", S_PlayVol); + Cmd_AddCommand("stopsound", S_StopAllSoundsC); + Cmd_AddCommand("soundlist", S_SoundList); + Cmd_AddCommand("soundinfo", S_SoundInfo_f); + + Cvar_RegisterVariable(&nosound, NULL); + Cvar_RegisterVariable(&volume, NULL); + Cvar_RegisterVariable(&precache, NULL); + Cvar_RegisterVariable(&loadas8bit, NULL); + Cvar_RegisterVariable(&bgmvolume, NULL); + Cvar_RegisterVariable(&bgmbuffer, NULL); + Cvar_RegisterVariable(&ambient_level, NULL); + Cvar_RegisterVariable(&ambient_fade, NULL); + Cvar_RegisterVariable(&snd_noextraupdate, NULL); + Cvar_RegisterVariable(&snd_show, NULL); + Cvar_RegisterVariable(&_snd_mixahead, NULL); + Cvar_RegisterVariable(&sndspeed, NULL); + + if (COM_CheckParm("-sndspeed")) + { + sndspeed.value = Q_atoi(com_argv[COM_CheckParm("-sndspeed")+1]); + } + + if (host_parms.memsize < 0x800000) + { + Cvar_Set ("loadas8bit", "1"); + Con_Printf ("loading all sounds as 8bit\n"); + } + + + + snd_initialized = true; + + S_Startup (); + + SND_InitScaletable (); + + known_sfx = Hunk_AllocName (MAX_SFX*sizeof(sfx_t), "sfx_t"); + num_sfx = 0; + +// create a piece of DMA memory + + if (fakedma) + { + shm = (void *) Hunk_AllocName(sizeof(*shm), "shm"); + shm->splitbuffer = 0; + shm->samplebits = 16; + shm->speed = 22050; + shm->channels = 2; + shm->samples = 32768; + shm->samplepos = 0; + shm->soundalive = true; + shm->gamealive = true; + shm->submission_chunk = 1; + shm->buffer = Hunk_AllocName(1<<16, "shmbuf"); + } + + Con_Printf ("Sound sampling rate: %i\n", shm->speed); + + // provides a tick sound until washed clean + +// if (shm->buffer) +// shm->buffer[4] = shm->buffer[5] = 0x7f; // force a pop for debugging + + ambient_sfx[AMBIENT_WATER] = S_PrecacheSound ("ambience/water1.wav"); + ambient_sfx[AMBIENT_SKY] = S_PrecacheSound ("ambience/wind2.wav"); + + S_StopAllSounds (true); +} + + +// ======================================================================= +// Shutdown sound engine +// ======================================================================= + +void S_Shutdown(void) +{ + + if (!sound_started) + return; + + if (shm) + shm->gamealive = 0; + + shm = 0; + sound_started = 0; + + if (!fakedma) + { + SNDDMA_Shutdown(); + } +} + + +// ======================================================================= +// Load a sound +// ======================================================================= + +/* +================== +S_FindName + +================== +*/ +sfx_t *S_FindName (char *name) +{ + int i; + sfx_t *sfx; + + if (!name) + Sys_Error ("S_FindName: NULL\n"); + + if (Q_strlen(name) >= MAX_QPATH) + Sys_Error ("Sound name too long: %s", name); + +// see if already loaded + for (i=0 ; i < num_sfx ; i++) + if (!Q_strcmp(known_sfx[i].name, name)) + { + return &known_sfx[i]; + } + + if (num_sfx == MAX_SFX) + Sys_Error ("S_FindName: out of sfx_t"); + + sfx = &known_sfx[i]; + strcpy (sfx->name, name); + + num_sfx++; + + return sfx; +} + + +/* +================== +S_TouchSound + +================== +*/ +void S_TouchSound (char *name) +{ + sfx_t *sfx; + + if (!sound_started) + return; + + sfx = S_FindName (name); + Cache_Check (&sfx->cache); +} + +/* +================== +S_PrecacheSound + +================== +*/ +sfx_t *S_PrecacheSound (char *name) +{ + sfx_t *sfx; + + if (!sound_started || nosound.value) + return NULL; + + sfx = S_FindName (name); + +// cache it in + if (precache.value) + S_LoadSound (sfx); + + return sfx; +} + + +//============================================================================= + +/* +================= +SND_PickChannel +================= +*/ +channel_t *SND_PickChannel(int entnum, int entchannel) +{ + int ch_idx; + int first_to_die; + int life_left; + +// Check for replacement sound, or find the best one to replace + first_to_die = -1; + life_left = 0x7fffffff; + for (ch_idx=NUM_AMBIENTS ; ch_idx < NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS ; ch_idx++) + { + if (entchannel != 0 // channel 0 never overrides + && channels[ch_idx].entnum == entnum + && (channels[ch_idx].entchannel == entchannel || entchannel == -1) ) + { // allways override sound from same entity + first_to_die = ch_idx; + break; + } + + // don't let monster sounds override player sounds + if (channels[ch_idx].entnum == cl.viewentity && entnum != cl.viewentity && channels[ch_idx].sfx) + continue; + + if (channels[ch_idx].end - paintedtime < life_left) + { + life_left = channels[ch_idx].end - paintedtime; + first_to_die = ch_idx; + } + } + + if (first_to_die == -1) + return NULL; + + if (channels[first_to_die].sfx) + channels[first_to_die].sfx = NULL; + + return &channels[first_to_die]; +} + +/* +================= +SND_Spatialize +================= +*/ +void SND_Spatialize(channel_t *ch) +{ + vec_t dot; + vec_t dist; + vec_t lscale, rscale, scale; + vec3_t source_vec; + sfx_t *snd; + /* unused -- kristian + vec_t ldist, rdist; + */ + +// anything coming from the view entity will allways be full volume + if (ch->entnum == cl.viewentity) + { + ch->leftvol = ch->master_vol; + ch->rightvol = ch->master_vol; + return; + } + +// calculate stereo seperation and distance attenuation + + snd = ch->sfx; + VectorSubtract(ch->origin, listener_origin, source_vec); + + dist = VectorNormalize(source_vec) * ch->dist_mult; + + dot = DotProduct(listener_right, source_vec); + + if (shm->channels == 1) + { + rscale = 1.0; + lscale = 1.0; + } + else + { + rscale = 1.0 + dot; + lscale = 1.0 - dot; + } + +// add in distance effect + scale = (1.0 - dist) * rscale; + ch->rightvol = (int) (ch->master_vol * scale); + if (ch->rightvol < 0) + ch->rightvol = 0; + + scale = (1.0 - dist) * lscale; + ch->leftvol = (int) (ch->master_vol * scale); + if (ch->leftvol < 0) + ch->leftvol = 0; +} + + +// ======================================================================= +// Start a sound effect +// ======================================================================= + +void S_StartSound(int entnum, int entchannel, sfx_t *sfx, vec3_t origin, float fvol, float attenuation) +{ + channel_t *target_chan, *check; + sfxcache_t *sc; + int vol; + int ch_idx; + int skip; + + if (!sound_started) + return; + + if (!sfx) + return; + + if (nosound.value) + return; + + vol = fvol*255; + +// pick a channel to play on + target_chan = SND_PickChannel(entnum, entchannel); + if (!target_chan) + return; + +// spatialize + memset (target_chan, 0, sizeof(*target_chan)); + VectorCopy(origin, target_chan->origin); + target_chan->dist_mult = attenuation / sound_nominal_clip_dist; + target_chan->master_vol = vol; + target_chan->entnum = entnum; + target_chan->entchannel = entchannel; + SND_Spatialize(target_chan); + + if (!target_chan->leftvol && !target_chan->rightvol) + return; // not audible at all + +// new channel + sc = S_LoadSound (sfx); + if (!sc) + { + target_chan->sfx = NULL; + return; // couldn't load the sound's data + } + + target_chan->sfx = sfx; + target_chan->pos = 0.0; + target_chan->end = paintedtime + sc->length; + +// if an identical sound has also been started this frame, offset the pos +// a bit to keep it from just making the first one louder + check = &channels[NUM_AMBIENTS]; + for (ch_idx=NUM_AMBIENTS ; ch_idx < NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS ; ch_idx++, check++) + { + if (check == target_chan) + continue; + if (check->sfx == sfx && !check->pos) + { + skip = rand () % (int)(0.1*shm->speed); + if (skip >= target_chan->end) + skip = target_chan->end - 1; + target_chan->pos += skip; + target_chan->end -= skip; + break; + } + + } +} + +void S_StopSound(int entnum, int entchannel) +{ + int i; + + for (i=0 ; ibuffer) + return; + + if (shm->samplebits == 8) + clear = 0x80; + else + clear = 0; + + Q_memset(shm->buffer, clear, shm->samples * shm->samplebits/8); +} + + +/* +================= +S_StaticSound +================= +*/ +void S_StaticSound (sfx_t *sfx, vec3_t origin, float vol, float attenuation) +{ + channel_t *ss; + sfxcache_t *sc; + + if (!sfx) + return; + + if (total_channels == MAX_CHANNELS) + { + Con_Printf ("total_channels == MAX_CHANNELS\n"); + return; + } + + ss = &channels[total_channels]; + total_channels++; + + sc = S_LoadSound (sfx); + if (!sc) + return; + + if (sc->loopstart == -1) + { + Con_Printf ("Sound %s not looped\n", sfx->name); + return; + } + + ss->sfx = sfx; + VectorCopy (origin, ss->origin); + ss->master_vol = vol; + ss->dist_mult = (attenuation/64) / sound_nominal_clip_dist; + ss->end = paintedtime + sc->length; + + SND_Spatialize (ss); +} + + +//============================================================================= + +/* +=================== +S_UpdateAmbientSounds +=================== +*/ +void S_UpdateAmbientSounds (void) +{ + mleaf_t *l; + float vol; + int ambient_channel; + channel_t *chan; + + if (!snd_ambient) + return; + + //johnfitz -- no ambients when disconnected + if (cls.state != ca_connected) + return; + //johnfitz + +// calc ambient sound levels + if (!cl.worldmodel) + return; + + l = Mod_PointInLeaf (listener_origin, cl.worldmodel); + if (!l || !ambient_level.value) + { + for (ambient_channel = 0 ; ambient_channel< NUM_AMBIENTS ; ambient_channel++) + channels[ambient_channel].sfx = NULL; + return; + } + + for (ambient_channel = 0 ; ambient_channel< NUM_AMBIENTS ; ambient_channel++) + { + chan = &channels[ambient_channel]; + chan->sfx = ambient_sfx[ambient_channel]; + + vol = ambient_level.value * l->ambient_sound_level[ambient_channel]; + if (vol < 8) + vol = 0; + + // don't adjust volume too fast + if (chan->master_vol < vol) + { + chan->master_vol += host_frametime * ambient_fade.value; + if (chan->master_vol > vol) + chan->master_vol = vol; + } + else if (chan->master_vol > vol) + { + chan->master_vol -= host_frametime * ambient_fade.value; + if (chan->master_vol < vol) + chan->master_vol = vol; + } + + chan->leftvol = chan->rightvol = chan->master_vol; + } +} + + +/* +============ +S_Update + +Called once each time through the main loop +============ +*/ +void S_Update(vec3_t origin, vec3_t forward, vec3_t right, vec3_t up) +{ + int i, j; + int total; + channel_t *ch; + channel_t *combine; + + if (!sound_started || (snd_blocked > 0)) + return; + + VectorCopy(origin, listener_origin); + VectorCopy(forward, listener_forward); + VectorCopy(right, listener_right); + VectorCopy(up, listener_up); + +// update general area ambient sound sources + S_UpdateAmbientSounds (); + + combine = NULL; + +// update spatialization for static and dynamic sounds + ch = channels+NUM_AMBIENTS; + for (i=NUM_AMBIENTS ; isfx) + continue; + SND_Spatialize(ch); // respatialize channel + if (!ch->leftvol && !ch->rightvol) + continue; + + // try to combine static sounds with a previous channel of the same + // sound effect so we don't mix five torches every frame + + if (i >= MAX_DYNAMIC_CHANNELS + NUM_AMBIENTS) + { + // see if it can just use the last one + if (combine && combine->sfx == ch->sfx) + { + combine->leftvol += ch->leftvol; + combine->rightvol += ch->rightvol; + ch->leftvol = ch->rightvol = 0; + continue; + } + // search for one + combine = channels+MAX_DYNAMIC_CHANNELS + NUM_AMBIENTS; + for (j=MAX_DYNAMIC_CHANNELS + NUM_AMBIENTS ; jsfx == ch->sfx) + break; + + if (j == total_channels) + { + combine = NULL; + } + else + { + if (combine != ch) + { + combine->leftvol += ch->leftvol; + combine->rightvol += ch->rightvol; + ch->leftvol = ch->rightvol = 0; + } + continue; + } + } + + + } + +// +// debugging output +// + if (snd_show.value) + { + total = 0; + ch = channels; + for (i=0 ; isfx && (ch->leftvol || ch->rightvol) ) + { + //Con_Printf ("%3i %3i %s\n", ch->leftvol, ch->rightvol, ch->sfx->name); + total++; + } + + Con_Printf ("----(%i)----\n", total); + } + +// mix some sound + S_Update_(); +} + +void GetSoundtime(void) +{ + int samplepos; + static int buffers; + static int oldsamplepos; + int fullsamples; + + fullsamples = shm->samples / shm->channels; + +// it is possible to miscount buffers if it has wrapped twice between +// calls to S_Update. Oh well. +#ifdef __sun__ + soundtime = SNDDMA_GetSamples(); +#else + samplepos = SNDDMA_GetDMAPos(); + + + if (samplepos < oldsamplepos) + { + buffers++; // buffer wrapped + + if (paintedtime > 0x40000000) + { // time to chop things off to avoid 32 bit limits + buffers = 0; + paintedtime = fullsamples; + S_StopAllSounds (true); + } + } + oldsamplepos = samplepos; + + soundtime = buffers*fullsamples + samplepos/shm->channels; +#endif +} + +void S_ExtraUpdate (void) +{ + + if (snd_noextraupdate.value) + return; // don't pollute timings + S_Update_(); +} + +void S_Update_(void) +{ + unsigned endtime; + int samps; + + if (!sound_started || (snd_blocked > 0)) + return; + +// Updates DMA time + GetSoundtime(); + +// check to make sure that we haven't overshot + if (paintedtime < soundtime) + { + //Con_Printf ("S_Update_ : overflow\n"); + paintedtime = soundtime; + } + +// mix ahead of current position + endtime = soundtime + _snd_mixahead.value * shm->speed; + samps = shm->samples >> (shm->channels-1); + if (endtime - soundtime > samps) + endtime = soundtime + samps; + + S_PaintChannels (endtime); + +// SNDDMA_Submit (); +} + +/* +=============================================================================== + +console functions + +=============================================================================== +*/ + +void S_Play(void) +{ + static int hash=345; + int i; + char name[256]; + sfx_t *sfx; + + i = 1; + while (icache); + if (!sc) + continue; + size = sc->length*sc->width*(sc->stereo+1); + total += size; + if (sc->loopstart >= 0) + Con_SafePrintf ("L"); //johnfitz -- was Con_Printf + else + Con_SafePrintf (" "); //johnfitz -- was Con_Printf + Con_SafePrintf("(%2db) %6i : %s\n",sc->width*8, size, sfx->name); //johnfitz -- was Con_Printf + } + Con_Printf ("%i sounds, %i bytes\n", num_sfx, total); //johnfitz -- added count +} + + +void S_LocalSound (char *sound) +{ + sfx_t *sfx; + + if (nosound.value) + return; + if (!sound_started) + return; + + sfx = S_PrecacheSound (sound); + if (!sfx) + { + Con_Printf ("S_LocalSound: can't cache %s\n", sound); + return; + } + S_StartSound (cl.viewentity, -1, sfx, vec3_origin, 1, 1); +} + + +void S_ClearPrecache (void) +{ +} + + +void S_BeginPrecaching (void) +{ +} + + +void S_EndPrecaching (void) +{ +} + diff --git a/quakespasm/Quake/snd_mem.c b/quakespasm/Quake/snd_mem.c new file mode 100644 index 00000000..098ac5ab --- /dev/null +++ b/quakespasm/Quake/snd_mem.c @@ -0,0 +1,341 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// snd_mem.c: sound caching + +#include "quakedef.h" + +int cache_full_cycle; + +byte *S_Alloc (int size); + +/* +================ +ResampleSfx +================ +*/ +void ResampleSfx (sfx_t *sfx, int inrate, int inwidth, byte *data) +{ + int outcount; + int srcsample; + float stepscale; + int i; + int sample, samplefrac, fracstep; + sfxcache_t *sc; + + sc = Cache_Check (&sfx->cache); + if (!sc) + return; + + stepscale = (float)inrate / shm->speed; // this is usually 0.5, 1, or 2 + + outcount = sc->length / stepscale; + sc->length = outcount; + if (sc->loopstart != -1) + sc->loopstart = sc->loopstart / stepscale; + + sc->speed = shm->speed; + if (loadas8bit.value) + sc->width = 1; + else + sc->width = inwidth; + sc->stereo = 0; + +// resample / decimate to the current source rate + + if (stepscale == 1 && inwidth == 1 && sc->width == 1) + { +// fast special case + for (i=0 ; idata)[i] + = (int)( (unsigned char)(data[i]) - 128); + } + else + { +// general case + samplefrac = 0; + fracstep = stepscale*256; + for (i=0 ; i> 8; + samplefrac += fracstep; + if (inwidth == 2) + sample = LittleShort ( ((short *)data)[srcsample] ); + else + sample = (int)( (unsigned char)(data[srcsample]) - 128) << 8; + if (sc->width == 2) + ((short *)sc->data)[i] = sample; + else + ((signed char *)sc->data)[i] = sample >> 8; + } + } +} + +//============================================================================= + +/* +============== +S_LoadSound +============== +*/ +sfxcache_t *S_LoadSound (sfx_t *s) +{ + char namebuffer[256]; + byte *data; + wavinfo_t info; + int len; + float stepscale; + sfxcache_t *sc; + byte stackbuf[1*1024]; // avoid dirtying the cache heap + +// see if still in memory + sc = Cache_Check (&s->cache); + if (sc) + return sc; + +//Con_Printf ("S_LoadSound: %x\n", (int)stackbuf); +// load it in + Q_strcpy(namebuffer, "sound/"); + Q_strcat(namebuffer, s->name); + +// Con_Printf ("loading %s\n",namebuffer); + + data = COM_LoadStackFile(namebuffer, stackbuf, sizeof(stackbuf)); + + if (!data) + { + Con_Printf ("Couldn't load %s\n", namebuffer); + return NULL; + } + + info = GetWavinfo (s->name, data, com_filesize); + if (info.channels != 1) + { + Con_Printf ("%s is a stereo sample\n",s->name); + return NULL; + } + + stepscale = (float)info.rate / shm->speed; + len = info.samples / stepscale; + + len = len * info.width * info.channels; + + sc = Cache_Alloc ( &s->cache, len + sizeof(sfxcache_t), s->name); + if (!sc) + return NULL; + + sc->length = info.samples; + sc->loopstart = info.loopstart; + sc->speed = info.rate; + sc->width = info.width; + sc->stereo = info.channels; + + ResampleSfx (s, sc->speed, sc->width, data + info.dataofs); + + return sc; +} + + + +/* +=============================================================================== + +WAV loading + +=============================================================================== +*/ + + +byte *data_p; +byte *iff_end; +byte *last_chunk; +byte *iff_data; +int iff_chunk_len; + + +short GetLittleShort(void) +{ + short val = 0; + val = *data_p; + val = val + (*(data_p+1)<<8); + data_p += 2; + return val; +} + +int GetLittleLong(void) +{ + int val = 0; + val = *data_p; + val = val + (*(data_p+1)<<8); + val = val + (*(data_p+2)<<16); + val = val + (*(data_p+3)<<24); + data_p += 4; + return val; +} + +void FindNextChunk(char *name) +{ + while (1) + { + data_p=last_chunk; + + if (data_p >= iff_end) + { // didn't find the chunk + data_p = NULL; + return; + } + + data_p += 4; + iff_chunk_len = GetLittleLong(); + if (iff_chunk_len < 0) + { + data_p = NULL; + return; + } +// if (iff_chunk_len > 1024*1024) +// Sys_Error ("FindNextChunk: %i length is past the 1 meg sanity limit", iff_chunk_len); + data_p -= 8; + last_chunk = data_p + 8 + ( (iff_chunk_len + 1) & ~1 ); + if (!Q_strncmp(data_p, name, 4)) + return; + } +} + +void FindChunk(char *name) +{ + last_chunk = iff_data; + FindNextChunk (name); +} + + +void DumpChunks(void) +{ + char str[5]; + + str[4] = 0; + data_p=iff_data; + do + { + memcpy (str, data_p, 4); + data_p += 4; + iff_chunk_len = GetLittleLong(); + Con_Printf ("0x%x : %s (%d)\n", (int)(data_p - 4), str, iff_chunk_len); + data_p += (iff_chunk_len + 1) & ~1; + } while (data_p < iff_end); +} + +/* +============ +GetWavinfo +============ +*/ +wavinfo_t GetWavinfo (char *name, byte *wav, int wavlength) +{ + wavinfo_t info; + int i; + int format; + int samples; + + memset (&info, 0, sizeof(info)); + + if (!wav) + return info; + + iff_data = wav; + iff_end = wav + wavlength; + +// find "RIFF" chunk + FindChunk("RIFF"); + if (!(data_p && !Q_strncmp(data_p+8, "WAVE", 4))) + { + Con_Printf("Missing RIFF/WAVE chunks\n"); + return info; + } + +// get "fmt " chunk + iff_data = data_p + 12; +// DumpChunks (); + + FindChunk("fmt "); + if (!data_p) + { + Con_Printf("Missing fmt chunk\n"); + return info; + } + data_p += 8; + format = GetLittleShort(); + if (format != 1) + { + Con_Printf("Microsoft PCM format only\n"); + return info; + } + + info.channels = GetLittleShort(); + info.rate = GetLittleLong(); + data_p += 4+2; + info.width = GetLittleShort() / 8; + +// get cue chunk + FindChunk("cue "); + if (data_p) + { + data_p += 32; + info.loopstart = GetLittleLong(); + + // if the next chunk is a LIST chunk, look for a cue length marker + FindNextChunk ("LIST"); + if (data_p) + { + if (!strncmp (data_p + 28, "mark", 4)) + { // this is not a proper parse, but it works with cooledit... + data_p += 24; + i = GetLittleLong (); // samples in loop + info.samples = info.loopstart + i; +// Con_Printf("looped length: %i\n", i); + } + } + } + else + info.loopstart = -1; + +// find data chunk + FindChunk("data"); + if (!data_p) + { + Con_Printf("Missing data chunk\n"); + return info; + } + + data_p += 4; + samples = GetLittleLong () / info.width; + + if (info.samples) + { + if (samples < info.samples) + Sys_Error ("Sound %s has a bad loop length", name); + } + else + info.samples = samples; + + info.dataofs = data_p - wav; + + return info; +} + diff --git a/quakespasm/Quake/snd_mix.c b/quakespasm/Quake/snd_mix.c new file mode 100644 index 00000000..2e4c0c85 --- /dev/null +++ b/quakespasm/Quake/snd_mix.c @@ -0,0 +1,295 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// snd_mix.c -- portable code to mix sounds for snd_dma.c + +#include "quakedef.h" + +#define DWORD unsigned long + +#define PAINTBUFFER_SIZE 512 +portable_samplepair_t paintbuffer[PAINTBUFFER_SIZE]; +int snd_scaletable[32][256]; +int *snd_p, snd_linear_count, snd_vol; +short *snd_out; + +void Snd_WriteLinearBlastStereo16 (void); + +void Snd_WriteLinearBlastStereo16 (void) +{ + int i; + int val; + + for (i=0 ; i>8; + if (val > 0x7fff) + snd_out[i] = 0x7fff; + else if (val < (short)0x8000) + snd_out[i] = (short)0x8000; + else + snd_out[i] = val; + + val = (snd_p[i+1]*snd_vol)>>8; + if (val > 0x7fff) + snd_out[i+1] = 0x7fff; + else if (val < (short)0x8000) + snd_out[i+1] = (short)0x8000; + else + snd_out[i+1] = val; + } +} + +void S_TransferStereo16 (int endtime) +{ + int lpos; + int lpaintedtime; + DWORD *pbuf; + + snd_vol = volume.value*256; + + snd_p = (int *) paintbuffer; + lpaintedtime = paintedtime; + pbuf = (DWORD *)shm->buffer; + + while (lpaintedtime < endtime) + { + // handle recirculating buffer issues + lpos = lpaintedtime & ((shm->samples>>1)-1); + + snd_out = (short *) pbuf + (lpos<<1); + + snd_linear_count = (shm->samples>>1) - lpos; + if (lpaintedtime + snd_linear_count > endtime) + snd_linear_count = endtime - lpaintedtime; + + snd_linear_count <<= 1; + + // write a linear blast of samples + Snd_WriteLinearBlastStereo16 (); + + snd_p += snd_linear_count; + lpaintedtime += (snd_linear_count>>1); + } +} + +void S_TransferPaintBuffer(int endtime) +{ + int out_idx; + int count; + int out_mask; + int *p; + int step; + int val; + int snd_vol; + DWORD *pbuf; + + if (shm->samplebits == 16 && shm->channels == 2) + { + S_TransferStereo16 (endtime); + return; + } + + p = (int *) paintbuffer; + count = (endtime - paintedtime) * shm->channels; + out_mask = shm->samples - 1; + out_idx = paintedtime * shm->channels & out_mask; + step = 3 - shm->channels; + snd_vol = volume.value*256; + pbuf = (DWORD *)shm->buffer; + + if (shm->samplebits == 16) + { + short *out = (short *) pbuf; + while (count--) + { + val = (*p * snd_vol) >> 8; + p+= step; + if (val > 0x7fff) + val = 0x7fff; + else if (val < (short)0x8000) + val = (short)0x8000; + out[out_idx] = val; + out_idx = (out_idx + 1) & out_mask; + } + } + else if (shm->samplebits == 8) + { + unsigned char *out = (unsigned char *) pbuf; + while (count--) + { + val = (*p * snd_vol) >> 8; + p+= step; + if (val > 0x7fff) + val = 0x7fff; + else if (val < (short)0x8000) + val = (short)0x8000; + out[out_idx] = (val>>8) + 128; + out_idx = (out_idx + 1) & out_mask; + } + } +} + + +/* +=============================================================================== + +CHANNEL MIXING + +=============================================================================== +*/ + +void SND_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int endtime); +void SND_PaintChannelFrom16 (channel_t *ch, sfxcache_t *sc, int endtime); + +void S_PaintChannels(int endtime) +{ + int i; + int end; + channel_t *ch; + sfxcache_t *sc; + int ltime, count; + + while (paintedtime < endtime) + { + // if paintbuffer is smaller than DMA buffer + end = endtime; + if (endtime - paintedtime > PAINTBUFFER_SIZE) + end = paintedtime + PAINTBUFFER_SIZE; + + // clear the paint buffer + Q_memset(paintbuffer, 0, (end - paintedtime) * sizeof(portable_samplepair_t)); + + // paint in the channels. + ch = channels; + for (i=0; isfx) + continue; + if (!ch->leftvol && !ch->rightvol) + continue; + sc = S_LoadSound (ch->sfx); + if (!sc) + continue; + + ltime = paintedtime; + + while (ltime < end) + { // paint up to end + if (ch->end < end) + count = ch->end - ltime; + else + count = end - ltime; + + if (count > 0) + { + if (sc->width == 1) + SND_PaintChannelFrom8(ch, sc, count); + else + SND_PaintChannelFrom16(ch, sc, count); + + ltime += count; + } + + // if at end of loop, restart + if (ltime >= ch->end) + { + if (sc->loopstart >= 0) + { + ch->pos = sc->loopstart; + ch->end = ltime + sc->length - ch->pos; + } + else + { // channel just stopped + ch->sfx = NULL; + break; + } + } + } + + } + + // transfer out according to DMA format + S_TransferPaintBuffer(end); + paintedtime = end; + } +} + +void SND_InitScaletable (void) +{ + int i, j; + + for (i=0 ; i<32 ; i++) + for (j=0 ; j<256 ; j++) + snd_scaletable[i][j] = ((signed char)j) * i * 8; +} + + +void SND_PaintChannelFrom8 (channel_t *ch, sfxcache_t *sc, int count) +{ + int data; + int *lscale, *rscale; + unsigned char *sfx; + int i; + + if (ch->leftvol > 255) + ch->leftvol = 255; + if (ch->rightvol > 255) + ch->rightvol = 255; + + lscale = snd_scaletable[ch->leftvol >> 3]; + rscale = snd_scaletable[ch->rightvol >> 3]; + sfx = (signed char *)sc->data + ch->pos; + + for (i=0 ; ipos += count; +} + +void SND_PaintChannelFrom16 (channel_t *ch, sfxcache_t *sc, int count) +{ + int data; + int left, right; + int leftvol, rightvol; + signed short *sfx; + int i; + + leftvol = ch->leftvol; + rightvol = ch->rightvol; + sfx = (signed short *)sc->data + ch->pos; + + for (i=0 ; i> 8; + right = (data * rightvol) >> 8; + paintbuffer[i].left += left; + paintbuffer[i].right += right; + } + + ch->pos += count; +} + diff --git a/quakespasm/Quake/snd_sdl.c b/quakespasm/Quake/snd_sdl.c new file mode 100644 index 00000000..619cf876 --- /dev/null +++ b/quakespasm/Quake/snd_sdl.c @@ -0,0 +1,125 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ + +// stolen from http://www.libsdl.org/projects/quake/ -- apologies, I don't know the author's name + +#include +#include "quakedef.h" + +static dma_t the_shm; +static int snd_inited; + +#define BUF_SIZE 512 + +static void paint_audio(void *unused, Uint8 *stream, int len) +{ + if ( shm ) { + shm->buffer = stream; + shm->samplepos += len/(shm->samplebits/8)/2; + // Check for samplepos overflow? + S_PaintChannels (shm->samplepos); + } +} + +qboolean SNDDMA_Init(void) +{ + SDL_AudioSpec desired, obtained; + + snd_inited = 0; + + /* Set up the desired format */ + desired.freq = sndspeed.value; + if (loadas8bit.value) { + desired.format = AUDIO_U8; + } else { + if (SDL_BYTEORDER == SDL_BIG_ENDIAN) + desired.format = AUDIO_S16MSB; + else + desired.format = AUDIO_S16LSB; + } + desired.channels = 2; + desired.samples = BUF_SIZE; + desired.callback = paint_audio; + + /* Open the audio device */ + if ( SDL_OpenAudio(&desired, &obtained) < 0 ) { + Con_Printf("Couldn't open SDL audio: %s\n", SDL_GetError()); + return 0; + } + + /* Make sure we can support the audio format */ + switch (obtained.format) { + case AUDIO_U8: + /* Supported */ + break; + case AUDIO_S16LSB: + case AUDIO_S16MSB: + if ( ((obtained.format == AUDIO_S16LSB) && + (SDL_BYTEORDER == SDL_LIL_ENDIAN)) || + ((obtained.format == AUDIO_S16MSB) && + (SDL_BYTEORDER == SDL_BIG_ENDIAN)) ) { + /* Supported */ + break; + } + /* Unsupported, fall through */; + default: + /* Not supported -- force SDL to do our bidding */ + SDL_CloseAudio(); + if ( SDL_OpenAudio(&desired, NULL) < 0 ) { + Con_Printf("Couldn't open SDL audio: %s\n", + SDL_GetError()); + return 0; + } + memcpy(&obtained, &desired, sizeof(desired)); + break; + } + SDL_PauseAudio(0); + + /* Fill the audio DMA information block */ + shm = &the_shm; + shm->splitbuffer = 0; + shm->samplebits = (obtained.format & 0xFF); + shm->speed = obtained.freq; + shm->channels = obtained.channels; + shm->samples = obtained.samples*shm->channels; + shm->samplepos = 0; + shm->submission_chunk = 1; + shm->buffer = NULL; + + snd_inited = 1; + return 1; +} + +int SNDDMA_GetDMAPos(void) +{ + return shm->samplepos; +} + +void SNDDMA_Shutdown(void) +{ + if (snd_inited) + { + SDL_CloseAudio(); + snd_inited = 0; + } +} + diff --git a/quakespasm/Quake/sound.h b/quakespasm/Quake/sound.h new file mode 100644 index 00000000..964162e7 --- /dev/null +++ b/quakespasm/Quake/sound.h @@ -0,0 +1,180 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 -- client sound i/o functions + +#ifndef __SOUND__ +#define __SOUND__ + +#define DEFAULT_SOUND_PACKET_VOLUME 255 +#define DEFAULT_SOUND_PACKET_ATTENUATION 1.0 + +// !!! if this is changed, it much be changed in asm_i386.h too !!! +typedef struct +{ + int left; + int right; +} portable_samplepair_t; + +typedef struct sfx_s +{ + char name[MAX_QPATH]; + cache_user_t cache; +} sfx_t; + +// !!! if this is changed, it much be changed in asm_i386.h too !!! +typedef struct +{ + int length; + int loopstart; + int speed; + int width; + int stereo; + byte data[1]; // variable sized +} sfxcache_t; + +typedef struct +{ + qboolean gamealive; + qboolean soundalive; + qboolean splitbuffer; + int channels; + int samples; // mono samples in buffer + int submission_chunk; // don't mix less than this # + int samplepos; // in mono samples + int samplebits; + int speed; + unsigned char *buffer; +} dma_t; + +// !!! if this is changed, it much be changed in asm_i386.h too !!! +typedef struct +{ + sfx_t *sfx; // sfx number + int leftvol; // 0-255 volume + int rightvol; // 0-255 volume + int end; // end time in global paintsamples + int pos; // sample position in sfx + int looping; // where to loop, -1 = no looping + int entnum; // to allow overriding a specific sound + int entchannel; // + vec3_t origin; // origin of sound effect + vec_t dist_mult; // distance multiplier (attenuation/clipK) + int master_vol; // 0-255 master volume +} channel_t; + +typedef struct +{ + int rate; + int width; + int channels; + int loopstart; + int samples; + int dataofs; // chunk starts this many bytes from file start +} wavinfo_t; + +void S_Init (void); +void S_Startup (void); +void S_Shutdown (void); +void S_StartSound (int entnum, int entchannel, sfx_t *sfx, vec3_t origin, float fvol, float attenuation); +void S_StaticSound (sfx_t *sfx, vec3_t origin, float vol, float attenuation); +void S_StopSound (int entnum, int entchannel); +void S_StopAllSounds(qboolean clear); +void S_ClearBuffer (void); +void S_Update (vec3_t origin, vec3_t v_forward, vec3_t v_right, vec3_t v_up); +void S_ExtraUpdate (void); + +sfx_t *S_PrecacheSound (char *sample); +void S_TouchSound (char *sample); +void S_ClearPrecache (void); +void S_BeginPrecaching (void); +void S_EndPrecaching (void); +void S_PaintChannels(int endtime); +void S_InitPaintChannels (void); + +// picks a channel based on priorities, empty slots, number of channels +channel_t *SND_PickChannel(int entnum, int entchannel); + +// spatializes a channel +void SND_Spatialize(channel_t *ch); + +// initializes cycling through a DMA buffer and returns information on it +qboolean SNDDMA_Init(void); + +// gets the current DMA position +int SNDDMA_GetDMAPos(void); + +// shutdown the DMA xfer. +void SNDDMA_Shutdown(void); + +// ==================================================================== +// User-setable variables +// ==================================================================== + +#define MAX_CHANNELS 512 //johnfitz -- was 128 +#define MAX_DYNAMIC_CHANNELS 128 //johnfitz -- was 8 + + +extern channel_t channels[MAX_CHANNELS]; +// 0 to MAX_DYNAMIC_CHANNELS-1 = normal entity sounds +// MAX_DYNAMIC_CHANNELS to MAX_DYNAMIC_CHANNELS + NUM_AMBIENTS -1 = water, etc +// MAX_DYNAMIC_CHANNELS + NUM_AMBIENTS to total_channels = static sounds + +extern int total_channels; + +// +// Fake dma is a synchronous faking of the DMA progress used for +// isolating performance in the renderer. The fakedma_updates is +// number of times S_Update() is called per second. +// + +extern qboolean fakedma; +extern int fakedma_updates; +extern int paintedtime; +extern vec3_t listener_origin; +extern vec3_t listener_forward; +extern vec3_t listener_right; +extern vec3_t listener_up; +extern volatile dma_t *shm; +extern volatile dma_t sn; +extern vec_t sound_nominal_clip_dist; + +extern cvar_t loadas8bit; +extern cvar_t bgmvolume; +extern cvar_t volume; +extern cvar_t sndspeed; + +extern qboolean snd_initialized; + +extern int snd_blocked; + +void S_LocalSound (char *s); +sfxcache_t *S_LoadSound (sfx_t *s); + +wavinfo_t GetWavinfo (char *name, byte *wav, int wavlength); + +void SND_InitScaletable (void); +void SNDDMA_Submit(void); + +void S_AmbientOff (void); +void S_AmbientOn (void); + +#endif diff --git a/quakespasm/Quake/spritegn.h b/quakespasm/Quake/spritegn.h new file mode 100644 index 00000000..b5bb9651 --- /dev/null +++ b/quakespasm/Quake/spritegn.h @@ -0,0 +1,111 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// +// spritegn.h: header file for sprite generation program +// + +// ********************************************************** +// * This file must be identical in the spritegen directory * +// * and in the Quake directory, because it's used to * +// * pass data from one to the other via .spr files. * +// ********************************************************** + +//------------------------------------------------------- +// This program generates .spr sprite package files. +// The format of the files is as follows: +// +// dsprite_t file header structure +// +// +// dspriteframe_t frame header structure +// sprite bitmap +// +// dspriteframe_t frame header structure +// sprite bitmap +// +//------------------------------------------------------- + +#ifdef INCLUDELIBS + +#include +#include +#include +#include + +#include "cmdlib.h" +#include "scriplib.h" +#include "dictlib.h" +#include "trilib.h" +#include "lbmlib.h" +#include "mathlib.h" + +#endif + +#define SPRITE_VERSION 1 + +// must match definition in modelgen.h +#ifndef SYNCTYPE_T +#define SYNCTYPE_T +typedef enum {ST_SYNC=0, ST_RAND } synctype_t; +#endif + +// TODO: shorten these? +typedef struct { + int ident; + int version; + int type; + float boundingradius; + int width; + int height; + int numframes; + float beamlength; + synctype_t synctype; +} dsprite_t; + +#define SPR_VP_PARALLEL_UPRIGHT 0 +#define SPR_FACING_UPRIGHT 1 +#define SPR_VP_PARALLEL 2 +#define SPR_ORIENTED 3 +#define SPR_VP_PARALLEL_ORIENTED 4 + +typedef struct { + int origin[2]; + int width; + int height; +} dspriteframe_t; + +typedef struct { + int numframes; +} dspritegroup_t; + +typedef struct { + float interval; +} dspriteinterval_t; + +typedef enum { SPR_SINGLE=0, SPR_GROUP } spriteframetype_t; + +typedef struct { + spriteframetype_t type; +} dspriteframetype_t; + +#define IDSPRITEHEADER (('P'<<24)+('S'<<16)+('D'<<8)+'I') + // little-endian "IDSP" + diff --git a/quakespasm/Quake/sv_main.c b/quakespasm/Quake/sv_main.c new file mode 100644 index 00000000..5b9adf95 --- /dev/null +++ b/quakespasm/Quake/sv_main.c @@ -0,0 +1,1424 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// sv_main.c -- server main program + +#include "quakedef.h" + +server_t sv; +server_static_t svs; + +char localmodels[MAX_MODELS][5]; // inline model names for precache + +int sv_protocol = PROTOCOL_FITZQUAKE; //johnfitz + +extern qboolean pr_alpha_supported; //johnfitz + +//============================================================================ + +/* +=============== +SV_Protocol_f +=============== +*/ +void SV_Protocol_f (void) +{ + int i; + + switch (Cmd_Argc()) + { + case 1: + Con_Printf ("\"sv_protocol\" is \"%i\"\n", sv_protocol); + break; + case 2: + i = atoi(Cmd_Argv(1)); + if (i != PROTOCOL_NETQUAKE && i != PROTOCOL_FITZQUAKE) + Con_Printf ("sv_protocol must be %i or %i\n", PROTOCOL_NETQUAKE, PROTOCOL_FITZQUAKE); + else + { + sv_protocol = i; + if (sv.active) + Con_Printf ("changes will not take effect until the next level load.\n"); + } + break; + default: + Con_SafePrintf ("usage: sv_protocol \n"); + break; + } +} +/* +=============== +SV_Init +=============== +*/ +void SV_Init (void) +{ + int i; + extern cvar_t sv_maxvelocity; + extern cvar_t sv_gravity; + extern cvar_t sv_nostep; + extern cvar_t sv_friction; + extern cvar_t sv_edgefriction; + extern cvar_t sv_stopspeed; + extern cvar_t sv_maxspeed; + extern cvar_t sv_accelerate; + extern cvar_t sv_idealpitchscale; + extern cvar_t sv_aim; + extern cvar_t sv_altnoclip; //johnfitz + + Cvar_RegisterVariable (&sv_maxvelocity, NULL); + Cvar_RegisterVariable (&sv_gravity, NULL); + Cvar_RegisterVariable (&sv_friction, NULL); + Cvar_RegisterVariable (&sv_edgefriction, NULL); + Cvar_RegisterVariable (&sv_stopspeed, NULL); + Cvar_RegisterVariable (&sv_maxspeed, NULL); + Cvar_RegisterVariable (&sv_accelerate, NULL); + Cvar_RegisterVariable (&sv_idealpitchscale, NULL); + Cvar_RegisterVariable (&sv_aim, NULL); + Cvar_RegisterVariable (&sv_nostep, NULL); + Cvar_RegisterVariable (&sv_altnoclip, NULL); //johnfitz + + Cmd_AddCommand ("sv_protocol", &SV_Protocol_f); //johnfitz + + for (i=0 ; i MAX_DATAGRAM-16) + return; + MSG_WriteByte (&sv.datagram, svc_particle); + MSG_WriteCoord (&sv.datagram, org[0]); + MSG_WriteCoord (&sv.datagram, org[1]); + MSG_WriteCoord (&sv.datagram, org[2]); + for (i=0 ; i<3 ; i++) + { + v = dir[i]*16; + if (v > 127) + v = 127; + else if (v < -128) + v = -128; + MSG_WriteChar (&sv.datagram, v); + } + MSG_WriteByte (&sv.datagram, count); + MSG_WriteByte (&sv.datagram, color); +} + +/* +================== +SV_StartSound + +Each entity can have eight independant sound sources, like voice, +weapon, feet, etc. + +Channel 0 is an auto-allocate channel, the others override anything +allready running on that entity/channel pair. + +An attenuation of 0 will play full volume everywhere in the level. +Larger attenuations will drop off. (max 4 attenuation) + +================== +*/ +void SV_StartSound (edict_t *entity, int channel, char *sample, int volume, + float attenuation) +{ + int sound_num; + int field_mask; + int i; + int ent; + + if (volume < 0 || volume > 255) + Sys_Error ("SV_StartSound: volume = %i", volume); + + if (attenuation < 0 || attenuation > 4) + Sys_Error ("SV_StartSound: attenuation = %f", attenuation); + + if (channel < 0 || channel > 7) + Sys_Error ("SV_StartSound: channel = %i", channel); + + if (sv.datagram.cursize > MAX_DATAGRAM-16) + return; + +// find precache number for sound + for (sound_num=1 ; sound_num= 8192) + if (sv.protocol == PROTOCOL_NETQUAKE) + return; //don't send any info protocol can't support + else + field_mask |= SND_LARGEENTITY; + if (sound_num >= 256 || channel >= 8) + if (sv.protocol == PROTOCOL_NETQUAKE) + return; //don't send any info protocol can't support + else + field_mask |= SND_LARGESOUND; + //johnfitz + +// directed messages go only to the entity the are targeted on + MSG_WriteByte (&sv.datagram, svc_sound); + MSG_WriteByte (&sv.datagram, field_mask); + if (field_mask & SND_VOLUME) + MSG_WriteByte (&sv.datagram, volume); + if (field_mask & SND_ATTENUATION) + MSG_WriteByte (&sv.datagram, attenuation*64); + + //johnfitz -- PROTOCOL_FITZQUAKE + if (field_mask & SND_LARGEENTITY) + { + MSG_WriteShort (&sv.datagram, ent); + MSG_WriteByte (&sv.datagram, channel); + } + else + MSG_WriteShort (&sv.datagram, (ent<<3) | channel); + if (field_mask & SND_LARGESOUND) + MSG_WriteShort (&sv.datagram, sound_num); + else + MSG_WriteByte (&sv.datagram, sound_num); + //johnfitz + + for (i=0 ; i<3 ; i++) + MSG_WriteCoord (&sv.datagram, entity->v.origin[i]+0.5*(entity->v.mins[i]+entity->v.maxs[i])); +} + +/* +============================================================================== + +CLIENT SPAWNING + +============================================================================== +*/ + +/* +================ +SV_SendServerinfo + +Sends the first message from the server to a connected client. +This will be sent on the initial connection and upon each server load. +================ +*/ +void SV_SendServerinfo (client_t *client) +{ + char **s; + char message[2048]; + int i; //johnfitz + + MSG_WriteByte (&client->message, svc_print); + sprintf (message, "%c\nFITZQUAKE %1.2f SERVER (%i CRC)\n", 2, FITZQUAKE_VERSION, pr_crc); //johnfitz -- include fitzquake version + MSG_WriteString (&client->message,message); + + MSG_WriteByte (&client->message, svc_serverinfo); + MSG_WriteLong (&client->message, sv.protocol); //johnfitz -- sv.protocol instead of PROTOCOL_VERSION + MSG_WriteByte (&client->message, svs.maxclients); + + if (!coop.value && deathmatch.value) + MSG_WriteByte (&client->message, GAME_DEATHMATCH); + else + MSG_WriteByte (&client->message, GAME_COOP); + + sprintf (message, pr_strings+sv.edicts->v.message); + + MSG_WriteString (&client->message,message); + + //johnfitz -- only send the first 256 model and sound precaches if protocol is 15 + for (i=0,s = sv.model_precache+1 ; *s; s++,i++) + if (sv.protocol != PROTOCOL_NETQUAKE || i < 256) + MSG_WriteString (&client->message, *s); + MSG_WriteByte (&client->message, 0); + + for (i=0,s = sv.sound_precache+1 ; *s ; s++,i++) + if (sv.protocol != PROTOCOL_NETQUAKE || i < 256) + MSG_WriteString (&client->message, *s); + MSG_WriteByte (&client->message, 0); + //johnfitz + +// send music + MSG_WriteByte (&client->message, svc_cdtrack); + MSG_WriteByte (&client->message, sv.edicts->v.sounds); + MSG_WriteByte (&client->message, sv.edicts->v.sounds); + +// set view + MSG_WriteByte (&client->message, svc_setview); + MSG_WriteShort (&client->message, NUM_FOR_EDICT(client->edict)); + + MSG_WriteByte (&client->message, svc_signonnum); + MSG_WriteByte (&client->message, 1); + + client->sendsignon = true; + client->spawned = false; // need prespawn, spawn, etc +} + +/* +================ +SV_ConnectClient + +Initializes a client_t for a new net connection. This will only be called +once for a player each game, not once for each level change. +================ +*/ +void SV_ConnectClient (int clientnum) +{ + edict_t *ent; + client_t *client; + int edictnum; + struct qsocket_s *netconnection; + int i; + float spawn_parms[NUM_SPAWN_PARMS]; + + client = svs.clients + clientnum; + + Con_DPrintf ("Client %s connected\n", client->netconnection->address); + + edictnum = clientnum+1; + + ent = EDICT_NUM(edictnum); + +// set up the client_t + netconnection = client->netconnection; + + if (sv.loadgame) + memcpy (spawn_parms, client->spawn_parms, sizeof(spawn_parms)); + memset (client, 0, sizeof(*client)); + client->netconnection = netconnection; + + strcpy (client->name, "unconnected"); + client->active = true; + client->spawned = false; + client->edict = ent; + client->message.data = client->msgbuf; + client->message.maxsize = sizeof(client->msgbuf); + client->message.allowoverflow = true; // we can catch it + client->privileged = false; + + if (sv.loadgame) + memcpy (client->spawn_parms, spawn_parms, sizeof(spawn_parms)); + else + { + // call the progs to get default spawn parms for the new client + PR_ExecuteProgram (pr_global_struct->SetNewParms); + for (i=0 ; ispawn_parms[i] = (&pr_global_struct->parm1)[i]; + } + + SV_SendServerinfo (client); +} + + +/* +=================== +SV_CheckForNewClients + +=================== +*/ +void SV_CheckForNewClients (void) +{ + struct qsocket_s *ret; + int i; + +// +// check for new connections +// + while (1) + { + ret = NET_CheckNewConnections (); + if (!ret) + break; + + // + // init a new client structure + // + for (i=0 ; icontents < 0) + { + if (node->contents != CONTENTS_SOLID) + { + pvs = Mod_LeafPVS ( (mleaf_t *)node, worldmodel); //johnfitz -- worldmodel as a parameter + for (i=0 ; iplane; + d = DotProduct (org, plane->normal) - plane->dist; + if (d > 8) + node = node->children[0]; + else if (d < -8) + node = node->children[1]; + else + { // go down both + SV_AddToFatPVS (org, node->children[0], worldmodel); //johnfitz -- worldmodel as a parameter + node = node->children[1]; + } + } +} + +/* +============= +SV_FatPVS + +Calculates a PVS that is the inclusive or of all leafs within 8 pixels of the +given point. +============= +*/ +byte *SV_FatPVS (vec3_t org, model_t *worldmodel) //johnfitz -- added worldmodel as a parameter +{ + fatbytes = (worldmodel->numleafs+31)>>3; + Q_memset (fatpvs, 0, fatbytes); + SV_AddToFatPVS (org, worldmodel->nodes, worldmodel); //johnfitz -- worldmodel as a parameter + return fatpvs; +} + +/* +============= +SV_VisibleToClient -- johnfitz + +PVS test encapsulated in a nice function +============= +*/ +qboolean SV_VisibleToClient (edict_t *client, edict_t *test, model_t *worldmodel) +{ + byte *pvs; + vec3_t org; + int i; + + VectorAdd (client->v.origin, client->v.view_ofs, org); + pvs = SV_FatPVS (org, worldmodel); + + for (i=0 ; i < test->num_leafs ; i++) + if (pvs[test->leafnums[i] >> 3] & (1 << (test->leafnums[i]&7) )) + return true; + + return false; +} + +//============================================================================= + +/* +============= +SV_WriteEntitiesToClient + +============= +*/ +void SV_WriteEntitiesToClient (edict_t *clent, sizebuf_t *msg) +{ + int e, i; + int bits; + byte *pvs; + vec3_t org; + float miss; + edict_t *ent; + +// find the client's PVS + VectorAdd (clent->v.origin, clent->v.view_ofs, org); + pvs = SV_FatPVS (org, sv.worldmodel); + +// send over all entities (excpet the client) that touch the pvs + ent = NEXT_EDICT(sv.edicts); + for (e=1 ; ev.modelindex || !pr_strings[ent->v.model]) + continue; + + //johnfitz -- don't send model>255 entities if protocol is 15 + if (sv_protocol == PROTOCOL_NETQUAKE && (int)ent->v.modelindex & 0xFF00) + continue; + + // ignore if not touching a PV leaf + for (i=0 ; i < ent->num_leafs ; i++) + if (pvs[ent->leafnums[i] >> 3] & (1 << (ent->leafnums[i]&7) )) + break; + if (i == ent->num_leafs) + continue; // not visible + } + + //johnfitz -- max size for protocol 15 is 18 bytes, not 16 as originally + //assumed here. And, for protocol 85 the max size is actually 24 bytes. + if (msg->cursize + 24 > msg->maxsize) + { + //johnfitz -- less spammy overflow message + if (!dev_overflows.packetsize || dev_overflows.packetsize + CONSOLE_RESPAM_TIME < realtime ) + { + Con_Printf ("Packet overflow!\n"); + dev_overflows.packetsize = realtime; + } + goto stats; + //johnfitz + } + +// send an update + bits = 0; + + for (i=0 ; i<3 ; i++) + { + miss = ent->v.origin[i] - ent->baseline.origin[i]; + if ( miss < -0.1 || miss > 0.1 ) + bits |= U_ORIGIN1<v.angles[0] != ent->baseline.angles[0] ) + bits |= U_ANGLE1; + + if ( ent->v.angles[1] != ent->baseline.angles[1] ) + bits |= U_ANGLE2; + + if ( ent->v.angles[2] != ent->baseline.angles[2] ) + bits |= U_ANGLE3; + + if (ent->v.movetype == MOVETYPE_STEP) + bits |= U_STEP; // don't mess up the step animation + + if (ent->baseline.colormap != ent->v.colormap) + bits |= U_COLORMAP; + + if (ent->baseline.skin != ent->v.skin) + bits |= U_SKIN; + + if (ent->baseline.frame != ent->v.frame) + bits |= U_FRAME; + + if (ent->baseline.effects != ent->v.effects) + bits |= U_EFFECTS; + + if (ent->baseline.modelindex != ent->v.modelindex) + bits |= U_MODEL; + + //johnfitz -- alpha + if (pr_alpha_supported) + { + // TODO: find a cleaner place to put this code + eval_t *val; + val = GetEdictFieldValue(ent, "alpha"); + if (val) + ent->alpha = ENTALPHA_ENCODE(val->_float); + } + + //don't send invisible entities unless they have effects + if (ent->alpha == ENTALPHA_ZERO && !ent->v.effects) + continue; + //johnfitz + + //johnfitz -- PROTOCOL_FITZQUAKE + if (sv.protocol != PROTOCOL_NETQUAKE) + { + + if (ent->baseline.alpha != ent->alpha) bits |= U_ALPHA; + if (bits & U_FRAME && (int)ent->v.frame & 0xFF00) bits |= U_FRAME2; + if (bits & U_MODEL && (int)ent->v.modelindex & 0xFF00) bits |= U_MODEL2; + if (ent->sendinterval) bits |= U_LERPFINISH; + if (bits >= 65536) bits |= U_EXTEND1; + if (bits >= 16777216) bits |= U_EXTEND2; + } + //johnfitz + + if (e >= 256) + bits |= U_LONGENTITY; + + if (bits >= 256) + bits |= U_MOREBITS; + + // + // write the message + // + MSG_WriteByte (msg, bits | U_SIGNAL); + + if (bits & U_MOREBITS) + MSG_WriteByte (msg, bits>>8); + + //johnfitz -- PROTOCOL_FITZQUAKE + if (bits & U_EXTEND1) + MSG_WriteByte(msg, bits>>16); + if (bits & U_EXTEND2) + MSG_WriteByte(msg, bits>>24); + //johnfitz + + if (bits & U_LONGENTITY) + MSG_WriteShort (msg,e); + else + MSG_WriteByte (msg,e); + + if (bits & U_MODEL) + MSG_WriteByte (msg, ent->v.modelindex); + if (bits & U_FRAME) + MSG_WriteByte (msg, ent->v.frame); + if (bits & U_COLORMAP) + MSG_WriteByte (msg, ent->v.colormap); + if (bits & U_SKIN) + MSG_WriteByte (msg, ent->v.skin); + if (bits & U_EFFECTS) + MSG_WriteByte (msg, ent->v.effects); + if (bits & U_ORIGIN1) + MSG_WriteCoord (msg, ent->v.origin[0]); + if (bits & U_ANGLE1) + MSG_WriteAngle(msg, ent->v.angles[0]); + if (bits & U_ORIGIN2) + MSG_WriteCoord (msg, ent->v.origin[1]); + if (bits & U_ANGLE2) + MSG_WriteAngle(msg, ent->v.angles[1]); + if (bits & U_ORIGIN3) + MSG_WriteCoord (msg, ent->v.origin[2]); + if (bits & U_ANGLE3) + MSG_WriteAngle(msg, ent->v.angles[2]); + + //johnfitz -- PROTOCOL_FITZQUAKE + if (bits & U_ALPHA) + MSG_WriteByte(msg, ent->alpha); + if (bits & U_FRAME2) + MSG_WriteByte(msg, (int)ent->v.frame >> 8); + if (bits & U_MODEL2) + MSG_WriteByte(msg, (int)ent->v.modelindex >> 8); + if (bits & U_LERPFINISH) + MSG_WriteByte(msg, (byte)(Q_rint((ent->v.nextthink-sv.time)*255))); + //johnfitz + } + + //johnfitz -- devstats +stats: + if (msg->cursize > 1024 && dev_peakstats.packetsize <= 1024) + Con_Warning ("%i byte packet exceeds standard limit of 1024.\n", msg->cursize); + dev_stats.packetsize = msg->cursize; + dev_peakstats.packetsize = max(msg->cursize, dev_peakstats.packetsize); + //johnfitz +} + +/* +============= +SV_CleanupEnts + +============= +*/ +void SV_CleanupEnts (void) +{ + int e; + edict_t *ent; + + ent = NEXT_EDICT(sv.edicts); + for (e=1 ; ev.effects = (int)ent->v.effects & ~EF_MUZZLEFLASH; + } + +} + +/* +================== +SV_WriteClientdataToMessage + +================== +*/ +void SV_WriteClientdataToMessage (edict_t *ent, sizebuf_t *msg) +{ + int bits; + int i; + edict_t *other; + int items; + eval_t *val; + +// +// send a damage message +// + if (ent->v.dmg_take || ent->v.dmg_save) + { + other = PROG_TO_EDICT(ent->v.dmg_inflictor); + MSG_WriteByte (msg, svc_damage); + MSG_WriteByte (msg, ent->v.dmg_save); + MSG_WriteByte (msg, ent->v.dmg_take); + for (i=0 ; i<3 ; i++) + MSG_WriteCoord (msg, other->v.origin[i] + 0.5*(other->v.mins[i] + other->v.maxs[i])); + + ent->v.dmg_take = 0; + ent->v.dmg_save = 0; + } + +// +// send the current viewpos offset from the view entity +// + SV_SetIdealPitch (); // how much to look up / down ideally + +// a fixangle might get lost in a dropped packet. Oh well. + if ( ent->v.fixangle ) + { + MSG_WriteByte (msg, svc_setangle); + for (i=0 ; i < 3 ; i++) + MSG_WriteAngle (msg, ent->v.angles[i] ); + ent->v.fixangle = 0; + } + + bits = 0; + + if (ent->v.view_ofs[2] != DEFAULT_VIEWHEIGHT) + bits |= SU_VIEWHEIGHT; + + if (ent->v.idealpitch) + bits |= SU_IDEALPITCH; + +// stuff the sigil bits into the high bits of items for sbar, or else +// mix in items2 + val = GetEdictFieldValue(ent, "items2"); + + if (val) + items = (int)ent->v.items | ((int)val->_float << 23); + else + items = (int)ent->v.items | ((int)pr_global_struct->serverflags << 28); + + bits |= SU_ITEMS; + + if ( (int)ent->v.flags & FL_ONGROUND) + bits |= SU_ONGROUND; + + if ( ent->v.waterlevel >= 2) + bits |= SU_INWATER; + + for (i=0 ; i<3 ; i++) + { + if (ent->v.punchangle[i]) + bits |= (SU_PUNCH1<v.velocity[i]) + bits |= (SU_VELOCITY1<v.weaponframe) + bits |= SU_WEAPONFRAME; + + if (ent->v.armorvalue) + bits |= SU_ARMOR; + +// if (ent->v.weapon) + bits |= SU_WEAPON; + + //johnfitz -- PROTOCOL_FITZQUAKE + if (sv.protocol != PROTOCOL_NETQUAKE) + { + if (bits & SU_WEAPON && SV_ModelIndex(pr_strings+ent->v.weaponmodel) & 0xFF00) bits |= SU_WEAPON2; + if ((int)ent->v.armorvalue & 0xFF00) bits |= SU_ARMOR2; + if ((int)ent->v.currentammo & 0xFF00) bits |= SU_AMMO2; + if ((int)ent->v.ammo_shells & 0xFF00) bits |= SU_SHELLS2; + if ((int)ent->v.ammo_nails & 0xFF00) bits |= SU_NAILS2; + if ((int)ent->v.ammo_rockets & 0xFF00) bits |= SU_ROCKETS2; + if ((int)ent->v.ammo_cells & 0xFF00) bits |= SU_CELLS2; + if (bits & SU_WEAPONFRAME && (int)ent->v.weaponframe & 0xFF00) bits |= SU_WEAPONFRAME2; + if (bits & SU_WEAPON && ent->alpha != ENTALPHA_DEFAULT) bits |= SU_WEAPONALPHA; //for now, weaponalpha = client entity alpha + if (bits >= 65536) bits |= SU_EXTEND1; + if (bits >= 16777216) bits |= SU_EXTEND2; + } + //johnfitz + +// send the data + + MSG_WriteByte (msg, svc_clientdata); + MSG_WriteShort (msg, bits); + + //johnfitz -- PROTOCOL_FITZQUAKE + if (bits & SU_EXTEND1) MSG_WriteByte(msg, bits>>16); + if (bits & SU_EXTEND2) MSG_WriteByte(msg, bits>>24); + //johnfitz + + if (bits & SU_VIEWHEIGHT) + MSG_WriteChar (msg, ent->v.view_ofs[2]); + + if (bits & SU_IDEALPITCH) + MSG_WriteChar (msg, ent->v.idealpitch); + + for (i=0 ; i<3 ; i++) + { + if (bits & (SU_PUNCH1<v.punchangle[i]); + if (bits & (SU_VELOCITY1<v.velocity[i]/16); + } + +// [always sent] if (bits & SU_ITEMS) + MSG_WriteLong (msg, items); + + if (bits & SU_WEAPONFRAME) + MSG_WriteByte (msg, ent->v.weaponframe); + if (bits & SU_ARMOR) + MSG_WriteByte (msg, ent->v.armorvalue); + if (bits & SU_WEAPON) + MSG_WriteByte (msg, SV_ModelIndex(pr_strings+ent->v.weaponmodel)); + + MSG_WriteShort (msg, ent->v.health); + MSG_WriteByte (msg, ent->v.currentammo); + MSG_WriteByte (msg, ent->v.ammo_shells); + MSG_WriteByte (msg, ent->v.ammo_nails); + MSG_WriteByte (msg, ent->v.ammo_rockets); + MSG_WriteByte (msg, ent->v.ammo_cells); + + if (standard_quake) + { + MSG_WriteByte (msg, ent->v.weapon); + } + else + { + for(i=0;i<32;i++) + { + if ( ((int)ent->v.weapon) & (1<v.weaponmodel) >> 8); + if (bits & SU_ARMOR2) + MSG_WriteByte (msg, (int)ent->v.armorvalue >> 8); + if (bits & SU_AMMO2) + MSG_WriteByte (msg, (int)ent->v.currentammo >> 8); + if (bits & SU_SHELLS2) + MSG_WriteByte (msg, (int)ent->v.ammo_shells >> 8); + if (bits & SU_NAILS2) + MSG_WriteByte (msg, (int)ent->v.ammo_nails >> 8); + if (bits & SU_ROCKETS2) + MSG_WriteByte (msg, (int)ent->v.ammo_rockets >> 8); + if (bits & SU_CELLS2) + MSG_WriteByte (msg, (int)ent->v.ammo_cells >> 8); + if (bits & SU_WEAPONFRAME2) + MSG_WriteByte (msg, (int)ent->v.weaponframe >> 8); + if (bits & SU_WEAPONALPHA) + MSG_WriteByte (msg, ent->alpha); //for now, weaponalpha = client entity alpha + //johnfitz +} + +/* +======================= +SV_SendClientDatagram +======================= +*/ +qboolean SV_SendClientDatagram (client_t *client) +{ + byte buf[MAX_DATAGRAM]; + sizebuf_t msg; + + msg.data = buf; + msg.maxsize = sizeof(buf); + msg.cursize = 0; + + //johnfitz -- if client is nonlocal, use smaller max size so packets aren't fragmented + if (Q_strcmp (client->netconnection->address, "LOCAL") != 0) + msg.maxsize = DATAGRAM_MTU; + //johnfitz + + MSG_WriteByte (&msg, svc_time); + MSG_WriteFloat (&msg, sv.time); + +// add the client specific data to the datagram + SV_WriteClientdataToMessage (client->edict, &msg); + + SV_WriteEntitiesToClient (client->edict, &msg); + +// copy the server datagram if there is space + if (msg.cursize + sv.datagram.cursize < msg.maxsize) + SZ_Write (&msg, sv.datagram.data, sv.datagram.cursize); + +// send the datagram + if (NET_SendUnreliableMessage (client->netconnection, &msg) == -1) + { + SV_DropClient (true);// if the message couldn't send, kick off + return false; + } + + return true; +} + +/* +======================= +SV_UpdateToReliableMessages +======================= +*/ +void SV_UpdateToReliableMessages (void) +{ + int i, j; + client_t *client; + +// check for changes to be sent over the reliable streams + for (i=0, host_client = svs.clients ; iold_frags != host_client->edict->v.frags) + { + for (j=0, client = svs.clients ; jactive) + continue; + MSG_WriteByte (&client->message, svc_updatefrags); + MSG_WriteByte (&client->message, i); + MSG_WriteShort (&client->message, host_client->edict->v.frags); + } + + host_client->old_frags = host_client->edict->v.frags; + } + } + + for (j=0, client = svs.clients ; jactive) + continue; + SZ_Write (&client->message, sv.reliable_datagram.data, sv.reliable_datagram.cursize); + } + + SZ_Clear (&sv.reliable_datagram); +} + + +/* +======================= +SV_SendNop + +Send a nop message without trashing or sending the accumulated client +message buffer +======================= +*/ +void SV_SendNop (client_t *client) +{ + sizebuf_t msg; + byte buf[4]; + + msg.data = buf; + msg.maxsize = sizeof(buf); + msg.cursize = 0; + + MSG_WriteChar (&msg, svc_nop); + + if (NET_SendUnreliableMessage (client->netconnection, &msg) == -1) + SV_DropClient (true); // if the message couldn't send, kick off + client->last_message = realtime; +} + +/* +======================= +SV_SendClientMessages +======================= +*/ +void SV_SendClientMessages (void) +{ + int i; + +// update frags, names, etc + SV_UpdateToReliableMessages (); + +// build individual updates + for (i=0, host_client = svs.clients ; iactive) + continue; + + if (host_client->spawned) + { + if (!SV_SendClientDatagram (host_client)) + continue; + } + else + { + // the player isn't totally in the game yet + // send small keepalive messages if too much time has passed + // send a full message when the next signon stage has been requested + // some other message data (name changes, etc) may accumulate + // between signon stages + if (!host_client->sendsignon) + { + if (realtime - host_client->last_message > 5) + SV_SendNop (host_client); + continue; // don't send out non-signon messages + } + } + + // check for an overflowed message. Should only happen + // on a very fucked up connection that backs up a lot, then + // changes level + if (host_client->message.overflowed) + { + SV_DropClient (true); + host_client->message.overflowed = false; + continue; + } + + if (host_client->message.cursize || host_client->dropasap) + { + if (!NET_CanSendMessage (host_client->netconnection)) + { +// I_Printf ("can't write\n"); + continue; + } + + if (host_client->dropasap) + SV_DropClient (false); // went to another level + else + { + if (NET_SendMessage (host_client->netconnection + , &host_client->message) == -1) + SV_DropClient (true); // if the message couldn't send, kick off + SZ_Clear (&host_client->message); + host_client->last_message = realtime; + host_client->sendsignon = false; + } + } + } + + +// clear muzzle flashes + SV_CleanupEnts (); +} + + +/* +============================================================================== + +SERVER SPAWNING + +============================================================================== +*/ + +/* +================ +SV_ModelIndex + +================ +*/ +int SV_ModelIndex (char *name) +{ + int i; + + if (!name || !name[0]) + return 0; + + for (i=0 ; ifree) + continue; + if (entnum > svs.maxclients && !svent->v.modelindex) + continue; + + // + // create entity baseline + // + VectorCopy (svent->v.origin, svent->baseline.origin); + VectorCopy (svent->v.angles, svent->baseline.angles); + svent->baseline.frame = svent->v.frame; + svent->baseline.skin = svent->v.skin; + if (entnum > 0 && entnum <= svs.maxclients) + { + svent->baseline.colormap = entnum; + svent->baseline.modelindex = SV_ModelIndex("progs/player.mdl"); + svent->baseline.alpha = ENTALPHA_DEFAULT; //johnfitz -- alpha support + } + else + { + svent->baseline.colormap = 0; + svent->baseline.modelindex = SV_ModelIndex(pr_strings + svent->v.model); + svent->baseline.alpha = svent->alpha; //johnfitz -- alpha support + } + + //johnfitz -- PROTOCOL_FITZQUAKE + bits = 0; + if (sv.protocol == PROTOCOL_NETQUAKE) //still want to send baseline in PROTOCOL_NETQUAKE, so reset these values + { + if (svent->baseline.modelindex & 0xFF00) + svent->baseline.modelindex = 0; + if (svent->baseline.frame & 0xFF00) + svent->baseline.frame = 0; + svent->baseline.alpha = ENTALPHA_DEFAULT; + } + else //decide which extra data needs to be sent + { + if (svent->baseline.modelindex & 0xFF00) + bits |= B_LARGEMODEL; + if (svent->baseline.frame & 0xFF00) + bits |= B_LARGEFRAME; + if (svent->baseline.alpha != ENTALPHA_DEFAULT) + bits |= B_ALPHA; + } + //johnfitz + + // + // add to the message + // + //johnfitz -- PROTOCOL_FITZQUAKE + if (bits) + MSG_WriteByte (&sv.signon, svc_spawnbaseline2); + else + MSG_WriteByte (&sv.signon, svc_spawnbaseline); + //johnfitz + + MSG_WriteShort (&sv.signon,entnum); + + //johnfitz -- PROTOCOL_FITZQUAKE + if (bits) + MSG_WriteByte (&sv.signon, bits); + + if (bits & B_LARGEMODEL) + MSG_WriteShort (&sv.signon, svent->baseline.modelindex); + else + MSG_WriteByte (&sv.signon, svent->baseline.modelindex); + + if (bits & B_LARGEFRAME) + MSG_WriteShort (&sv.signon, svent->baseline.frame); + else + MSG_WriteByte (&sv.signon, svent->baseline.frame); + //johnfitz + + MSG_WriteByte (&sv.signon, svent->baseline.colormap); + MSG_WriteByte (&sv.signon, svent->baseline.skin); + for (i=0 ; i<3 ; i++) + { + MSG_WriteCoord(&sv.signon, svent->baseline.origin[i]); + MSG_WriteAngle(&sv.signon, svent->baseline.angles[i]); + } + + //johnfitz -- PROTOCOL_FITZQUAKE + if (bits & B_ALPHA) + MSG_WriteByte (&sv.signon, svent->baseline.alpha); + //johnfitz + } +} + + +/* +================ +SV_SendReconnect + +Tell all the clients that the server is changing levels +================ +*/ +void SV_SendReconnect (void) +{ + char data[128]; + sizebuf_t msg; + + msg.data = data; + msg.cursize = 0; + msg.maxsize = sizeof(data); + + MSG_WriteChar (&msg, svc_stufftext); + MSG_WriteString (&msg, "reconnect\n"); + NET_SendToAll (&msg, 5); + + if (cls.state != ca_dedicated) + Cmd_ExecuteString ("reconnect\n", src_command); +} + + +/* +================ +SV_SaveSpawnparms + +Grabs the current state of each client for saving across the +transition to another level +================ +*/ +void SV_SaveSpawnparms (void) +{ + int i, j; + + svs.serverflags = pr_global_struct->serverflags; + + for (i=0, host_client = svs.clients ; iactive) + continue; + + // call the progs to get default spawn parms for the new client + pr_global_struct->self = EDICT_TO_PROG(host_client->edict); + PR_ExecuteProgram (pr_global_struct->SetChangeParms); + for (j=0 ; jspawn_parms[j] = (&pr_global_struct->parm1)[j]; + } +} + + +/* +================ +SV_SpawnServer + +This is called at the start of each level +================ +*/ +extern float scr_centertime_off; +void SV_SpawnServer (char *server) +{ + edict_t *ent; + int i; + + // let's not have any servers with no name + if (hostname.string[0] == 0) + Cvar_Set ("hostname", "UNNAMED"); + scr_centertime_off = 0; + + Con_DPrintf ("SpawnServer: %s\n",server); + svs.changelevel_issued = false; // now safe to issue another + +// +// tell all connected clients that we are going to a new level +// + if (sv.active) + { + SV_SendReconnect (); + } + +// +// make cvars consistant +// + if (coop.value) + Cvar_SetValue ("deathmatch", 0); + current_skill = (int)(skill.value + 0.5); + if (current_skill < 0) + current_skill = 0; + if (current_skill > 3) + current_skill = 3; + + Cvar_SetValue ("skill", (float)current_skill); + +// +// set up the new server +// + Host_ClearMemory (); + + memset (&sv, 0, sizeof(sv)); + + strcpy (sv.name, server); + + sv.protocol = sv_protocol; // johnfitz + +// load progs to get entity field count + PR_LoadProgs (); + +// allocate server memory + sv.max_edicts = CLAMP (MIN_EDICTS,(int)max_edicts.value,MAX_EDICTS); //johnfitz -- max_edicts cvar + sv.edicts = Hunk_AllocName (sv.max_edicts*pr_edict_size, "edicts"); + + sv.datagram.maxsize = sizeof(sv.datagram_buf); + sv.datagram.cursize = 0; + sv.datagram.data = sv.datagram_buf; + + sv.reliable_datagram.maxsize = sizeof(sv.reliable_datagram_buf); + sv.reliable_datagram.cursize = 0; + sv.reliable_datagram.data = sv.reliable_datagram_buf; + + sv.signon.maxsize = sizeof(sv.signon_buf); + sv.signon.cursize = 0; + sv.signon.data = sv.signon_buf; + +// leave slots at start for clients only + sv.num_edicts = svs.maxclients+1; + for (i=0 ; inumsubmodels ; i++) + { + sv.model_precache[1+i] = localmodels[i]; + sv.models[i+1] = Mod_ForName (localmodels[i], false); + } + +// +// load the rest of the entities +// + ent = EDICT_NUM(0); + memset (&ent->v, 0, progs->entityfields * 4); + ent->free = false; + ent->v.model = sv.worldmodel->name - pr_strings; + ent->v.modelindex = 1; // world model + ent->v.solid = SOLID_BSP; + ent->v.movetype = MOVETYPE_PUSH; + + if (coop.value) + pr_global_struct->coop = coop.value; + else + pr_global_struct->deathmatch = deathmatch.value; + + pr_global_struct->mapname = sv.name - pr_strings; + +// serverflags are for cross level information (sigils) + pr_global_struct->serverflags = svs.serverflags; + + ED_LoadFromFile (sv.worldmodel->entities); + + sv.active = true; + +// all setup is completed, any further precache statements are errors + sv.state = ss_active; + +// run two frames to allow everything to settle + host_frametime = 0.1; + SV_Physics (); + SV_Physics (); + +// create a baseline for more efficient communications + SV_CreateBaseline (); + + //johnfitz -- warn if signon buffer larger than standard server can handle + if (sv.signon.cursize > 8000-2) //max size that will fit into 8000-sized client->message buffer with 2 extra bytes on the end + Con_Warning ("%i byte signon buffer exceeds standard limit of 7998.\n", sv.signon.cursize); + //johnfitz + +// send serverinfo to all connected clients + for (i=0,host_client = svs.clients ; iactive) + SV_SendServerinfo (host_client); + + Con_DPrintf ("Server spawned.\n"); +} + diff --git a/quakespasm/Quake/sv_move.c b/quakespasm/Quake/sv_move.c new file mode 100644 index 00000000..086cd42e --- /dev/null +++ b/quakespasm/Quake/sv_move.c @@ -0,0 +1,420 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// sv_move.c -- monster movement + +#include "quakedef.h" + +#define STEPSIZE 18 + +/* +============= +SV_CheckBottom + +Returns false if any part of the bottom of the entity is off an edge that +is not a staircase. + +============= +*/ +int c_yes, c_no; + +qboolean SV_CheckBottom (edict_t *ent) +{ + vec3_t mins, maxs, start, stop; + trace_t trace; + int x, y; + float mid, bottom; + + VectorAdd (ent->v.origin, ent->v.mins, mins); + VectorAdd (ent->v.origin, ent->v.maxs, maxs); + +// if all of the points under the corners are solid world, don't bother +// with the tougher checks +// the corners must be within 16 of the midpoint + start[2] = mins[2] - 1; + for (x=0 ; x<=1 ; x++) + for (y=0 ; y<=1 ; y++) + { + start[0] = x ? maxs[0] : mins[0]; + start[1] = y ? maxs[1] : mins[1]; + if (SV_PointContents (start) != CONTENTS_SOLID) + goto realcheck; + } + + c_yes++; + return true; // we got out easy + +realcheck: + c_no++; +// +// check it for real... +// + start[2] = mins[2]; + +// the midpoint must be within 16 of the bottom + start[0] = stop[0] = (mins[0] + maxs[0])*0.5; + start[1] = stop[1] = (mins[1] + maxs[1])*0.5; + stop[2] = start[2] - 2*STEPSIZE; + trace = SV_Move (start, vec3_origin, vec3_origin, stop, true, ent); + + if (trace.fraction == 1.0) + return false; + mid = bottom = trace.endpos[2]; + +// the corners must be within 16 of the midpoint + for (x=0 ; x<=1 ; x++) + for (y=0 ; y<=1 ; y++) + { + start[0] = stop[0] = x ? maxs[0] : mins[0]; + start[1] = stop[1] = y ? maxs[1] : mins[1]; + + trace = SV_Move (start, vec3_origin, vec3_origin, stop, true, ent); + + if (trace.fraction != 1.0 && trace.endpos[2] > bottom) + bottom = trace.endpos[2]; + if (trace.fraction == 1.0 || mid - trace.endpos[2] > STEPSIZE) + return false; + } + + c_yes++; + return true; +} + + +/* +============= +SV_movestep + +Called by monster program code. +The move will be adjusted for slopes and stairs, but if the move isn't +possible, no move is done, false is returned, and +pr_global_struct->trace_normal is set to the normal of the blocking wall +============= +*/ +qboolean SV_movestep (edict_t *ent, vec3_t move, qboolean relink) +{ + float dz; + vec3_t oldorg, neworg, end; + trace_t trace; + int i; + edict_t *enemy; + +// try the move + VectorCopy (ent->v.origin, oldorg); + VectorAdd (ent->v.origin, move, neworg); + +// flying monsters don't step up + if ( (int)ent->v.flags & (FL_SWIM | FL_FLY) ) + { + // try one move with vertical motion, then one without + for (i=0 ; i<2 ; i++) + { + VectorAdd (ent->v.origin, move, neworg); + enemy = PROG_TO_EDICT(ent->v.enemy); + if (i == 0 && enemy != sv.edicts) + { + dz = ent->v.origin[2] - PROG_TO_EDICT(ent->v.enemy)->v.origin[2]; + if (dz > 40) + neworg[2] -= 8; + if (dz < 30) + neworg[2] += 8; + } + trace = SV_Move (ent->v.origin, ent->v.mins, ent->v.maxs, neworg, false, ent); + + if (trace.fraction == 1) + { + if ( ((int)ent->v.flags & FL_SWIM) && SV_PointContents(trace.endpos) == CONTENTS_EMPTY ) + return false; // swim monster left water + + VectorCopy (trace.endpos, ent->v.origin); + if (relink) + SV_LinkEdict (ent, true); + return true; + } + + if (enemy == sv.edicts) + break; + } + + return false; + } + +// push down from a step height above the wished position + neworg[2] += STEPSIZE; + VectorCopy (neworg, end); + end[2] -= STEPSIZE*2; + + trace = SV_Move (neworg, ent->v.mins, ent->v.maxs, end, false, ent); + + if (trace.allsolid) + return false; + + if (trace.startsolid) + { + neworg[2] -= STEPSIZE; + trace = SV_Move (neworg, ent->v.mins, ent->v.maxs, end, false, ent); + if (trace.allsolid || trace.startsolid) + return false; + } + if (trace.fraction == 1) + { + // if monster had the ground pulled out, go ahead and fall + if ( (int)ent->v.flags & FL_PARTIALGROUND ) + { + VectorAdd (ent->v.origin, move, ent->v.origin); + if (relink) + SV_LinkEdict (ent, true); + ent->v.flags = (int)ent->v.flags & ~FL_ONGROUND; +// Con_Printf ("fall down\n"); + return true; + } + + return false; // walked off an edge + } + +// check point traces down for dangling corners + VectorCopy (trace.endpos, ent->v.origin); + + if (!SV_CheckBottom (ent)) + { + if ( (int)ent->v.flags & FL_PARTIALGROUND ) + { // entity had floor mostly pulled out from underneath it + // and is trying to correct + if (relink) + SV_LinkEdict (ent, true); + return true; + } + VectorCopy (oldorg, ent->v.origin); + return false; + } + + if ( (int)ent->v.flags & FL_PARTIALGROUND ) + { +// Con_Printf ("back on ground\n"); + ent->v.flags = (int)ent->v.flags & ~FL_PARTIALGROUND; + } + ent->v.groundentity = EDICT_TO_PROG(trace.ent); + +// the move is ok + if (relink) + SV_LinkEdict (ent, true); + return true; +} + + +//============================================================================ + +/* +====================== +SV_StepDirection + +Turns to the movement direction, and walks the current distance if +facing it. + +====================== +*/ +void PF_changeyaw (void); +qboolean SV_StepDirection (edict_t *ent, float yaw, float dist) +{ + vec3_t move, oldorigin; + float delta; + + ent->v.ideal_yaw = yaw; + PF_changeyaw(); + + yaw = yaw*M_PI*2 / 360; + move[0] = cos(yaw)*dist; + move[1] = sin(yaw)*dist; + move[2] = 0; + + VectorCopy (ent->v.origin, oldorigin); + if (SV_movestep (ent, move, false)) + { + delta = ent->v.angles[YAW] - ent->v.ideal_yaw; + if (delta > 45 && delta < 315) + { // not turned far enough, so don't take the step + VectorCopy (oldorigin, ent->v.origin); + } + SV_LinkEdict (ent, true); + return true; + } + SV_LinkEdict (ent, true); + + return false; +} + +/* +====================== +SV_FixCheckBottom + +====================== +*/ +void SV_FixCheckBottom (edict_t *ent) +{ +// Con_Printf ("SV_FixCheckBottom\n"); + + ent->v.flags = (int)ent->v.flags | FL_PARTIALGROUND; +} + + + +/* +================ +SV_NewChaseDir + +================ +*/ +#define DI_NODIR -1 +void SV_NewChaseDir (edict_t *actor, edict_t *enemy, float dist) +{ + float deltax,deltay; + float d[3]; + float tdir, olddir, turnaround; + + olddir = anglemod( (int)(actor->v.ideal_yaw/45)*45 ); + turnaround = anglemod(olddir - 180); + + deltax = enemy->v.origin[0] - actor->v.origin[0]; + deltay = enemy->v.origin[1] - actor->v.origin[1]; + if (deltax>10) + d[1]= 0; + else if (deltax<-10) + d[1]= 180; + else + d[1]= DI_NODIR; + if (deltay<-10) + d[2]= 270; + else if (deltay>10) + d[2]= 90; + else + d[2]= DI_NODIR; + +// try direct route + if (d[1] != DI_NODIR && d[2] != DI_NODIR) + { + if (d[1] == 0) + tdir = d[2] == 90 ? 45 : 315; + else + tdir = d[2] == 90 ? 135 : 215; + + if (tdir != turnaround && SV_StepDirection(actor, tdir, dist)) + return; + } + +// try other directions + if ( ((rand()&3) & 1) || abs(deltay)>abs(deltax)) + { + tdir=d[1]; + d[1]=d[2]; + d[2]=tdir; + } + + if (d[1]!=DI_NODIR && d[1]!=turnaround + && SV_StepDirection(actor, d[1], dist)) + return; + + if (d[2]!=DI_NODIR && d[2]!=turnaround + && SV_StepDirection(actor, d[2], dist)) + return; + +/* there is no direct path to the player, so pick another direction */ + + if (olddir!=DI_NODIR && SV_StepDirection(actor, olddir, dist)) + return; + + if (rand()&1) /*randomly determine direction of search*/ + { + for (tdir=0 ; tdir<=315 ; tdir += 45) + if (tdir!=turnaround && SV_StepDirection(actor, tdir, dist) ) + return; + } + else + { + for (tdir=315 ; tdir >=0 ; tdir -= 45) + if (tdir!=turnaround && SV_StepDirection(actor, tdir, dist) ) + return; + } + + if (turnaround != DI_NODIR && SV_StepDirection(actor, turnaround, dist) ) + return; + + actor->v.ideal_yaw = olddir; // can't move + +// if a bridge was pulled out from underneath a monster, it may not have +// a valid standing position at all + + if (!SV_CheckBottom (actor)) + SV_FixCheckBottom (actor); + +} + +/* +====================== +SV_CloseEnough + +====================== +*/ +qboolean SV_CloseEnough (edict_t *ent, edict_t *goal, float dist) +{ + int i; + + for (i=0 ; i<3 ; i++) + { + if (goal->v.absmin[i] > ent->v.absmax[i] + dist) + return false; + if (goal->v.absmax[i] < ent->v.absmin[i] - dist) + return false; + } + return true; +} + +/* +====================== +SV_MoveToGoal + +====================== +*/ +void SV_MoveToGoal (void) +{ + edict_t *ent, *goal; + float dist; + + ent = PROG_TO_EDICT(pr_global_struct->self); + goal = PROG_TO_EDICT(ent->v.goalentity); + dist = G_FLOAT(OFS_PARM0); + + if ( !( (int)ent->v.flags & (FL_ONGROUND|FL_FLY|FL_SWIM) ) ) + { + G_FLOAT(OFS_RETURN) = 0; + return; + } + +// if the next step hits the enemy, return immediately + if ( PROG_TO_EDICT(ent->v.enemy) != sv.edicts && SV_CloseEnough (ent, goal, dist) ) + return; + +// bump around... + if ( (rand()&3)==1 || + !SV_StepDirection (ent, ent->v.ideal_yaw, dist)) + { + SV_NewChaseDir (ent, goal, dist); + } +} + diff --git a/quakespasm/Quake/sv_phys.c b/quakespasm/Quake/sv_phys.c new file mode 100644 index 00000000..94da9408 --- /dev/null +++ b/quakespasm/Quake/sv_phys.c @@ -0,0 +1,1220 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// sv_phys.c + +#include "quakedef.h" + +/* + + +pushmove objects do not obey gravity, and do not interact with each other or trigger fields, but block normal movement and push normal objects when they move. + +onground is set for toss objects when they come to a complete rest. it is set for steping or walking objects + +doors, plats, etc are SOLID_BSP, and MOVETYPE_PUSH +bonus items are SOLID_TRIGGER touch, and MOVETYPE_TOSS +corpses are SOLID_NOT and MOVETYPE_TOSS +crates are SOLID_BBOX and MOVETYPE_TOSS +walking monsters are SOLID_SLIDEBOX and MOVETYPE_STEP +flying/floating monsters are SOLID_SLIDEBOX and MOVETYPE_FLY + +solid_edge items only clip against bsp models. + +*/ + +cvar_t sv_friction = {"sv_friction","4",false,true}; +cvar_t sv_stopspeed = {"sv_stopspeed","100"}; +cvar_t sv_gravity = {"sv_gravity","800",false,true}; +cvar_t sv_maxvelocity = {"sv_maxvelocity","2000"}; +cvar_t sv_nostep = {"sv_nostep","0"}; + +#define MOVE_EPSILON 0.01 + +void SV_Physics_Toss (edict_t *ent); + +/* +================ +SV_CheckAllEnts +================ +*/ +void SV_CheckAllEnts (void) +{ + int e; + edict_t *check; + +// see if any solid entities are inside the final position + check = NEXT_EDICT(sv.edicts); + for (e=1 ; efree) + continue; + if (check->v.movetype == MOVETYPE_PUSH + || check->v.movetype == MOVETYPE_NONE + || check->v.movetype == MOVETYPE_NOCLIP) + continue; + + if (SV_TestEntityPosition (check)) + Con_Printf ("entity in invalid position\n"); + } +} + +/* +================ +SV_CheckVelocity +================ +*/ +void SV_CheckVelocity (edict_t *ent) +{ + int i; + +// +// bound velocity +// + for (i=0 ; i<3 ; i++) + { + if (IS_NAN(ent->v.velocity[i])) + { + Con_Printf ("Got a NaN velocity on %s\n", pr_strings + ent->v.classname); + ent->v.velocity[i] = 0; + } + if (IS_NAN(ent->v.origin[i])) + { + Con_Printf ("Got a NaN origin on %s\n", pr_strings + ent->v.classname); + ent->v.origin[i] = 0; + } + if (ent->v.velocity[i] > sv_maxvelocity.value) + ent->v.velocity[i] = sv_maxvelocity.value; + else if (ent->v.velocity[i] < -sv_maxvelocity.value) + ent->v.velocity[i] = -sv_maxvelocity.value; + } +} + +/* +============= +SV_RunThink + +Runs thinking code if time. There is some play in the exact time the think +function will be called, because it is called before any movement is done +in a frame. Not used for pushmove objects, because they must be exact. +Returns false if the entity removed itself. +============= +*/ +qboolean SV_RunThink (edict_t *ent) +{ + float thinktime; + float oldframe; //johnfitz + int i; //johnfitz + + thinktime = ent->v.nextthink; + if (thinktime <= 0 || thinktime > sv.time + host_frametime) + return true; + + if (thinktime < sv.time) + thinktime = sv.time; // don't let things stay in the past. + // it is possible to start that way + // by a trigger with a local time. + + oldframe = ent->v.frame; //johnfitz + + ent->v.nextthink = 0; + pr_global_struct->time = thinktime; + pr_global_struct->self = EDICT_TO_PROG(ent); + pr_global_struct->other = EDICT_TO_PROG(sv.edicts); + PR_ExecuteProgram (ent->v.think); + +//johnfitz -- PROTOCOL_FITZQUAKE +//capture interval to nextthink here and send it to client for better +//lerp timing, but only if interval is not 0.1 (which client assumes) + ent->sendinterval = false; + if (!ent->free && ent->v.nextthink && (ent->v.movetype == MOVETYPE_STEP || ent->v.frame != oldframe)) + { + i = Q_rint((ent->v.nextthink-thinktime)*255); + if (i >= 0 && i < 256 && i != 25 && i != 26) //25 and 26 are close enough to 0.1 to not send + ent->sendinterval = true; + } +//johnfitz + + return !ent->free; +} + +/* +================== +SV_Impact + +Two entities have touched, so run their touch functions +================== +*/ +void SV_Impact (edict_t *e1, edict_t *e2) +{ + int old_self, old_other; + + old_self = pr_global_struct->self; + old_other = pr_global_struct->other; + + pr_global_struct->time = sv.time; + if (e1->v.touch && e1->v.solid != SOLID_NOT) + { + pr_global_struct->self = EDICT_TO_PROG(e1); + pr_global_struct->other = EDICT_TO_PROG(e2); + PR_ExecuteProgram (e1->v.touch); + } + + if (e2->v.touch && e2->v.solid != SOLID_NOT) + { + pr_global_struct->self = EDICT_TO_PROG(e2); + pr_global_struct->other = EDICT_TO_PROG(e1); + PR_ExecuteProgram (e2->v.touch); + } + + pr_global_struct->self = old_self; + pr_global_struct->other = old_other; +} + + +/* +================== +ClipVelocity + +Slide off of the impacting object +returns the blocked flags (1 = floor, 2 = step / wall) +================== +*/ +#define STOP_EPSILON 0.1 + +int ClipVelocity (vec3_t in, vec3_t normal, vec3_t out, float overbounce) +{ + float backoff; + float change; + int i, blocked; + + blocked = 0; + if (normal[2] > 0) + blocked |= 1; // floor + if (!normal[2]) + blocked |= 2; // step + + backoff = DotProduct (in, normal) * overbounce; + + for (i=0 ; i<3 ; i++) + { + change = normal[i]*backoff; + out[i] = in[i] - change; + if (out[i] > -STOP_EPSILON && out[i] < STOP_EPSILON) + out[i] = 0; + } + + return blocked; +} + + +/* +============ +SV_FlyMove + +The basic solid body movement clip that slides along multiple planes +Returns the clipflags if the velocity was modified (hit something solid) +1 = floor +2 = wall / step +4 = dead stop +If steptrace is not NULL, the trace of any vertical wall hit will be stored +============ +*/ +#define MAX_CLIP_PLANES 5 +int SV_FlyMove (edict_t *ent, float time, trace_t *steptrace) +{ + int bumpcount, numbumps; + vec3_t dir; + float d; + int numplanes; + vec3_t planes[MAX_CLIP_PLANES]; + vec3_t primal_velocity, original_velocity, new_velocity; + int i, j; + trace_t trace; + vec3_t end; + float time_left; + int blocked; + + numbumps = 4; + + blocked = 0; + VectorCopy (ent->v.velocity, original_velocity); + VectorCopy (ent->v.velocity, primal_velocity); + numplanes = 0; + + time_left = time; + + for (bumpcount=0 ; bumpcountv.velocity[0] && !ent->v.velocity[1] && !ent->v.velocity[2]) + break; + + for (i=0 ; i<3 ; i++) + end[i] = ent->v.origin[i] + time_left * ent->v.velocity[i]; + + trace = SV_Move (ent->v.origin, ent->v.mins, ent->v.maxs, end, false, ent); + + if (trace.allsolid) + { // entity is trapped in another solid + VectorCopy (vec3_origin, ent->v.velocity); + return 3; + } + + if (trace.fraction > 0) + { // actually covered some distance + VectorCopy (trace.endpos, ent->v.origin); + VectorCopy (ent->v.velocity, original_velocity); + numplanes = 0; + } + + if (trace.fraction == 1) + break; // moved the entire distance + + if (!trace.ent) + Sys_Error ("SV_FlyMove: !trace.ent"); + + if (trace.plane.normal[2] > 0.7) + { + blocked |= 1; // floor + if (trace.ent->v.solid == SOLID_BSP) + { + ent->v.flags = (int)ent->v.flags | FL_ONGROUND; + ent->v.groundentity = EDICT_TO_PROG(trace.ent); + } + } + if (!trace.plane.normal[2]) + { + blocked |= 2; // step + if (steptrace) + *steptrace = trace; // save for player extrafriction + } + +// +// run the impact function +// + SV_Impact (ent, trace.ent); + if (ent->free) + break; // removed by the impact function + + + time_left -= time_left * trace.fraction; + + // cliped to another plane + if (numplanes >= MAX_CLIP_PLANES) + { // this shouldn't really happen + VectorCopy (vec3_origin, ent->v.velocity); + return 3; + } + + VectorCopy (trace.plane.normal, planes[numplanes]); + numplanes++; + +// +// modify original_velocity so it parallels all of the clip planes +// + for (i=0 ; iv.velocity); + } + else + { // go along the crease + if (numplanes != 2) + { +// Con_Printf ("clip velocity, numplanes == %i\n",numplanes); + VectorCopy (vec3_origin, ent->v.velocity); + return 7; + } + CrossProduct (planes[0], planes[1], dir); + d = DotProduct (dir, ent->v.velocity); + VectorScale (dir, d, ent->v.velocity); + } + +// +// if original velocity is against the original velocity, stop dead +// to avoid tiny occilations in sloping corners +// + if (DotProduct (ent->v.velocity, primal_velocity) <= 0) + { + VectorCopy (vec3_origin, ent->v.velocity); + return blocked; + } + } + + return blocked; +} + + +/* +============ +SV_AddGravity + +============ +*/ +void SV_AddGravity (edict_t *ent) +{ + float ent_gravity; + eval_t *val; + + val = GetEdictFieldValue(ent, "gravity"); + if (val && val->_float) + ent_gravity = val->_float; + else + ent_gravity = 1.0; + + ent->v.velocity[2] -= ent_gravity * sv_gravity.value * host_frametime; +} + + +/* +=============================================================================== + +PUSHMOVE + +=============================================================================== +*/ + +/* +============ +SV_PushEntity + +Does not change the entities velocity at all +============ +*/ +trace_t SV_PushEntity (edict_t *ent, vec3_t push) +{ + trace_t trace; + vec3_t end; + + VectorAdd (ent->v.origin, push, end); + + if (ent->v.movetype == MOVETYPE_FLYMISSILE) + trace = SV_Move (ent->v.origin, ent->v.mins, ent->v.maxs, end, MOVE_MISSILE, ent); + else if (ent->v.solid == SOLID_TRIGGER || ent->v.solid == SOLID_NOT) + // only clip against bmodels + trace = SV_Move (ent->v.origin, ent->v.mins, ent->v.maxs, end, MOVE_NOMONSTERS, ent); + else + trace = SV_Move (ent->v.origin, ent->v.mins, ent->v.maxs, end, MOVE_NORMAL, ent); + + VectorCopy (trace.endpos, ent->v.origin); + SV_LinkEdict (ent, true); + + if (trace.ent) + SV_Impact (ent, trace.ent); + + return trace; +} + + +/* +============ +SV_PushMove +============ +*/ +void SV_PushMove (edict_t *pusher, float movetime) +{ + int i, e; + edict_t *check, *block; + vec3_t mins, maxs, move; + vec3_t entorig, pushorig; + int num_moved; + edict_t **moved_edict; //johnfitz -- dynamically allocate + vec3_t *moved_from; //johnfitz -- dynamically allocate + int mark; //johnfitz + + if (!pusher->v.velocity[0] && !pusher->v.velocity[1] && !pusher->v.velocity[2]) + { + pusher->v.ltime += movetime; + return; + } + + for (i=0 ; i<3 ; i++) + { + move[i] = pusher->v.velocity[i] * movetime; + mins[i] = pusher->v.absmin[i] + move[i]; + maxs[i] = pusher->v.absmax[i] + move[i]; + } + + VectorCopy (pusher->v.origin, pushorig); + +// move the pusher to it's final position + + VectorAdd (pusher->v.origin, move, pusher->v.origin); + pusher->v.ltime += movetime; + SV_LinkEdict (pusher, false); + + //johnfitz -- dynamically allocate + mark = Hunk_LowMark (); + moved_edict = Hunk_Alloc (sv.num_edicts*sizeof(edict_t *)); + moved_from = Hunk_Alloc (sv.num_edicts*sizeof(vec3_t)); + //johnfitz + +// see if any solid entities are inside the final position + num_moved = 0; + check = NEXT_EDICT(sv.edicts); + for (e=1 ; efree) + continue; + if (check->v.movetype == MOVETYPE_PUSH + || check->v.movetype == MOVETYPE_NONE + || check->v.movetype == MOVETYPE_NOCLIP) + continue; + + // if the entity is standing on the pusher, it will definately be moved + if ( ! ( ((int)check->v.flags & FL_ONGROUND) + && PROG_TO_EDICT(check->v.groundentity) == pusher) ) + { + if ( check->v.absmin[0] >= maxs[0] + || check->v.absmin[1] >= maxs[1] + || check->v.absmin[2] >= maxs[2] + || check->v.absmax[0] <= mins[0] + || check->v.absmax[1] <= mins[1] + || check->v.absmax[2] <= mins[2] ) + continue; + + // see if the ent's bbox is inside the pusher's final position + if (!SV_TestEntityPosition (check)) + continue; + } + + // remove the onground flag for non-players + if (check->v.movetype != MOVETYPE_WALK) + check->v.flags = (int)check->v.flags & ~FL_ONGROUND; + + VectorCopy (check->v.origin, entorig); + VectorCopy (check->v.origin, moved_from[num_moved]); + moved_edict[num_moved] = check; + num_moved++; + + // try moving the contacted entity + pusher->v.solid = SOLID_NOT; + SV_PushEntity (check, move); + pusher->v.solid = SOLID_BSP; + + // if it is still inside the pusher, block + block = SV_TestEntityPosition (check); + if (block) + { // fail the move + if (check->v.mins[0] == check->v.maxs[0]) + continue; + if (check->v.solid == SOLID_NOT || check->v.solid == SOLID_TRIGGER) + { // corpse + check->v.mins[0] = check->v.mins[1] = 0; + VectorCopy (check->v.mins, check->v.maxs); + continue; + } + + VectorCopy (entorig, check->v.origin); + SV_LinkEdict (check, true); + + VectorCopy (pushorig, pusher->v.origin); + SV_LinkEdict (pusher, false); + pusher->v.ltime -= movetime; + + // if the pusher has a "blocked" function, call it + // otherwise, just stay in place until the obstacle is gone + if (pusher->v.blocked) + { + pr_global_struct->self = EDICT_TO_PROG(pusher); + pr_global_struct->other = EDICT_TO_PROG(check); + PR_ExecuteProgram (pusher->v.blocked); + } + + // move back any entities we already moved + for (i=0 ; iv.origin); + SV_LinkEdict (moved_edict[i], false); + } + Hunk_FreeToLowMark (mark); //johnfitz + return; + } + } + + Hunk_FreeToLowMark (mark); //johnfitz + +} + +/* +================ +SV_Physics_Pusher + +================ +*/ +void SV_Physics_Pusher (edict_t *ent) +{ + float thinktime; + float oldltime; + float movetime; + + oldltime = ent->v.ltime; + + thinktime = ent->v.nextthink; + if (thinktime < ent->v.ltime + host_frametime) + { + movetime = thinktime - ent->v.ltime; + if (movetime < 0) + movetime = 0; + } + else + movetime = host_frametime; + + if (movetime) + { + SV_PushMove (ent, movetime); // advances ent->v.ltime if not blocked + } + + if (thinktime > oldltime && thinktime <= ent->v.ltime) + { + ent->v.nextthink = 0; + pr_global_struct->time = sv.time; + pr_global_struct->self = EDICT_TO_PROG(ent); + pr_global_struct->other = EDICT_TO_PROG(sv.edicts); + PR_ExecuteProgram (ent->v.think); + if (ent->free) + return; + } + +} + + +/* +=============================================================================== + +CLIENT MOVEMENT + +=============================================================================== +*/ + +/* +============= +SV_CheckStuck + +This is a big hack to try and fix the rare case of getting stuck in the world +clipping hull. +============= +*/ +void SV_CheckStuck (edict_t *ent) +{ + int i, j; + int z; + vec3_t org; + + if (!SV_TestEntityPosition(ent)) + { + VectorCopy (ent->v.origin, ent->v.oldorigin); + return; + } + + VectorCopy (ent->v.origin, org); + VectorCopy (ent->v.oldorigin, ent->v.origin); + if (!SV_TestEntityPosition(ent)) + { + Con_DPrintf ("Unstuck.\n"); + SV_LinkEdict (ent, true); + return; + } + + for (z=0 ; z< 18 ; z++) + for (i=-1 ; i <= 1 ; i++) + for (j=-1 ; j <= 1 ; j++) + { + ent->v.origin[0] = org[0] + i; + ent->v.origin[1] = org[1] + j; + ent->v.origin[2] = org[2] + z; + if (!SV_TestEntityPosition(ent)) + { + Con_DPrintf ("Unstuck.\n"); + SV_LinkEdict (ent, true); + return; + } + } + + VectorCopy (org, ent->v.origin); + Con_DPrintf ("player is stuck.\n"); +} + + +/* +============= +SV_CheckWater +============= +*/ +qboolean SV_CheckWater (edict_t *ent) +{ + vec3_t point; + int cont; + + point[0] = ent->v.origin[0]; + point[1] = ent->v.origin[1]; + point[2] = ent->v.origin[2] + ent->v.mins[2] + 1; + + ent->v.waterlevel = 0; + ent->v.watertype = CONTENTS_EMPTY; + cont = SV_PointContents (point); + if (cont <= CONTENTS_WATER) + { + ent->v.watertype = cont; + ent->v.waterlevel = 1; + point[2] = ent->v.origin[2] + (ent->v.mins[2] + ent->v.maxs[2])*0.5; + cont = SV_PointContents (point); + if (cont <= CONTENTS_WATER) + { + ent->v.waterlevel = 2; + point[2] = ent->v.origin[2] + ent->v.view_ofs[2]; + cont = SV_PointContents (point); + if (cont <= CONTENTS_WATER) + ent->v.waterlevel = 3; + } + } + + return ent->v.waterlevel > 1; +} + +/* +============ +SV_WallFriction + +============ +*/ +void SV_WallFriction (edict_t *ent, trace_t *trace) +{ + vec3_t forward, right, up; + float d, i; + vec3_t into, side; + + AngleVectors (ent->v.v_angle, forward, right, up); + d = DotProduct (trace->plane.normal, forward); + + d += 0.5; + if (d >= 0) + return; + +// cut the tangential velocity + i = DotProduct (trace->plane.normal, ent->v.velocity); + VectorScale (trace->plane.normal, i, into); + VectorSubtract (ent->v.velocity, into, side); + + ent->v.velocity[0] = side[0] * (1 + d); + ent->v.velocity[1] = side[1] * (1 + d); +} + +/* +===================== +SV_TryUnstick + +Player has come to a dead stop, possibly due to the problem with limited +float precision at some angle joins in the BSP hull. + +Try fixing by pushing one pixel in each direction. + +This is a hack, but in the interest of good gameplay... +====================== +*/ +int SV_TryUnstick (edict_t *ent, vec3_t oldvel) +{ + int i; + vec3_t oldorg; + vec3_t dir; + int clip; + trace_t steptrace; + + VectorCopy (ent->v.origin, oldorg); + VectorCopy (vec3_origin, dir); + + for (i=0 ; i<8 ; i++) + { +// try pushing a little in an axial direction + switch (i) + { + case 0: dir[0] = 2; dir[1] = 0; break; + case 1: dir[0] = 0; dir[1] = 2; break; + case 2: dir[0] = -2; dir[1] = 0; break; + case 3: dir[0] = 0; dir[1] = -2; break; + case 4: dir[0] = 2; dir[1] = 2; break; + case 5: dir[0] = -2; dir[1] = 2; break; + case 6: dir[0] = 2; dir[1] = -2; break; + case 7: dir[0] = -2; dir[1] = -2; break; + } + + SV_PushEntity (ent, dir); + +// retry the original move + ent->v.velocity[0] = oldvel[0]; + ent->v. velocity[1] = oldvel[1]; + ent->v. velocity[2] = 0; + clip = SV_FlyMove (ent, 0.1, &steptrace); + + if ( fabs(oldorg[1] - ent->v.origin[1]) > 4 + || fabs(oldorg[0] - ent->v.origin[0]) > 4 ) + { +//Con_DPrintf ("unstuck!\n"); + return clip; + } + +// go back to the original pos and try again + VectorCopy (oldorg, ent->v.origin); + } + + VectorCopy (vec3_origin, ent->v.velocity); + return 7; // still not moving +} + +/* +===================== +SV_WalkMove + +Only used by players +====================== +*/ +#define STEPSIZE 18 +void SV_WalkMove (edict_t *ent) +{ + vec3_t upmove, downmove; + vec3_t oldorg, oldvel; + vec3_t nosteporg, nostepvel; + int clip; + int oldonground; + trace_t steptrace, downtrace; + +// +// do a regular slide move unless it looks like you ran into a step +// + oldonground = (int)ent->v.flags & FL_ONGROUND; + ent->v.flags = (int)ent->v.flags & ~FL_ONGROUND; + + VectorCopy (ent->v.origin, oldorg); + VectorCopy (ent->v.velocity, oldvel); + + clip = SV_FlyMove (ent, host_frametime, &steptrace); + + if ( !(clip & 2) ) + return; // move didn't block on a step + + if (!oldonground && ent->v.waterlevel == 0) + return; // don't stair up while jumping + + if (ent->v.movetype != MOVETYPE_WALK) + return; // gibbed by a trigger + + if (sv_nostep.value) + return; + + if ( (int)sv_player->v.flags & FL_WATERJUMP ) + return; + + VectorCopy (ent->v.origin, nosteporg); + VectorCopy (ent->v.velocity, nostepvel); + +// +// try moving up and forward to go up a step +// + VectorCopy (oldorg, ent->v.origin); // back to start pos + + VectorCopy (vec3_origin, upmove); + VectorCopy (vec3_origin, downmove); + upmove[2] = STEPSIZE; + downmove[2] = -STEPSIZE + oldvel[2]*host_frametime; + +// move up + SV_PushEntity (ent, upmove); // FIXME: don't link? + +// move forward + ent->v.velocity[0] = oldvel[0]; + ent->v. velocity[1] = oldvel[1]; + ent->v. velocity[2] = 0; + clip = SV_FlyMove (ent, host_frametime, &steptrace); + +// check for stuckness, possibly due to the limited precision of floats +// in the clipping hulls + if (clip) + { + if ( fabs(oldorg[1] - ent->v.origin[1]) < 0.03125 + && fabs(oldorg[0] - ent->v.origin[0]) < 0.03125 ) + { // stepping up didn't make any progress + clip = SV_TryUnstick (ent, oldvel); + } + } + +// extra friction based on view angle + if ( clip & 2 ) + SV_WallFriction (ent, &steptrace); + +// move down + downtrace = SV_PushEntity (ent, downmove); // FIXME: don't link? + + if (downtrace.plane.normal[2] > 0.7) + { + if (ent->v.solid == SOLID_BSP) + { + ent->v.flags = (int)ent->v.flags | FL_ONGROUND; + ent->v.groundentity = EDICT_TO_PROG(downtrace.ent); + } + } + else + { +// if the push down didn't end up on good ground, use the move without +// the step up. This happens near wall / slope combinations, and can +// cause the player to hop up higher on a slope too steep to climb + VectorCopy (nosteporg, ent->v.origin); + VectorCopy (nostepvel, ent->v.velocity); + } +} + + +/* +================ +SV_Physics_Client + +Player character actions +================ +*/ +void SV_Physics_Client (edict_t *ent, int num) +{ + if ( ! svs.clients[num-1].active ) + return; // unconnected slot + +// +// call standard client pre-think +// + pr_global_struct->time = sv.time; + pr_global_struct->self = EDICT_TO_PROG(ent); + PR_ExecuteProgram (pr_global_struct->PlayerPreThink); + +// +// do a move +// + SV_CheckVelocity (ent); + +// +// decide which move function to call +// + switch ((int)ent->v.movetype) + { + case MOVETYPE_NONE: + if (!SV_RunThink (ent)) + return; + break; + + case MOVETYPE_WALK: + if (!SV_RunThink (ent)) + return; + if (!SV_CheckWater (ent) && ! ((int)ent->v.flags & FL_WATERJUMP) ) + SV_AddGravity (ent); + SV_CheckStuck (ent); + SV_WalkMove (ent); + break; + + case MOVETYPE_TOSS: + case MOVETYPE_BOUNCE: + SV_Physics_Toss (ent); + break; + + case MOVETYPE_FLY: + if (!SV_RunThink (ent)) + return; + SV_FlyMove (ent, host_frametime, NULL); + break; + + case MOVETYPE_NOCLIP: + if (!SV_RunThink (ent)) + return; + VectorMA (ent->v.origin, host_frametime, ent->v.velocity, ent->v.origin); + break; + + default: + Sys_Error ("SV_Physics_client: bad movetype %i", (int)ent->v.movetype); + } + +// +// call standard player post-think +// + SV_LinkEdict (ent, true); + + pr_global_struct->time = sv.time; + pr_global_struct->self = EDICT_TO_PROG(ent); + PR_ExecuteProgram (pr_global_struct->PlayerPostThink); +} + +//============================================================================ + +/* +============= +SV_Physics_None + +Non moving objects can only think +============= +*/ +void SV_Physics_None (edict_t *ent) +{ +// regular thinking + SV_RunThink (ent); +} + +/* +============= +SV_Physics_Noclip + +A moving object that doesn't obey physics +============= +*/ +void SV_Physics_Noclip (edict_t *ent) +{ +// regular thinking + if (!SV_RunThink (ent)) + return; + + VectorMA (ent->v.angles, host_frametime, ent->v.avelocity, ent->v.angles); + VectorMA (ent->v.origin, host_frametime, ent->v.velocity, ent->v.origin); + + SV_LinkEdict (ent, false); +} + +/* +============================================================================== + +TOSS / BOUNCE + +============================================================================== +*/ + +/* +============= +SV_CheckWaterTransition + +============= +*/ +void SV_CheckWaterTransition (edict_t *ent) +{ + int cont; + + cont = SV_PointContents (ent->v.origin); + + if (!ent->v.watertype) + { // just spawned here + ent->v.watertype = cont; + ent->v.waterlevel = 1; + return; + } + + if (cont <= CONTENTS_WATER) + { + if (ent->v.watertype == CONTENTS_EMPTY) + { // just crossed into water + SV_StartSound (ent, 0, "misc/h2ohit1.wav", 255, 1); + } + ent->v.watertype = cont; + ent->v.waterlevel = 1; + } + else + { + if (ent->v.watertype != CONTENTS_EMPTY) + { // just crossed into water + SV_StartSound (ent, 0, "misc/h2ohit1.wav", 255, 1); + } + ent->v.watertype = CONTENTS_EMPTY; + ent->v.waterlevel = cont; + } +} + +/* +============= +SV_Physics_Toss + +Toss, bounce, and fly movement. When onground, do nothing. +============= +*/ +void SV_Physics_Toss (edict_t *ent) +{ + trace_t trace; + vec3_t move; + float backoff; + + // regular thinking + if (!SV_RunThink (ent)) + return; + +// if onground, return without moving + if ( ((int)ent->v.flags & FL_ONGROUND) ) + return; + + SV_CheckVelocity (ent); + +// add gravity + if (ent->v.movetype != MOVETYPE_FLY + && ent->v.movetype != MOVETYPE_FLYMISSILE) + SV_AddGravity (ent); + +// move angles + VectorMA (ent->v.angles, host_frametime, ent->v.avelocity, ent->v.angles); + +// move origin + VectorScale (ent->v.velocity, host_frametime, move); + trace = SV_PushEntity (ent, move); + if (trace.fraction == 1) + return; + if (ent->free) + return; + + if (ent->v.movetype == MOVETYPE_BOUNCE) + backoff = 1.5; + else + backoff = 1; + + ClipVelocity (ent->v.velocity, trace.plane.normal, ent->v.velocity, backoff); + +// stop if on ground + if (trace.plane.normal[2] > 0.7) + { + if (ent->v.velocity[2] < 60 || ent->v.movetype != MOVETYPE_BOUNCE) + { + ent->v.flags = (int)ent->v.flags | FL_ONGROUND; + ent->v.groundentity = EDICT_TO_PROG(trace.ent); + VectorCopy (vec3_origin, ent->v.velocity); + VectorCopy (vec3_origin, ent->v.avelocity); + } + } + +// check for in water + SV_CheckWaterTransition (ent); +} + +/* +=============================================================================== + +STEPPING MOVEMENT + +=============================================================================== +*/ + +/* +============= +SV_Physics_Step + +Monsters freefall when they don't have a ground entity, otherwise +all movement is done with discrete steps. + +This is also used for objects that have become still on the ground, but +will fall if the floor is pulled out from under them. +============= +*/ +void SV_Physics_Step (edict_t *ent) +{ + qboolean hitsound; + +// freefall if not onground + if ( ! ((int)ent->v.flags & (FL_ONGROUND | FL_FLY | FL_SWIM) ) ) + { + if (ent->v.velocity[2] < sv_gravity.value*-0.1) + hitsound = true; + else + hitsound = false; + + SV_AddGravity (ent); + SV_CheckVelocity (ent); + SV_FlyMove (ent, host_frametime, NULL); + SV_LinkEdict (ent, true); + + if ( (int)ent->v.flags & FL_ONGROUND ) // just hit ground + { + if (hitsound) + SV_StartSound (ent, 0, "demon/dland2.wav", 255, 1); + } + } + +// regular thinking + SV_RunThink (ent); + + SV_CheckWaterTransition (ent); +} + + +//============================================================================ + +/* +================ +SV_Physics + +================ +*/ +void SV_Physics (void) +{ + int i; + edict_t *ent; + +// let the progs know that a new frame has started + pr_global_struct->self = EDICT_TO_PROG(sv.edicts); + pr_global_struct->other = EDICT_TO_PROG(sv.edicts); + pr_global_struct->time = sv.time; + PR_ExecuteProgram (pr_global_struct->StartFrame); + +//SV_CheckAllEnts (); + +// +// treat each object in turn +// + ent = sv.edicts; + for (i=0 ; ifree) + continue; + + if (pr_global_struct->force_retouch) + { + SV_LinkEdict (ent, true); // force retouch even for stationary + } + + if (i > 0 && i <= svs.maxclients) + SV_Physics_Client (ent, i); + else if (ent->v.movetype == MOVETYPE_PUSH) + SV_Physics_Pusher (ent); + else if (ent->v.movetype == MOVETYPE_NONE) + SV_Physics_None (ent); + else if (ent->v.movetype == MOVETYPE_NOCLIP) + SV_Physics_Noclip (ent); + else if (ent->v.movetype == MOVETYPE_STEP) + SV_Physics_Step (ent); + else if (ent->v.movetype == MOVETYPE_TOSS + || ent->v.movetype == MOVETYPE_BOUNCE + || ent->v.movetype == MOVETYPE_FLY + || ent->v.movetype == MOVETYPE_FLYMISSILE) + SV_Physics_Toss (ent); + else + Sys_Error ("SV_Physics: bad movetype %i", (int)ent->v.movetype); + } + + if (pr_global_struct->force_retouch) + pr_global_struct->force_retouch--; + + sv.time += host_frametime; +} diff --git a/quakespasm/Quake/sv_user.c b/quakespasm/Quake/sv_user.c new file mode 100644 index 00000000..da26a4b5 --- /dev/null +++ b/quakespasm/Quake/sv_user.c @@ -0,0 +1,630 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// sv_user.c -- server code for moving users + +#include "quakedef.h" + +edict_t *sv_player; + +extern cvar_t sv_friction; +cvar_t sv_edgefriction = {"edgefriction", "2"}; +extern cvar_t sv_stopspeed; + +static vec3_t forward, right, up; + +vec3_t wishdir; +float wishspeed; + +// world +float *angles; +float *origin; +float *velocity; + +qboolean onground; + +usercmd_t cmd; + +cvar_t sv_idealpitchscale = {"sv_idealpitchscale","0.8"}; +cvar_t sv_altnoclip = {"sv_altnoclip","1",true}; //johnfitz + +/* +=============== +SV_SetIdealPitch +=============== +*/ +#define MAX_FORWARD 6 +void SV_SetIdealPitch (void) +{ + float angleval, sinval, cosval; + trace_t tr; + vec3_t top, bottom; + float z[MAX_FORWARD]; + int i, j; + int step, dir, steps; + + if (!((int)sv_player->v.flags & FL_ONGROUND)) + return; + + angleval = sv_player->v.angles[YAW] * M_PI*2 / 360; + sinval = sin(angleval); + cosval = cos(angleval); + + for (i=0 ; iv.origin[0] + cosval*(i+3)*12; + top[1] = sv_player->v.origin[1] + sinval*(i+3)*12; + top[2] = sv_player->v.origin[2] + sv_player->v.view_ofs[2]; + + bottom[0] = top[0]; + bottom[1] = top[1]; + bottom[2] = top[2] - 160; + + tr = SV_Move (top, vec3_origin, vec3_origin, bottom, 1, sv_player); + if (tr.allsolid) + return; // looking at a wall, leave ideal the way is was + + if (tr.fraction == 1) + return; // near a dropoff + + z[i] = top[2] + tr.fraction*(bottom[2]-top[2]); + } + + dir = 0; + steps = 0; + for (j=1 ; j -ON_EPSILON && step < ON_EPSILON) + continue; + + if (dir && ( step-dir > ON_EPSILON || step-dir < -ON_EPSILON ) ) + return; // mixed changes + + steps++; + dir = step; + } + + if (!dir) + { + sv_player->v.idealpitch = 0; + return; + } + + if (steps < 2) + return; + sv_player->v.idealpitch = -dir * sv_idealpitchscale.value; +} + + +/* +================== +SV_UserFriction + +================== +*/ +void SV_UserFriction (void) +{ + float *vel; + float speed, newspeed, control; + vec3_t start, stop; + float friction; + trace_t trace; + + vel = velocity; + + speed = sqrt(vel[0]*vel[0] +vel[1]*vel[1]); + if (!speed) + return; + +// if the leading edge is over a dropoff, increase friction + start[0] = stop[0] = origin[0] + vel[0]/speed*16; + start[1] = stop[1] = origin[1] + vel[1]/speed*16; + start[2] = origin[2] + sv_player->v.mins[2]; + stop[2] = start[2] - 34; + + trace = SV_Move (start, vec3_origin, vec3_origin, stop, true, sv_player); + + if (trace.fraction == 1.0) + friction = sv_friction.value*sv_edgefriction.value; + else + friction = sv_friction.value; + +// apply friction + control = speed < sv_stopspeed.value ? sv_stopspeed.value : speed; + newspeed = speed - host_frametime*control*friction; + + if (newspeed < 0) + newspeed = 0; + newspeed /= speed; + + vel[0] = vel[0] * newspeed; + vel[1] = vel[1] * newspeed; + vel[2] = vel[2] * newspeed; +} + +/* +============== +SV_Accelerate +============== +*/ +cvar_t sv_maxspeed = {"sv_maxspeed", "320", false, true}; +cvar_t sv_accelerate = {"sv_accelerate", "10"}; +void SV_Accelerate (void) +{ + int i; + float addspeed, accelspeed, currentspeed; + + currentspeed = DotProduct (velocity, wishdir); + addspeed = wishspeed - currentspeed; + if (addspeed <= 0) + return; + accelspeed = sv_accelerate.value*host_frametime*wishspeed; + if (accelspeed > addspeed) + accelspeed = addspeed; + + for (i=0 ; i<3 ; i++) + velocity[i] += accelspeed*wishdir[i]; +} + +void SV_AirAccelerate (vec3_t wishveloc) +{ + int i; + float addspeed, wishspd, accelspeed, currentspeed; + + wishspd = VectorNormalize (wishveloc); + if (wishspd > 30) + wishspd = 30; + currentspeed = DotProduct (velocity, wishveloc); + addspeed = wishspd - currentspeed; + if (addspeed <= 0) + return; +// accelspeed = sv_accelerate.value * host_frametime; + accelspeed = sv_accelerate.value*wishspeed * host_frametime; + if (accelspeed > addspeed) + accelspeed = addspeed; + + for (i=0 ; i<3 ; i++) + velocity[i] += accelspeed*wishveloc[i]; +} + + +void DropPunchAngle (void) +{ + float len; + + len = VectorNormalize (sv_player->v.punchangle); + + len -= 10*host_frametime; + if (len < 0) + len = 0; + VectorScale (sv_player->v.punchangle, len, sv_player->v.punchangle); +} + +/* +=================== +SV_WaterMove + +=================== +*/ +void SV_WaterMove (void) +{ + int i; + vec3_t wishvel; + float speed, newspeed, wishspeed, addspeed, accelspeed; + +// +// user intentions +// + AngleVectors (sv_player->v.v_angle, forward, right, up); + + for (i=0 ; i<3 ; i++) + wishvel[i] = forward[i]*cmd.forwardmove + right[i]*cmd.sidemove; + + if (!cmd.forwardmove && !cmd.sidemove && !cmd.upmove) + wishvel[2] -= 60; // drift towards bottom + else + wishvel[2] += cmd.upmove; + + wishspeed = Length(wishvel); + if (wishspeed > sv_maxspeed.value) + { + VectorScale (wishvel, sv_maxspeed.value/wishspeed, wishvel); + wishspeed = sv_maxspeed.value; + } + wishspeed *= 0.7; + +// +// water friction +// + speed = Length (velocity); + if (speed) + { + newspeed = speed - host_frametime * speed * sv_friction.value; + if (newspeed < 0) + newspeed = 0; + VectorScale (velocity, newspeed/speed, velocity); + } + else + newspeed = 0; + +// +// water acceleration +// + if (!wishspeed) + return; + + addspeed = wishspeed - newspeed; + if (addspeed <= 0) + return; + + VectorNormalize (wishvel); + accelspeed = sv_accelerate.value * wishspeed * host_frametime; + if (accelspeed > addspeed) + accelspeed = addspeed; + + for (i=0 ; i<3 ; i++) + velocity[i] += accelspeed * wishvel[i]; +} + +void SV_WaterJump (void) +{ + if (sv.time > sv_player->v.teleport_time + || !sv_player->v.waterlevel) + { + sv_player->v.flags = (int)sv_player->v.flags & ~FL_WATERJUMP; + sv_player->v.teleport_time = 0; + } + sv_player->v.velocity[0] = sv_player->v.movedir[0]; + sv_player->v.velocity[1] = sv_player->v.movedir[1]; +} + +/* +=================== +SV_NoclipMove -- johnfitz + +new, alternate noclip. old noclip is still handled in SV_AirMove +=================== +*/ +void SV_NoclipMove (void) +{ + AngleVectors (sv_player->v.v_angle, forward, right, up); + + velocity[0] = forward[0]*cmd.forwardmove + right[0]*cmd.sidemove; + velocity[1] = forward[1]*cmd.forwardmove + right[1]*cmd.sidemove; + velocity[2] = forward[2]*cmd.forwardmove + right[2]*cmd.sidemove; + velocity[2] += cmd.upmove*2; //doubled to match running speed + + if (Length (velocity) > sv_maxspeed.value) + { + VectorNormalize (velocity); + VectorScale (velocity, sv_maxspeed.value, velocity); + } +} + +/* +=================== +SV_AirMove +=================== +*/ +void SV_AirMove (void) +{ + int i; + vec3_t wishvel; + float fmove, smove; + + AngleVectors (sv_player->v.angles, forward, right, up); + + fmove = cmd.forwardmove; + smove = cmd.sidemove; + +// hack to not let you back into teleporter + if (sv.time < sv_player->v.teleport_time && fmove < 0) + fmove = 0; + + for (i=0 ; i<3 ; i++) + wishvel[i] = forward[i]*fmove + right[i]*smove; + + if ( (int)sv_player->v.movetype != MOVETYPE_WALK) + wishvel[2] = cmd.upmove; + else + wishvel[2] = 0; + + VectorCopy (wishvel, wishdir); + wishspeed = VectorNormalize(wishdir); + if (wishspeed > sv_maxspeed.value) + { + VectorScale (wishvel, sv_maxspeed.value/wishspeed, wishvel); + wishspeed = sv_maxspeed.value; + } + + if ( sv_player->v.movetype == MOVETYPE_NOCLIP) + { // noclip + VectorCopy (wishvel, velocity); + } + else if ( onground ) + { + SV_UserFriction (); + SV_Accelerate (); + } + else + { // not on ground, so little effect on velocity + SV_AirAccelerate (wishvel); + } +} + +/* +=================== +SV_ClientThink + +the move fields specify an intended velocity in pix/sec +the angle fields specify an exact angular motion in degrees +=================== +*/ +void SV_ClientThink (void) +{ + vec3_t v_angle; + + if (sv_player->v.movetype == MOVETYPE_NONE) + return; + + onground = (int)sv_player->v.flags & FL_ONGROUND; + + origin = sv_player->v.origin; + velocity = sv_player->v.velocity; + + DropPunchAngle (); + +// +// if dead, behave differently +// + if (sv_player->v.health <= 0) + return; + +// +// angles +// show 1/3 the pitch angle and all the roll angle + cmd = host_client->cmd; + angles = sv_player->v.angles; + + VectorAdd (sv_player->v.v_angle, sv_player->v.punchangle, v_angle); + angles[ROLL] = V_CalcRoll (sv_player->v.angles, sv_player->v.velocity)*4; + if (!sv_player->v.fixangle) + { + angles[PITCH] = -v_angle[PITCH]/3; + angles[YAW] = v_angle[YAW]; + } + + if ( (int)sv_player->v.flags & FL_WATERJUMP ) + { + SV_WaterJump (); + return; + } +// +// walk +// + //johnfitz -- alternate noclip + if (sv_player->v.movetype == MOVETYPE_NOCLIP && sv_altnoclip.value) + SV_NoclipMove (); + else if (sv_player->v.waterlevel >= 2 && sv_player->v.movetype != MOVETYPE_NOCLIP) + SV_WaterMove (); + else + SV_AirMove (); + //johnfitz +} + + +/* +=================== +SV_ReadClientMove +=================== +*/ +void SV_ReadClientMove (usercmd_t *move) +{ + int i; + vec3_t angle; + int bits; + +// read ping time + host_client->ping_times[host_client->num_pings%NUM_PING_TIMES] + = sv.time - MSG_ReadFloat (); + host_client->num_pings++; + +// read current angles + for (i=0 ; i<3 ; i++) + //johnfitz -- 16-bit angles for PROTOCOL_FITZQUAKE + if (sv.protocol == PROTOCOL_NETQUAKE) + angle[i] = MSG_ReadAngle (); + else + angle[i] = MSG_ReadAngle16 (); + //johnfitz + + VectorCopy (angle, host_client->edict->v.v_angle); + +// read movement + move->forwardmove = MSG_ReadShort (); + move->sidemove = MSG_ReadShort (); + move->upmove = MSG_ReadShort (); + +// read buttons + bits = MSG_ReadByte (); + host_client->edict->v.button0 = bits & 1; + host_client->edict->v.button2 = (bits & 2)>>1; + + i = MSG_ReadByte (); + if (i) + host_client->edict->v.impulse = i; +} + +/* +=================== +SV_ReadClientMessage + +Returns false if the client should be killed +=================== +*/ +qboolean SV_ReadClientMessage (void) +{ + int ret; + int cmd; + char *s; + + do + { +nextmsg: + ret = NET_GetMessage (host_client->netconnection); + if (ret == -1) + { + Sys_Printf ("SV_ReadClientMessage: NET_GetMessage failed\n"); + return false; + } + if (!ret) + return true; + + MSG_BeginReading (); + + while (1) + { + if (!host_client->active) + return false; // a command caused an error + + if (msg_badread) + { + Sys_Printf ("SV_ReadClientMessage: badread\n"); + return false; + } + + cmd = MSG_ReadChar (); + + switch (cmd) + { + case -1: + goto nextmsg; // end of message + + default: + Sys_Printf ("SV_ReadClientMessage: unknown command char\n"); + return false; + + case clc_nop: +// Sys_Printf ("clc_nop\n"); + break; + + case clc_stringcmd: + s = MSG_ReadString (); + if (host_client->privileged) + ret = 2; + else + ret = 0; + if (Q_strncasecmp(s, "status", 6) == 0) + ret = 1; + else if (Q_strncasecmp(s, "god", 3) == 0) + ret = 1; + else if (Q_strncasecmp(s, "notarget", 8) == 0) + ret = 1; + else if (Q_strncasecmp(s, "fly", 3) == 0) + ret = 1; + else if (Q_strncasecmp(s, "name", 4) == 0) + ret = 1; + else if (Q_strncasecmp(s, "noclip", 6) == 0) + ret = 1; + else if (Q_strncasecmp(s, "say", 3) == 0) + ret = 1; + else if (Q_strncasecmp(s, "say_team", 8) == 0) + ret = 1; + else if (Q_strncasecmp(s, "tell", 4) == 0) + ret = 1; + else if (Q_strncasecmp(s, "color", 5) == 0) + ret = 1; + else if (Q_strncasecmp(s, "kill", 4) == 0) + ret = 1; + else if (Q_strncasecmp(s, "pause", 5) == 0) + ret = 1; + else if (Q_strncasecmp(s, "spawn", 5) == 0) + ret = 1; + else if (Q_strncasecmp(s, "begin", 5) == 0) + ret = 1; + else if (Q_strncasecmp(s, "prespawn", 8) == 0) + ret = 1; + else if (Q_strncasecmp(s, "kick", 4) == 0) + ret = 1; + else if (Q_strncasecmp(s, "ping", 4) == 0) + ret = 1; + else if (Q_strncasecmp(s, "give", 4) == 0) + ret = 1; + else if (Q_strncasecmp(s, "ban", 3) == 0) + ret = 1; + if (ret == 2) + Cbuf_InsertText (s); + else if (ret == 1) + Cmd_ExecuteString (s, src_client); + else + Con_DPrintf("%s tried to %s\n", host_client->name, s); + break; + + case clc_disconnect: +// Sys_Printf ("SV_ReadClientMessage: client disconnected\n"); + return false; + + case clc_move: + SV_ReadClientMove (&host_client->cmd); + break; + } + } + } while (ret == 1); + + return true; +} + + +/* +================== +SV_RunClients +================== +*/ +void SV_RunClients (void) +{ + int i; + + for (i=0, host_client = svs.clients ; iactive) + continue; + + sv_player = host_client->edict; + + if (!SV_ReadClientMessage ()) + { + SV_DropClient (false); // client misbehaved... + continue; + } + + if (!host_client->spawned) + { + // clear client movement until a new packet is received + memset (&host_client->cmd, 0, sizeof(host_client->cmd)); + continue; + } + +// always pause in single player if in console or menus + if (!sv.paused && (svs.maxclients > 1 || key_dest == key_game) ) + SV_ClientThink (); + } +} + diff --git a/quakespasm/Quake/sys.h b/quakespasm/Quake/sys.h new file mode 100644 index 00000000..dbc566b1 --- /dev/null +++ b/quakespasm/Quake/sys.h @@ -0,0 +1,69 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// sys.h -- non-portable functions + +// +// file IO +// + +// returns the file size +// return -1 if file is not present +// the file should be in BINARY mode for stupid OSs that care +int Sys_FileOpenRead (char *path, int *hndl); + +int Sys_FileOpenWrite (char *path); +void Sys_FileClose (int handle); +void Sys_FileSeek (int handle, int position); +int Sys_FileRead (int handle, void *dest, int count); +int Sys_FileWrite (int handle, void *data, int count); +int Sys_FileTime (char *path); +void Sys_mkdir (char *path); + +// +// memory protection +// +void Sys_MakeCodeWriteable (unsigned long startaddr, unsigned long length); + +// +// system IO +// +void Sys_DebugLog(char *file, char *fmt, ...); + +void Sys_Error (char *error, ...); +// an error will cause the entire program to exit + +void Sys_Printf (char *fmt, ...); +// send text to the console + +void Sys_Quit (void); + +double Sys_FloatTime (void); + +char *Sys_ConsoleInput (void); + +void Sys_Sleep (void); +// called to yield for a little bit so as +// not to hog cpu when paused or debugging + +void Sys_SendKeyEvents (void); +// Perform Key_Event () callbacks until the input que is empty + + diff --git a/quakespasm/Quake/sys_sdl.c b/quakespasm/Quake/sys_sdl.c new file mode 100644 index 00000000..3f4a3754 --- /dev/null +++ b/quakespasm/Quake/sys_sdl.c @@ -0,0 +1,282 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2005 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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 "quakedef.h" +#include "errno.h" + +#define CONSOLE_ERROR_TIMEOUT 60.0 // # of seconds to wait on Sys_Error running +qboolean isDedicated; +static qboolean sc_return_on_enter = false; + +#define MAX_HANDLES 32 //johnfitz -- was 10 +FILE *sys_handles[MAX_HANDLES]; + +int findhandle (void) +{ + int i; + + for (i=1 ; i width if displayed in a window + unsigned width; + unsigned height; + float aspect; // width / height -- < 0 is taller than wide + int numpages; + int recalc_refdef; // if true, recalc vid-based stuff + pixel_t *conbuffer; + int conrowbytes; + unsigned conwidth; + unsigned conheight; + int maxwarpwidth; + int maxwarpheight; + pixel_t *direct; // direct drawing to framebuffer, if not + // NULL + int type; // kristian +} viddef_t; + +extern viddef_t vid; // global video state +//extern unsigned short d_8to16table[256]; //johnfitz -- never used +extern void (*vid_menudrawfn)(void); +extern void (*vid_menukeyfn)(int key); +extern void (*vid_menucmdfn)(void); //johnfitz + +//johnfitz -- deleted VID_SetPalette and VID_ShiftPalette + +void VID_Init (void); //johnfitz -- removed palette from argument list + +void VID_Shutdown (void); +// Called at shutdown + +void VID_Update (vrect_t *rects); +// flushes the given rectangles from the view buffer to the screen + +int VID_SetMode (int modenum); //johnfitz -- removed palette from argument list +// sets the mode; only used by the Quake engine for resetting to mode 0 (the +// base mode) on memory allocation failures diff --git a/quakespasm/Quake/view.c b/quakespasm/Quake/view.c new file mode 100644 index 00000000..13503566 --- /dev/null +++ b/quakespasm/Quake/view.c @@ -0,0 +1,920 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// view.c -- player eye positioning + +#include "quakedef.h" + +/* + +The view is allowed to move slightly from it's true position for bobbing, +but if it exceeds 8 pixels linear distance (spherical, not box), the list of +entities sent from the server may not include everything in the pvs, especially +when crossing a water boudnary. + +*/ + +cvar_t scr_ofsx = {"scr_ofsx","0", false}; +cvar_t scr_ofsy = {"scr_ofsy","0", false}; +cvar_t scr_ofsz = {"scr_ofsz","0", false}; + +cvar_t cl_rollspeed = {"cl_rollspeed", "200"}; +cvar_t cl_rollangle = {"cl_rollangle", "2.0"}; + +cvar_t cl_bob = {"cl_bob","0.02", false}; +cvar_t cl_bobcycle = {"cl_bobcycle","0.6", false}; +cvar_t cl_bobup = {"cl_bobup","0.5", false}; + +cvar_t v_kicktime = {"v_kicktime", "0.5", false}; +cvar_t v_kickroll = {"v_kickroll", "0.6", false}; +cvar_t v_kickpitch = {"v_kickpitch", "0.6", false}; +cvar_t v_gunkick = {"v_gunkick", "1"}; //johnfitz + +cvar_t v_iyaw_cycle = {"v_iyaw_cycle", "2", false}; +cvar_t v_iroll_cycle = {"v_iroll_cycle", "0.5", false}; +cvar_t v_ipitch_cycle = {"v_ipitch_cycle", "1", false}; +cvar_t v_iyaw_level = {"v_iyaw_level", "0.3", false}; +cvar_t v_iroll_level = {"v_iroll_level", "0.1", false}; +cvar_t v_ipitch_level = {"v_ipitch_level", "0.3", false}; + +cvar_t v_idlescale = {"v_idlescale", "0", false}; + +cvar_t crosshair = {"crosshair", "0", true}; + +cvar_t gl_cshiftpercent = {"gl_cshiftpercent", "100", false}; + +float v_dmg_time, v_dmg_roll, v_dmg_pitch; + +extern int in_forward, in_forward2, in_back; + +vec3_t v_punchangles[2]; //johnfitz -- copied from cl.punchangle. 0 is current, 1 is previous value. never the same unless map just loaded + +/* +=============== +V_CalcRoll + +Used by view and sv_user +=============== +*/ +vec3_t forward, right, up; + +float V_CalcRoll (vec3_t angles, vec3_t velocity) +{ + float sign; + float side; + float value; + + AngleVectors (angles, forward, right, up); + side = DotProduct (velocity, right); + sign = side < 0 ? -1 : 1; + side = fabs(side); + + value = cl_rollangle.value; +// if (cl.inwater) +// value *= 6; + + if (side < cl_rollspeed.value) + side = side * value / cl_rollspeed.value; + else + side = value; + + return side*sign; + +} + + +/* +=============== +V_CalcBob + +=============== +*/ +float V_CalcBob (void) +{ + float bob; + float cycle; + + cycle = cl.time - (int)(cl.time/cl_bobcycle.value)*cl_bobcycle.value; + cycle /= cl_bobcycle.value; + if (cycle < cl_bobup.value) + cycle = M_PI * cycle / cl_bobup.value; + else + cycle = M_PI + M_PI*(cycle-cl_bobup.value)/(1.0 - cl_bobup.value); + +// bob is proportional to velocity in the xy plane +// (don't count Z, or jumping messes it up) + + bob = sqrt(cl.velocity[0]*cl.velocity[0] + cl.velocity[1]*cl.velocity[1]) * cl_bob.value; +//Con_Printf ("speed: %5.1f\n", Length(cl.velocity)); + bob = bob*0.3 + bob*0.7*sin(cycle); + if (bob > 4) + bob = 4; + else if (bob < -7) + bob = -7; + return bob; + +} + + +//============================================================================= + + +cvar_t v_centermove = {"v_centermove", "0.15", false}; +cvar_t v_centerspeed = {"v_centerspeed","500"}; + + +void V_StartPitchDrift (void) +{ +#if 1 + if (cl.laststop == cl.time) + { + return; // something else is keeping it from drifting + } +#endif + if (cl.nodrift || !cl.pitchvel) + { + cl.pitchvel = v_centerspeed.value; + cl.nodrift = false; + cl.driftmove = 0; + } +} + +void V_StopPitchDrift (void) +{ + cl.laststop = cl.time; + cl.nodrift = true; + cl.pitchvel = 0; +} + +/* +=============== +V_DriftPitch + +Moves the client pitch angle towards cl.idealpitch sent by the server. + +If the user is adjusting pitch manually, either with lookup/lookdown, +mlook and mouse, or klook and keyboard, pitch drifting is constantly stopped. + +Drifting is enabled when the center view key is hit, mlook is released and +lookspring is non 0, or when +=============== +*/ +void V_DriftPitch (void) +{ + float delta, move; + + if (noclip_anglehack || !cl.onground || cls.demoplayback ) + //FIXME: noclip_anglehack is set on the server, so in a nonlocal game this won't work. + { + cl.driftmove = 0; + cl.pitchvel = 0; + return; + } + +// don't count small mouse motion + if (cl.nodrift) + { + if ( fabs(cl.cmd.forwardmove) < cl_forwardspeed.value) + cl.driftmove = 0; + else + cl.driftmove += host_frametime; + + if ( cl.driftmove > v_centermove.value) + { + V_StartPitchDrift (); + } + return; + } + + delta = cl.idealpitch - cl.viewangles[PITCH]; + + if (!delta) + { + cl.pitchvel = 0; + return; + } + + move = host_frametime * cl.pitchvel; + cl.pitchvel += host_frametime * v_centerspeed.value; + +//Con_Printf ("move: %f (%f)\n", move, host_frametime); + + if (delta > 0) + { + if (move > delta) + { + cl.pitchvel = 0; + move = delta; + } + cl.viewangles[PITCH] += move; + } + else if (delta < 0) + { + if (move > -delta) + { + cl.pitchvel = 0; + move = -delta; + } + cl.viewangles[PITCH] -= move; + } +} + +/* +============================================================================== + + VIEW BLENDING + +============================================================================== +*/ + +cshift_t cshift_empty = { {130,80,50}, 0 }; +cshift_t cshift_water = { {130,80,50}, 128 }; +cshift_t cshift_slime = { {0,25,5}, 150 }; +cshift_t cshift_lava = { {255,80,0}, 150 }; + +float v_blend[4]; // rgba 0.0 - 1.0 + +//johnfitz -- deleted BuildGammaTable(), V_CheckGamma(), gammatable[], and ramps[][] + +/* +=============== +V_ParseDamage +=============== +*/ +void V_ParseDamage (void) +{ + int armor, blood; + vec3_t from; + int i; + vec3_t forward, right, up; + entity_t *ent; + float side; + float count; + + armor = MSG_ReadByte (); + blood = MSG_ReadByte (); + for (i=0 ; i<3 ; i++) + from[i] = MSG_ReadCoord (); + + count = blood*0.5 + armor*0.5; + if (count < 10) + count = 10; + + cl.faceanimtime = cl.time + 0.2; // but sbar face into pain frame + + cl.cshifts[CSHIFT_DAMAGE].percent += 3*count; + if (cl.cshifts[CSHIFT_DAMAGE].percent < 0) + cl.cshifts[CSHIFT_DAMAGE].percent = 0; + if (cl.cshifts[CSHIFT_DAMAGE].percent > 150) + cl.cshifts[CSHIFT_DAMAGE].percent = 150; + + if (armor > blood) + { + cl.cshifts[CSHIFT_DAMAGE].destcolor[0] = 200; + cl.cshifts[CSHIFT_DAMAGE].destcolor[1] = 100; + cl.cshifts[CSHIFT_DAMAGE].destcolor[2] = 100; + } + else if (armor) + { + cl.cshifts[CSHIFT_DAMAGE].destcolor[0] = 220; + cl.cshifts[CSHIFT_DAMAGE].destcolor[1] = 50; + cl.cshifts[CSHIFT_DAMAGE].destcolor[2] = 50; + } + else + { + cl.cshifts[CSHIFT_DAMAGE].destcolor[0] = 255; + cl.cshifts[CSHIFT_DAMAGE].destcolor[1] = 0; + cl.cshifts[CSHIFT_DAMAGE].destcolor[2] = 0; + } + +// +// calculate view angle kicks +// + ent = &cl_entities[cl.viewentity]; + + VectorSubtract (from, ent->origin, from); + VectorNormalize (from); + + AngleVectors (ent->angles, forward, right, up); + + side = DotProduct (from, right); + v_dmg_roll = count*side*v_kickroll.value; + + side = DotProduct (from, forward); + v_dmg_pitch = count*side*v_kickpitch.value; + + v_dmg_time = v_kicktime.value; +} + + +/* +================== +V_cshift_f +================== +*/ +void V_cshift_f (void) +{ + cshift_empty.destcolor[0] = atoi(Cmd_Argv(1)); + cshift_empty.destcolor[1] = atoi(Cmd_Argv(2)); + cshift_empty.destcolor[2] = atoi(Cmd_Argv(3)); + cshift_empty.percent = atoi(Cmd_Argv(4)); +} + + +/* +================== +V_BonusFlash_f + +When you run over an item, the server sends this command +================== +*/ +void V_BonusFlash_f (void) +{ + cl.cshifts[CSHIFT_BONUS].destcolor[0] = 215; + cl.cshifts[CSHIFT_BONUS].destcolor[1] = 186; + cl.cshifts[CSHIFT_BONUS].destcolor[2] = 69; + cl.cshifts[CSHIFT_BONUS].percent = 50; +} + +/* +============= +V_SetContentsColor + +Underwater, lava, etc each has a color shift +============= +*/ +void V_SetContentsColor (int contents) +{ + switch (contents) + { + case CONTENTS_EMPTY: + case CONTENTS_SOLID: + case CONTENTS_SKY: //johnfitz -- no blend in sky + cl.cshifts[CSHIFT_CONTENTS] = cshift_empty; + break; + case CONTENTS_LAVA: + cl.cshifts[CSHIFT_CONTENTS] = cshift_lava; + break; + case CONTENTS_SLIME: + cl.cshifts[CSHIFT_CONTENTS] = cshift_slime; + break; + default: + cl.cshifts[CSHIFT_CONTENTS] = cshift_water; + } +} + +/* +============= +V_CalcPowerupCshift +============= +*/ +void V_CalcPowerupCshift (void) +{ + if (cl.items & IT_QUAD) + { + cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 0; + cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 0; + cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 255; + cl.cshifts[CSHIFT_POWERUP].percent = 30; + } + else if (cl.items & IT_SUIT) + { + cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 0; + cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 255; + cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 0; + cl.cshifts[CSHIFT_POWERUP].percent = 20; + } + else if (cl.items & IT_INVISIBILITY) + { + cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 100; + cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 100; + cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 100; + cl.cshifts[CSHIFT_POWERUP].percent = 100; + } + else if (cl.items & IT_INVULNERABILITY) + { + cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 255; + cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 255; + cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 0; + cl.cshifts[CSHIFT_POWERUP].percent = 30; + } + else + cl.cshifts[CSHIFT_POWERUP].percent = 0; +} + +/* +============= +V_CalcBlend +============= +*/ +void V_CalcBlend (void) +{ + float r, g, b, a, a2; + int j; + + r = 0; + g = 0; + b = 0; + a = 0; + + for (j=0 ; j 1) + v_blend[3] = 1; + if (v_blend[3] < 0) + v_blend[3] = 0; +} + +/* +============= +V_UpdateBlend -- johnfitz -- V_UpdatePalette cleaned up and renamed +============= +*/ +void V_UpdateBlend (void) +{ + int i, j; + qboolean blend_changed; + + V_CalcPowerupCshift (); + + blend_changed = false; + + for (i=0 ; i 180) + a -= 360; + return a; +} + +/* +================== +CalcGunAngle +================== +*/ +void CalcGunAngle (void) +{ + float yaw, pitch, move; + static float oldyaw = 0; + static float oldpitch = 0; + + yaw = r_refdef.viewangles[YAW]; + pitch = -r_refdef.viewangles[PITCH]; + + yaw = angledelta(yaw - r_refdef.viewangles[YAW]) * 0.4; + if (yaw > 10) + yaw = 10; + if (yaw < -10) + yaw = -10; + pitch = angledelta(-pitch - r_refdef.viewangles[PITCH]) * 0.4; + if (pitch > 10) + pitch = 10; + if (pitch < -10) + pitch = -10; + move = host_frametime*20; + if (yaw > oldyaw) + { + if (oldyaw + move < yaw) + yaw = oldyaw + move; + } + else + { + if (oldyaw - move > yaw) + yaw = oldyaw - move; + } + + if (pitch > oldpitch) + { + if (oldpitch + move < pitch) + pitch = oldpitch + move; + } + else + { + if (oldpitch - move > pitch) + pitch = oldpitch - move; + } + + oldyaw = yaw; + oldpitch = pitch; + + cl.viewent.angles[YAW] = r_refdef.viewangles[YAW] + yaw; + cl.viewent.angles[PITCH] = - (r_refdef.viewangles[PITCH] + pitch); + + cl.viewent.angles[ROLL] -= v_idlescale.value * sin(cl.time*v_iroll_cycle.value) * v_iroll_level.value; + cl.viewent.angles[PITCH] -= v_idlescale.value * sin(cl.time*v_ipitch_cycle.value) * v_ipitch_level.value; + cl.viewent.angles[YAW] -= v_idlescale.value * sin(cl.time*v_iyaw_cycle.value) * v_iyaw_level.value; +} + +/* +============== +V_BoundOffsets +============== +*/ +void V_BoundOffsets (void) +{ + entity_t *ent; + + ent = &cl_entities[cl.viewentity]; + +// absolutely bound refresh reletive to entity clipping hull +// so the view can never be inside a solid wall + + if (r_refdef.vieworg[0] < ent->origin[0] - 14) + r_refdef.vieworg[0] = ent->origin[0] - 14; + else if (r_refdef.vieworg[0] > ent->origin[0] + 14) + r_refdef.vieworg[0] = ent->origin[0] + 14; + if (r_refdef.vieworg[1] < ent->origin[1] - 14) + r_refdef.vieworg[1] = ent->origin[1] - 14; + else if (r_refdef.vieworg[1] > ent->origin[1] + 14) + r_refdef.vieworg[1] = ent->origin[1] + 14; + if (r_refdef.vieworg[2] < ent->origin[2] - 22) + r_refdef.vieworg[2] = ent->origin[2] - 22; + else if (r_refdef.vieworg[2] > ent->origin[2] + 30) + r_refdef.vieworg[2] = ent->origin[2] + 30; +} + +/* +============== +V_AddIdle + +Idle swaying +============== +*/ +void V_AddIdle (void) +{ + r_refdef.viewangles[ROLL] += v_idlescale.value * sin(cl.time*v_iroll_cycle.value) * v_iroll_level.value; + r_refdef.viewangles[PITCH] += v_idlescale.value * sin(cl.time*v_ipitch_cycle.value) * v_ipitch_level.value; + r_refdef.viewangles[YAW] += v_idlescale.value * sin(cl.time*v_iyaw_cycle.value) * v_iyaw_level.value; +} + + +/* +============== +V_CalcViewRoll + +Roll is induced by movement and damage +============== +*/ +void V_CalcViewRoll (void) +{ + float side; + + side = V_CalcRoll (cl_entities[cl.viewentity].angles, cl.velocity); + r_refdef.viewangles[ROLL] += side; + + if (v_dmg_time > 0) + { + r_refdef.viewangles[ROLL] += v_dmg_time/v_kicktime.value*v_dmg_roll; + r_refdef.viewangles[PITCH] += v_dmg_time/v_kicktime.value*v_dmg_pitch; + v_dmg_time -= host_frametime; + } + + if (cl.stats[STAT_HEALTH] <= 0) + { + r_refdef.viewangles[ROLL] = 80; // dead view angle + return; + } + +} + +/* +================== +V_CalcIntermissionRefdef + +================== +*/ +void V_CalcIntermissionRefdef (void) +{ + entity_t *ent, *view; + float old; + +// ent is the player model (visible when out of body) + ent = &cl_entities[cl.viewentity]; +// view is the weapon model (only visible from inside body) + view = &cl.viewent; + + VectorCopy (ent->origin, r_refdef.vieworg); + VectorCopy (ent->angles, r_refdef.viewangles); + view->model = NULL; + +// allways idle in intermission + old = v_idlescale.value; + v_idlescale.value = 1; + V_AddIdle (); + v_idlescale.value = old; +} + +/* +================== +V_CalcRefdef +================== +*/ +void V_CalcRefdef (void) +{ + entity_t *ent, *view; + int i; + vec3_t forward, right, up; + vec3_t angles; + float bob; + static float oldz = 0; + static vec3_t punch = {0,0,0}; //johnfitz -- v_gunkick + float delta; //johnfitz -- v_gunkick + + V_DriftPitch (); + +// ent is the player model (visible when out of body) + ent = &cl_entities[cl.viewentity]; +// view is the weapon model (only visible from inside body) + view = &cl.viewent; + + +// transform the view offset by the model's matrix to get the offset from +// model origin for the view + ent->angles[YAW] = cl.viewangles[YAW]; // the model should face the view dir + ent->angles[PITCH] = -cl.viewangles[PITCH]; // the model should face the view dir + + bob = V_CalcBob (); + +// refresh position + VectorCopy (ent->origin, r_refdef.vieworg); + r_refdef.vieworg[2] += cl.viewheight + bob; + +// never let it sit exactly on a node line, because a water plane can +// dissapear when viewed with the eye exactly on it. +// the server protocol only specifies to 1/16 pixel, so add 1/32 in each axis + r_refdef.vieworg[0] += 1.0/32; + r_refdef.vieworg[1] += 1.0/32; + r_refdef.vieworg[2] += 1.0/32; + + VectorCopy (cl.viewangles, r_refdef.viewangles); + V_CalcViewRoll (); + V_AddIdle (); + +// offsets + angles[PITCH] = -ent->angles[PITCH]; // because entity pitches are actually backward + angles[YAW] = ent->angles[YAW]; + angles[ROLL] = ent->angles[ROLL]; + + AngleVectors (angles, forward, right, up); + + if (cl.maxclients <= 1) //johnfitz -- moved cheat-protection here from V_RenderView + for (i=0 ; i<3 ; i++) + r_refdef.vieworg[i] += scr_ofsx.value*forward[i] + scr_ofsy.value*right[i] + scr_ofsz.value*up[i]; + + V_BoundOffsets (); + +// set up gun position + VectorCopy (cl.viewangles, view->angles); + + CalcGunAngle (); + + VectorCopy (ent->origin, view->origin); + view->origin[2] += cl.viewheight; + + for (i=0 ; i<3 ; i++) + view->origin[i] += forward[i]*bob*0.4; + view->origin[2] += bob; + + //johnfitz -- removed all gun position fudging code (was used to keep gun from getting covered by sbar) + + view->model = cl.model_precache[cl.stats[STAT_WEAPON]]; + view->frame = cl.stats[STAT_WEAPONFRAME]; + view->colormap = vid.colormap; + +//johnfitz -- v_gunkick + if (v_gunkick.value == 1) //original quake kick + VectorAdd (r_refdef.viewangles, cl.punchangle, r_refdef.viewangles); + if (v_gunkick.value == 2) //lerped kick + { + for (i=0; i<3; i++) + if (punch[i] != v_punchangles[0][i]) + { + //speed determined by how far we need to lerp in 1/10th of a second + delta = (v_punchangles[0][i]-v_punchangles[1][i]) * host_frametime * 10; + + if (delta > 0) + punch[i] = min(punch[i]+delta, v_punchangles[0][i]); + else if (delta < 0) + punch[i] = max(punch[i]+delta, v_punchangles[0][i]); + } + + VectorAdd (r_refdef.viewangles, punch, r_refdef.viewangles); + } +//johnfitz + +// smooth out stair step ups + if (!noclip_anglehack && cl.onground && ent->origin[2] - oldz > 0) //johnfitz -- added exception for noclip + //FIXME: noclip_anglehack is set on the server, so in a nonlocal game this won't work. + { + float steptime; + + steptime = cl.time - cl.oldtime; + if (steptime < 0) + //FIXME I_Error ("steptime < 0"); + steptime = 0; + + oldz += steptime * 80; + if (oldz > ent->origin[2]) + oldz = ent->origin[2]; + if (ent->origin[2] - oldz > 12) + oldz = ent->origin[2] - 12; + r_refdef.vieworg[2] += oldz - ent->origin[2]; + view->origin[2] += oldz - ent->origin[2]; + } + else + oldz = ent->origin[2]; + + if (chase_active.value) + Chase_UpdateForDrawing (); //johnfitz +} + +/* +================== +V_RenderView + +The player's clipping box goes from (-16 -16 -24) to (16 16 32) from +the entity origin, so any view position inside that will be valid +================== +*/ +extern vrect_t scr_vrect; + +void V_RenderView (void) +{ + if (con_forcedup) + return; + + if (cl.intermission) + V_CalcIntermissionRefdef (); + else if (!cl.paused /* && (cl.maxclients > 1 || key_dest == key_game) */) + V_CalcRefdef (); + + //johnfitz -- removed lcd code + + R_RenderView (); + + V_PolyBlend (); //johnfitz -- moved here from R_Renderview (); +} + +/* +============================================================================== + + INIT + +============================================================================== +*/ + +/* +============= +V_Init +============= +*/ +void V_Init (void) +{ + Cmd_AddCommand ("v_cshift", V_cshift_f); + Cmd_AddCommand ("bf", V_BonusFlash_f); + Cmd_AddCommand ("centerview", V_StartPitchDrift); + + Cvar_RegisterVariable (&v_centermove, NULL); + Cvar_RegisterVariable (&v_centerspeed, NULL); + + Cvar_RegisterVariable (&v_iyaw_cycle, NULL); + Cvar_RegisterVariable (&v_iroll_cycle, NULL); + Cvar_RegisterVariable (&v_ipitch_cycle, NULL); + Cvar_RegisterVariable (&v_iyaw_level, NULL); + Cvar_RegisterVariable (&v_iroll_level, NULL); + Cvar_RegisterVariable (&v_ipitch_level, NULL); + + Cvar_RegisterVariable (&v_idlescale, NULL); + Cvar_RegisterVariable (&crosshair, NULL); + Cvar_RegisterVariable (&gl_cshiftpercent, NULL); + + Cvar_RegisterVariable (&scr_ofsx, NULL); + Cvar_RegisterVariable (&scr_ofsy, NULL); + Cvar_RegisterVariable (&scr_ofsz, NULL); + Cvar_RegisterVariable (&cl_rollspeed, NULL); + Cvar_RegisterVariable (&cl_rollangle, NULL); + Cvar_RegisterVariable (&cl_bob, NULL); + Cvar_RegisterVariable (&cl_bobcycle, NULL); + Cvar_RegisterVariable (&cl_bobup, NULL); + + Cvar_RegisterVariable (&v_kicktime, NULL); + Cvar_RegisterVariable (&v_kickroll, NULL); + Cvar_RegisterVariable (&v_kickpitch, NULL); + Cvar_RegisterVariable (&v_gunkick, NULL); //johnfitz +} + + diff --git a/quakespasm/Quake/view.h b/quakespasm/Quake/view.h new file mode 100644 index 00000000..fae058b4 --- /dev/null +++ b/quakespasm/Quake/view.h @@ -0,0 +1,31 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// view.h + +extern cvar_t vid_gamma; + +extern float v_blend[4]; + +void V_Init (void); +void V_RenderView (void); +float V_CalcRoll (vec3_t angles, vec3_t velocity); +//void V_UpdatePalette (void); //johnfitz + diff --git a/quakespasm/Quake/wad.c b/quakespasm/Quake/wad.c new file mode 100644 index 00000000..7faeaf19 --- /dev/null +++ b/quakespasm/Quake/wad.c @@ -0,0 +1,168 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// wad.c + +#include "quakedef.h" + +int wad_numlumps; +lumpinfo_t *wad_lumps; +byte *wad_base = NULL; //johnfitz -- set to null + +void SwapPic (qpic_t *pic); + +/* +================== +W_CleanupName + +Lowercases name and pads with spaces and a terminating 0 to the length of +lumpinfo_t->name. +Used so lumpname lookups can proceed rapidly by comparing 4 chars at a time +Space padding is so names can be printed nicely in tables. +Can safely be performed in place. +================== +*/ +void W_CleanupName (char *in, char *out) +{ + int i; + int c; + + for (i=0 ; i<16 ; i++ ) + { + c = in[i]; + if (!c) + break; + + if (c >= 'A' && c <= 'Z') + c += ('a' - 'A'); + out[i] = c; + } + + for ( ; i< 16 ; i++ ) + out[i] = 0; +} + +/* +==================== +W_LoadWadFile +==================== +*/ +void W_LoadWadFile (void) //johnfitz -- filename is now hard-coded for honesty +{ + lumpinfo_t *lump_p; + wadinfo_t *header; + unsigned i; + int infotableofs; + char *filename = WADFILENAME; + + //johnfitz -- modified to use malloc + //TODO: use cache_alloc + int h, len; + + Draw_BeginDisc (); + free (wad_base); + len = COM_OpenFile (filename, &h); + if (h == -1) + Sys_Error ("W_LoadWadFile: couldn't load %s", filename); + wad_base = (unsigned char *)malloc (len); + Sys_FileRead (h, wad_base, len); + COM_CloseFile (h); + //johnfitz + + header = (wadinfo_t *)wad_base; + + if (header->identification[0] != 'W' || header->identification[1] != 'A' + || header->identification[2] != 'D' || header->identification[3] != '2') + Sys_Error ("Wad file %s doesn't have WAD2 id\n",filename); + + wad_numlumps = LittleLong(header->numlumps); + infotableofs = LittleLong(header->infotableofs); + wad_lumps = (lumpinfo_t *)(wad_base + infotableofs); + + for (i=0, lump_p = wad_lumps ; ifilepos = LittleLong(lump_p->filepos); + lump_p->size = LittleLong(lump_p->size); + W_CleanupName (lump_p->name, lump_p->name); + if (lump_p->type == TYP_QPIC) + SwapPic ( (qpic_t *)(wad_base + lump_p->filepos)); + } +} + + +/* +============= +W_GetLumpinfo +============= +*/ +lumpinfo_t *W_GetLumpinfo (char *name) +{ + int i; + lumpinfo_t *lump_p; + char clean[16]; + + W_CleanupName (name, clean); + + for (lump_p=wad_lumps, i=0 ; iname)) + return lump_p; + } + + Con_SafePrintf ("W_GetLumpinfo: %s not found\n", name); //johnfitz -- was Sys_Error + return NULL; +} + +void *W_GetLumpName (char *name) +{ + lumpinfo_t *lump; + + lump = W_GetLumpinfo (name); + + if (!lump) return NULL; //johnfitz + + return (void *)(wad_base + lump->filepos); +} + +void *W_GetLumpNum (int num) +{ + lumpinfo_t *lump; + + if (num < 0 || num > wad_numlumps) + Sys_Error ("W_GetLumpNum: bad number: %i", num); + + lump = wad_lumps + num; + + return (void *)(wad_base + lump->filepos); +} + +/* +============================================================================= + +automatic byte swapping + +============================================================================= +*/ + +void SwapPic (qpic_t *pic) +{ + pic->width = LittleLong(pic->width); + pic->height = LittleLong(pic->height); +} diff --git a/quakespasm/Quake/wad.h b/quakespasm/Quake/wad.h new file mode 100644 index 00000000..e94b0e88 --- /dev/null +++ b/quakespasm/Quake/wad.h @@ -0,0 +1,76 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// wad.h + +//=============== +// TYPES +//=============== + +#define CMP_NONE 0 +#define CMP_LZSS 1 + +#define TYP_NONE 0 +#define TYP_LABEL 1 + +#define TYP_LUMPY 64 // 64 + grab command number +#define TYP_PALETTE 64 +#define TYP_QTEX 65 +#define TYP_QPIC 66 +#define TYP_SOUND 67 +#define TYP_MIPTEX 68 + +#define WADFILENAME "gfx.wad" //johnfitz -- filename is now hard-coded for honesty + +typedef struct +{ + int width, height; + byte data[4]; // variably sized +} qpic_t; + +typedef struct +{ + char identification[4]; // should be WAD2 or 2DAW + int numlumps; + int infotableofs; +} wadinfo_t; + +typedef struct +{ + int filepos; + int disksize; + int size; // uncompressed + char type; + char compression; + char pad1, pad2; + char name[16]; // must be null terminated +} lumpinfo_t; + +extern int wad_numlumps; +extern lumpinfo_t *wad_lumps; +extern byte *wad_base; + +void W_LoadWadFile (void); //johnfitz -- filename is now hard-coded for honesty +void W_CleanupName (char *in, char *out); +lumpinfo_t *W_GetLumpinfo (char *name); +void *W_GetLumpName (char *name); +void *W_GetLumpNum (int num); + +void SwapPic (qpic_t *pic); diff --git a/quakespasm/Quake/world.c b/quakespasm/Quake/world.c new file mode 100644 index 00000000..68ff4daf --- /dev/null +++ b/quakespasm/Quake/world.c @@ -0,0 +1,899 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others +Copyright (C) 2007-2008 Kristian Duske + +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. + +*/ +// world.c -- world query functions + +#include "quakedef.h" + +/* + +entities never clip against themselves, or their owner + +line of sight checks trace->crosscontent, but bullets don't + +*/ + + +typedef struct +{ + vec3_t boxmins, boxmaxs;// enclose the test object along entire move + float *mins, *maxs; // size of the moving object + vec3_t mins2, maxs2; // size when clipping against mosnters + float *start, *end; + trace_t trace; + int type; + edict_t *passedict; +} moveclip_t; + + +int SV_HullPointContents (hull_t *hull, int num, vec3_t p); + +/* +=============================================================================== + +HULL BOXES + +=============================================================================== +*/ + + +static hull_t box_hull; +static mclipnode_t box_clipnodes[6]; //johnfitz -- was dclipnode_t +static mplane_t box_planes[6]; + +/* +=================== +SV_InitBoxHull + +Set up the planes and clipnodes so that the six floats of a bounding box +can just be stored out and get a proper hull_t structure. +=================== +*/ +void SV_InitBoxHull (void) +{ + int i; + int side; + + box_hull.clipnodes = box_clipnodes; + box_hull.planes = box_planes; + box_hull.firstclipnode = 0; + box_hull.lastclipnode = 5; + + for (i=0 ; i<6 ; i++) + { + box_clipnodes[i].planenum = i; + + side = i&1; + + box_clipnodes[i].children[side] = CONTENTS_EMPTY; + if (i != 5) + box_clipnodes[i].children[side^1] = i + 1; + else + box_clipnodes[i].children[side^1] = CONTENTS_SOLID; + + box_planes[i].type = i>>1; + box_planes[i].normal[i>>1] = 1; + } + +} + + +/* +=================== +SV_HullForBox + +To keep everything totally uniform, bounding boxes are turned into small +BSP trees instead of being compared directly. +=================== +*/ +hull_t *SV_HullForBox (vec3_t mins, vec3_t maxs) +{ + box_planes[0].dist = maxs[0]; + box_planes[1].dist = mins[0]; + box_planes[2].dist = maxs[1]; + box_planes[3].dist = mins[1]; + box_planes[4].dist = maxs[2]; + box_planes[5].dist = mins[2]; + + return &box_hull; +} + + + +/* +================ +SV_HullForEntity + +Returns a hull that can be used for testing or clipping an object of mins/maxs +size. +Offset is filled in to contain the adjustment that must be added to the +testing object's origin to get a point to use with the returned hull. +================ +*/ +hull_t *SV_HullForEntity (edict_t *ent, vec3_t mins, vec3_t maxs, vec3_t offset) +{ + model_t *model; + vec3_t size; + vec3_t hullmins, hullmaxs; + hull_t *hull; + +// decide which clipping hull to use, based on the size + if (ent->v.solid == SOLID_BSP) + { // explicit hulls in the BSP model + if (ent->v.movetype != MOVETYPE_PUSH) + Sys_Error ("SOLID_BSP without MOVETYPE_PUSH"); + + model = sv.models[ (int)ent->v.modelindex ]; + + if (!model || model->type != mod_brush) + Sys_Error ("MOVETYPE_PUSH with a non bsp model"); + + VectorSubtract (maxs, mins, size); + if (size[0] < 3) + hull = &model->hulls[0]; + else if (size[0] <= 32) + hull = &model->hulls[1]; + else + hull = &model->hulls[2]; + +// calculate an offset value to center the origin + VectorSubtract (hull->clip_mins, mins, offset); + VectorAdd (offset, ent->v.origin, offset); + } + else + { // create a temp hull from bounding box sizes + + VectorSubtract (ent->v.mins, maxs, hullmins); + VectorSubtract (ent->v.maxs, mins, hullmaxs); + hull = SV_HullForBox (hullmins, hullmaxs); + + VectorCopy (ent->v.origin, offset); + } + + + return hull; +} + +/* +=============================================================================== + +ENTITY AREA CHECKING + +=============================================================================== +*/ + +typedef struct areanode_s +{ + int axis; // -1 = leaf node + float dist; + struct areanode_s *children[2]; + link_t trigger_edicts; + link_t solid_edicts; +} areanode_t; + +#define AREA_DEPTH 4 +#define AREA_NODES 32 + +static areanode_t sv_areanodes[AREA_NODES]; +static int sv_numareanodes; + +/* +=============== +SV_CreateAreaNode + +=============== +*/ +areanode_t *SV_CreateAreaNode (int depth, vec3_t mins, vec3_t maxs) +{ + areanode_t *anode; + vec3_t size; + vec3_t mins1, maxs1, mins2, maxs2; + + anode = &sv_areanodes[sv_numareanodes]; + sv_numareanodes++; + + ClearLink (&anode->trigger_edicts); + ClearLink (&anode->solid_edicts); + + if (depth == AREA_DEPTH) + { + anode->axis = -1; + anode->children[0] = anode->children[1] = NULL; + return anode; + } + + VectorSubtract (maxs, mins, size); + if (size[0] > size[1]) + anode->axis = 0; + else + anode->axis = 1; + + anode->dist = 0.5 * (maxs[anode->axis] + mins[anode->axis]); + VectorCopy (mins, mins1); + VectorCopy (mins, mins2); + VectorCopy (maxs, maxs1); + VectorCopy (maxs, maxs2); + + maxs1[anode->axis] = mins2[anode->axis] = anode->dist; + + anode->children[0] = SV_CreateAreaNode (depth+1, mins2, maxs2); + anode->children[1] = SV_CreateAreaNode (depth+1, mins1, maxs1); + + return anode; +} + +/* +=============== +SV_ClearWorld + +=============== +*/ +void SV_ClearWorld (void) +{ + SV_InitBoxHull (); + + memset (sv_areanodes, 0, sizeof(sv_areanodes)); + sv_numareanodes = 0; + SV_CreateAreaNode (0, sv.worldmodel->mins, sv.worldmodel->maxs); +} + + +/* +=============== +SV_UnlinkEdict + +=============== +*/ +void SV_UnlinkEdict (edict_t *ent) +{ + if (!ent->area.prev) + return; // not linked in anywhere + RemoveLink (&ent->area); + ent->area.prev = ent->area.next = NULL; +} + + +/* +==================== +SV_TouchLinks +==================== +*/ +void SV_TouchLinks ( edict_t *ent, areanode_t *node ) +{ + link_t *l, *next; + edict_t *touch; + int old_self, old_other; + +// touch linked edicts + for (l = node->trigger_edicts.next ; l != &node->trigger_edicts ; l = next) + { + //johnfitz -- fixes a crash when a touch function deletes an entity which comes later in the list + if (!l) + { + Con_Printf ("SV_TouchLinks: null link\n"); + break; + } + //johnfitz + + next = l->next; + touch = EDICT_FROM_AREA(l); + if (touch == ent) + continue; + if (!touch->v.touch || touch->v.solid != SOLID_TRIGGER) + continue; + if (ent->v.absmin[0] > touch->v.absmax[0] + || ent->v.absmin[1] > touch->v.absmax[1] + || ent->v.absmin[2] > touch->v.absmax[2] + || ent->v.absmax[0] < touch->v.absmin[0] + || ent->v.absmax[1] < touch->v.absmin[1] + || ent->v.absmax[2] < touch->v.absmin[2] ) + continue; + old_self = pr_global_struct->self; + old_other = pr_global_struct->other; + + pr_global_struct->self = EDICT_TO_PROG(touch); + pr_global_struct->other = EDICT_TO_PROG(ent); + pr_global_struct->time = sv.time; + PR_ExecuteProgram (touch->v.touch); + + //johnfitz -- the PR_ExecuteProgram above can alter the linked edicts -- fix from tyrquake + if (next != l->next && l->next) + { + Con_Printf ("SV_TouchLinks: next != l->next\n"); + next = l->next; + } + //johnfitz + + pr_global_struct->self = old_self; + pr_global_struct->other = old_other; + } + +// recurse down both sides + if (node->axis == -1) + return; + + if ( ent->v.absmax[node->axis] > node->dist ) + SV_TouchLinks ( ent, node->children[0] ); + if ( ent->v.absmin[node->axis] < node->dist ) + SV_TouchLinks ( ent, node->children[1] ); +} + + +/* +=============== +SV_FindTouchedLeafs + +=============== +*/ +void SV_FindTouchedLeafs (edict_t *ent, mnode_t *node) +{ + mplane_t *splitplane; + mleaf_t *leaf; + int sides; + int leafnum; + + if (node->contents == CONTENTS_SOLID) + return; + +// add an efrag if the node is a leaf + + if ( node->contents < 0) + { + if (ent->num_leafs == MAX_ENT_LEAFS) + return; + + leaf = (mleaf_t *)node; + leafnum = leaf - sv.worldmodel->leafs - 1; + + ent->leafnums[ent->num_leafs] = leafnum; + ent->num_leafs++; + return; + } + +// NODE_MIXED + + splitplane = node->plane; + sides = BOX_ON_PLANE_SIDE(ent->v.absmin, ent->v.absmax, splitplane); + +// recurse down the contacted sides + if (sides & 1) + SV_FindTouchedLeafs (ent, node->children[0]); + + if (sides & 2) + SV_FindTouchedLeafs (ent, node->children[1]); +} + +/* +=============== +SV_LinkEdict + +=============== +*/ +void SV_LinkEdict (edict_t *ent, qboolean touch_triggers) +{ + areanode_t *node; + // model_t *mod = NULL; //johnfitz unused -- kristian + + if (ent->area.prev) + SV_UnlinkEdict (ent); // unlink from old position + + if (ent == sv.edicts) + return; // don't add the world + + if (ent->free) + return; + +// set the abs box + VectorAdd (ent->v.origin, ent->v.mins, ent->v.absmin); + VectorAdd (ent->v.origin, ent->v.maxs, ent->v.absmax); + +// +// to make items easier to pick up and allow them to be grabbed off +// of shelves, the abs sizes are expanded +// + if ((int)ent->v.flags & FL_ITEM) + { + ent->v.absmin[0] -= 15; + ent->v.absmin[1] -= 15; + ent->v.absmax[0] += 15; + ent->v.absmax[1] += 15; + } + else + { // because movement is clipped an epsilon away from an actual edge, + // we must fully check even when bounding boxes don't quite touch + ent->v.absmin[0] -= 1; + ent->v.absmin[1] -= 1; + ent->v.absmin[2] -= 1; + ent->v.absmax[0] += 1; + ent->v.absmax[1] += 1; + ent->v.absmax[2] += 1; + } + +// link to PVS leafs + ent->num_leafs = 0; + if (ent->v.modelindex) + SV_FindTouchedLeafs (ent, sv.worldmodel->nodes); + + if (ent->v.solid == SOLID_NOT) + return; + +// find the first node that the ent's box crosses + node = sv_areanodes; + while (1) + { + if (node->axis == -1) + break; + if (ent->v.absmin[node->axis] > node->dist) + node = node->children[0]; + else if (ent->v.absmax[node->axis] < node->dist) + node = node->children[1]; + else + break; // crosses the node + } + +// link it in + + if (ent->v.solid == SOLID_TRIGGER) + InsertLinkBefore (&ent->area, &node->trigger_edicts); + else + InsertLinkBefore (&ent->area, &node->solid_edicts); + +// if touch_triggers, touch all entities at this node and decend for more + if (touch_triggers) + SV_TouchLinks ( ent, sv_areanodes ); +} + + + +/* +=============================================================================== + +POINT TESTING IN HULLS + +=============================================================================== +*/ + +/* +================== +SV_HullPointContents + +================== +*/ +int SV_HullPointContents (hull_t *hull, int num, vec3_t p) +{ + float d; + mclipnode_t *node; //johnfitz -- was dclipnode_t + mplane_t *plane; + + while (num >= 0) + { + if (num < hull->firstclipnode || num > hull->lastclipnode) + Sys_Error ("SV_HullPointContents: bad node number"); + + node = hull->clipnodes + num; + plane = hull->planes + node->planenum; + + if (plane->type < 3) + d = p[plane->type] - plane->dist; + else + d = DotProduct (plane->normal, p) - plane->dist; + if (d < 0) + num = node->children[1]; + else + num = node->children[0]; + } + + return num; +} + + +/* +================== +SV_PointContents + +================== +*/ +int SV_PointContents (vec3_t p) +{ + int cont; + + cont = SV_HullPointContents (&sv.worldmodel->hulls[0], 0, p); + if (cont <= CONTENTS_CURRENT_0 && cont >= CONTENTS_CURRENT_DOWN) + cont = CONTENTS_WATER; + return cont; +} + +int SV_TruePointContents (vec3_t p) +{ + return SV_HullPointContents (&sv.worldmodel->hulls[0], 0, p); +} + +//=========================================================================== + +/* +============ +SV_TestEntityPosition + +This could be a lot more efficient... +============ +*/ +edict_t *SV_TestEntityPosition (edict_t *ent) +{ + trace_t trace; + + trace = SV_Move (ent->v.origin, ent->v.mins, ent->v.maxs, ent->v.origin, 0, ent); + + if (trace.startsolid) + return sv.edicts; + + return NULL; +} + + +/* +=============================================================================== + +LINE TESTING IN HULLS + +=============================================================================== +*/ + +// 1/32 epsilon to keep floating point happy +#define DIST_EPSILON (0.03125) + +/* +================== +SV_RecursiveHullCheck + +================== +*/ +qboolean SV_RecursiveHullCheck (hull_t *hull, int num, float p1f, float p2f, vec3_t p1, vec3_t p2, trace_t *trace) +{ + mclipnode_t *node; //johnfitz -- was dclipnode_t + mplane_t *plane; + float t1, t2; + float frac; + int i; + vec3_t mid; + int side; + float midf; + +// check for empty + if (num < 0) + { + if (num != CONTENTS_SOLID) + { + trace->allsolid = false; + if (num == CONTENTS_EMPTY) + trace->inopen = true; + else + trace->inwater = true; + } + else + trace->startsolid = true; + return true; // empty + } + + if (num < hull->firstclipnode || num > hull->lastclipnode) + Sys_Error ("SV_RecursiveHullCheck: bad node number"); + +// +// find the point distances +// + node = hull->clipnodes + num; + plane = hull->planes + node->planenum; + + if (plane->type < 3) + { + t1 = p1[plane->type] - plane->dist; + t2 = p2[plane->type] - plane->dist; + } + else + { + t1 = DotProduct (plane->normal, p1) - plane->dist; + t2 = DotProduct (plane->normal, p2) - plane->dist; + } + +#if 1 + if (t1 >= 0 && t2 >= 0) + return SV_RecursiveHullCheck (hull, node->children[0], p1f, p2f, p1, p2, trace); + if (t1 < 0 && t2 < 0) + return SV_RecursiveHullCheck (hull, node->children[1], p1f, p2f, p1, p2, trace); +#else + if ( (t1 >= DIST_EPSILON && t2 >= DIST_EPSILON) || (t2 > t1 && t1 >= 0) ) + return SV_RecursiveHullCheck (hull, node->children[0], p1f, p2f, p1, p2, trace); + if ( (t1 <= -DIST_EPSILON && t2 <= -DIST_EPSILON) || (t2 < t1 && t1 <= 0) ) + return SV_RecursiveHullCheck (hull, node->children[1], p1f, p2f, p1, p2, trace); +#endif + +// put the crosspoint DIST_EPSILON pixels on the near side + if (t1 < 0) + frac = (t1 + DIST_EPSILON)/(t1-t2); + else + frac = (t1 - DIST_EPSILON)/(t1-t2); + if (frac < 0) + frac = 0; + if (frac > 1) + frac = 1; + + midf = p1f + (p2f - p1f)*frac; + for (i=0 ; i<3 ; i++) + mid[i] = p1[i] + frac*(p2[i] - p1[i]); + + side = (t1 < 0); + +// move up to the node + if (!SV_RecursiveHullCheck (hull, node->children[side], p1f, midf, p1, mid, trace) ) + return false; + +#ifdef PARANOID + if (SV_HullPointContents (sv_hullmodel, mid, node->children[side]) + == CONTENTS_SOLID) + { + Con_Printf ("mid PointInHullSolid\n"); + return false; + } +#endif + + if (SV_HullPointContents (hull, node->children[side^1], mid) + != CONTENTS_SOLID) +// go past the node + return SV_RecursiveHullCheck (hull, node->children[side^1], midf, p2f, mid, p2, trace); + + if (trace->allsolid) + return false; // never got out of the solid area + +//================== +// the other side of the node is solid, this is the impact point +//================== + if (!side) + { + VectorCopy (plane->normal, trace->plane.normal); + trace->plane.dist = plane->dist; + } + else + { + VectorSubtract (vec3_origin, plane->normal, trace->plane.normal); + trace->plane.dist = -plane->dist; + } + + while (SV_HullPointContents (hull, hull->firstclipnode, mid) + == CONTENTS_SOLID) + { // shouldn't really happen, but does occasionally + frac -= 0.1; + if (frac < 0) + { + trace->fraction = midf; + VectorCopy (mid, trace->endpos); + Con_DPrintf ("backup past 0\n"); + return false; + } + midf = p1f + (p2f - p1f)*frac; + for (i=0 ; i<3 ; i++) + mid[i] = p1[i] + frac*(p2[i] - p1[i]); + } + + trace->fraction = midf; + VectorCopy (mid, trace->endpos); + + return false; +} + + +/* +================== +SV_ClipMoveToEntity + +Handles selection or creation of a clipping hull, and offseting (and +eventually rotation) of the end points +================== +*/ +trace_t SV_ClipMoveToEntity (edict_t *ent, vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end) +{ + trace_t trace; + vec3_t offset; + vec3_t start_l, end_l; + hull_t *hull; + +// fill in a default trace + memset (&trace, 0, sizeof(trace_t)); + trace.fraction = 1; + trace.allsolid = true; + VectorCopy (end, trace.endpos); + +// get the clipping hull + hull = SV_HullForEntity (ent, mins, maxs, offset); + + VectorSubtract (start, offset, start_l); + VectorSubtract (end, offset, end_l); + +// trace a line through the apropriate clipping hull + SV_RecursiveHullCheck (hull, hull->firstclipnode, 0, 1, start_l, end_l, &trace); + +// fix trace up by the offset + if (trace.fraction != 1) + VectorAdd (trace.endpos, offset, trace.endpos); + +// did we clip the move? + if (trace.fraction < 1 || trace.startsolid ) + trace.ent = ent; + + return trace; +} + +//=========================================================================== + +/* +==================== +SV_ClipToLinks + +Mins and maxs enclose the entire area swept by the move +==================== +*/ +void SV_ClipToLinks ( areanode_t *node, moveclip_t *clip ) +{ + link_t *l, *next; + edict_t *touch; + trace_t trace; + +// touch linked edicts + for (l = node->solid_edicts.next ; l != &node->solid_edicts ; l = next) + { + next = l->next; + touch = EDICT_FROM_AREA(l); + if (touch->v.solid == SOLID_NOT) + continue; + if (touch == clip->passedict) + continue; + if (touch->v.solid == SOLID_TRIGGER) + Sys_Error ("Trigger in clipping list"); + + if (clip->type == MOVE_NOMONSTERS && touch->v.solid != SOLID_BSP) + continue; + + if (clip->boxmins[0] > touch->v.absmax[0] + || clip->boxmins[1] > touch->v.absmax[1] + || clip->boxmins[2] > touch->v.absmax[2] + || clip->boxmaxs[0] < touch->v.absmin[0] + || clip->boxmaxs[1] < touch->v.absmin[1] + || clip->boxmaxs[2] < touch->v.absmin[2] ) + continue; + + if (clip->passedict && clip->passedict->v.size[0] && !touch->v.size[0]) + continue; // points never interact + + // might intersect, so do an exact clip + if (clip->trace.allsolid) + return; + if (clip->passedict) + { + if (PROG_TO_EDICT(touch->v.owner) == clip->passedict) + continue; // don't clip against own missiles + if (PROG_TO_EDICT(clip->passedict->v.owner) == touch) + continue; // don't clip against owner + } + + if ((int)touch->v.flags & FL_MONSTER) + trace = SV_ClipMoveToEntity (touch, clip->start, clip->mins2, clip->maxs2, clip->end); + else + trace = SV_ClipMoveToEntity (touch, clip->start, clip->mins, clip->maxs, clip->end); + if (trace.allsolid || trace.startsolid || + trace.fraction < clip->trace.fraction) + { + trace.ent = touch; + if (clip->trace.startsolid) + { + clip->trace = trace; + clip->trace.startsolid = true; + } + else + clip->trace = trace; + } + else if (trace.startsolid) + clip->trace.startsolid = true; + } + +// recurse down both sides + if (node->axis == -1) + return; + + if ( clip->boxmaxs[node->axis] > node->dist ) + SV_ClipToLinks ( node->children[0], clip ); + if ( clip->boxmins[node->axis] < node->dist ) + SV_ClipToLinks ( node->children[1], clip ); +} + + +/* +================== +SV_MoveBounds +================== +*/ +void SV_MoveBounds (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, vec3_t boxmins, vec3_t boxmaxs) +{ +#if 0 +// debug to test against everything +boxmins[0] = boxmins[1] = boxmins[2] = -9999; +boxmaxs[0] = boxmaxs[1] = boxmaxs[2] = 9999; +#else + int i; + + for (i=0 ; i<3 ; i++) + { + if (end[i] > start[i]) + { + boxmins[i] = start[i] + mins[i] - 1; + boxmaxs[i] = end[i] + maxs[i] + 1; + } + else + { + boxmins[i] = end[i] + mins[i] - 1; + boxmaxs[i] = start[i] + maxs[i] + 1; + } + } +#endif +} + +/* +================== +SV_Move +================== +*/ +trace_t SV_Move (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int type, edict_t *passedict) +{ + moveclip_t clip; + int i; + + memset ( &clip, 0, sizeof ( moveclip_t ) ); + +// clip to world + clip.trace = SV_ClipMoveToEntity ( sv.edicts, start, mins, maxs, end ); + + clip.start = start; + clip.end = end; + clip.mins = mins; + clip.maxs = maxs; + clip.type = type; + clip.passedict = passedict; + + if (type == MOVE_MISSILE) + { + for (i=0 ; i<3 ; i++) + { + clip.mins2[i] = -15; + clip.maxs2[i] = 15; + } + } + else + { + VectorCopy (mins, clip.mins2); + VectorCopy (maxs, clip.maxs2); + } + +// create the bounding box of the entire move + SV_MoveBounds ( start, clip.mins2, clip.maxs2, end, clip.boxmins, clip.boxmaxs ); + +// clip to entities + SV_ClipToLinks ( sv_areanodes, &clip ); + + return clip.trace; +} + diff --git a/quakespasm/Quake/world.h b/quakespasm/Quake/world.h new file mode 100644 index 00000000..4354d901 --- /dev/null +++ b/quakespasm/Quake/world.h @@ -0,0 +1,79 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// world.h + +typedef struct +{ + vec3_t normal; + float dist; +} plane_t; + +typedef struct +{ + qboolean allsolid; // if true, plane is not valid + qboolean startsolid; // if true, the initial point was in a solid area + qboolean inopen, inwater; + float fraction; // time completed, 1.0 = didn't hit anything + vec3_t endpos; // final position + plane_t plane; // surface normal at impact + edict_t *ent; // entity the surface is on +} trace_t; + + +#define MOVE_NORMAL 0 +#define MOVE_NOMONSTERS 1 +#define MOVE_MISSILE 2 + + +void SV_ClearWorld (void); +// called after the world model has been loaded, before linking any entities + +void SV_UnlinkEdict (edict_t *ent); +// call before removing an entity, and before trying to move one, +// so it doesn't clip against itself +// flags ent->v.modified + +void SV_LinkEdict (edict_t *ent, qboolean touch_triggers); +// Needs to be called any time an entity changes origin, mins, maxs, or solid +// flags ent->v.modified +// sets ent->v.absmin and ent->v.absmax +// if touchtriggers, calls prog functions for the intersected triggers + +int SV_PointContents (vec3_t p); +int SV_TruePointContents (vec3_t p); +// returns the CONTENTS_* value from the world at the given point. +// does not check any entities at all +// the non-true version remaps the water current contents to content_water + +edict_t *SV_TestEntityPosition (edict_t *ent); + +trace_t SV_Move (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int type, edict_t *passedict); +// mins and maxs are reletive + +// if the entire move stays in a solid volume, trace.allsolid will be set + +// if the starting point is in a solid, it will be allowed to move out +// to an open area + +// nomonsters is used for line of sight or edge testing, where mosnters +// shouldn't be considered solid objects + +// passedict is explicitly excluded from clipping checks (normally NULL) diff --git a/quakespasm/Quake/zone.c b/quakespasm/Quake/zone.c new file mode 100644 index 00000000..5d04b5e3 --- /dev/null +++ b/quakespasm/Quake/zone.c @@ -0,0 +1,954 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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. + +*/ +// zone.c + +#include "quakedef.h" + +#define DYNAMIC_SIZE 256*1024 //johnfitz: was 48k + +#define ZONEID 0x1d4a11 +#define MINFRAGMENT 64 + +typedef struct memblock_s +{ + int size; // including the header and possibly tiny fragments + int tag; // a tag of 0 is a free block + int id; // should be ZONEID + struct memblock_s *next, *prev; + int pad; // pad to 64 bit boundary +} memblock_t; + +typedef struct +{ + int size; // total bytes malloced, including header + memblock_t blocklist; // start / end cap for linked list + memblock_t *rover; +} memzone_t; + +void Cache_FreeLow (int new_low_hunk); +void Cache_FreeHigh (int new_high_hunk); + + +/* +============================================================================== + + ZONE MEMORY ALLOCATION + +There is never any space between memblocks, and there will never be two +contiguous free memblocks. + +The rover can be left pointing at a non-empty block + +The zone calls are pretty much only used for small strings and structures, +all big things are allocated on the hunk. +============================================================================== +*/ + +memzone_t *mainzone; + +void Z_ClearZone (memzone_t *zone, int size); + + +/* +======================== +Z_ClearZone +======================== +*/ +void Z_ClearZone (memzone_t *zone, int size) +{ + memblock_t *block; + +// set the entire zone to one free block + + zone->blocklist.next = zone->blocklist.prev = block = + (memblock_t *)( (byte *)zone + sizeof(memzone_t) ); + zone->blocklist.tag = 1; // in use block + zone->blocklist.id = 0; + zone->blocklist.size = 0; + zone->rover = block; + + block->prev = block->next = &zone->blocklist; + block->tag = 0; // free block + block->id = ZONEID; + block->size = size - sizeof(memzone_t); +} + + +/* +======================== +Z_Free +======================== +*/ +void Z_Free (void *ptr) +{ + memblock_t *block, *other; + + if (!ptr) + Sys_Error ("Z_Free: NULL pointer"); + + block = (memblock_t *) ( (byte *)ptr - sizeof(memblock_t)); + if (block->id != ZONEID) + Sys_Error ("Z_Free: freed a pointer without ZONEID"); + if (block->tag == 0) + Sys_Error ("Z_Free: freed a freed pointer"); + + block->tag = 0; // mark as free + + other = block->prev; + if (!other->tag) + { // merge with previous free block + other->size += block->size; + other->next = block->next; + other->next->prev = other; + if (block == mainzone->rover) + mainzone->rover = other; + block = other; + } + + other = block->next; + if (!other->tag) + { // merge the next free block onto the end + block->size += other->size; + block->next = other->next; + block->next->prev = block; + if (other == mainzone->rover) + mainzone->rover = block; + } +} + + +/* +======================== +Z_Malloc +======================== +*/ +void *Z_Malloc (int size) +{ + void *buf; + +Z_CheckHeap (); // DEBUG + buf = Z_TagMalloc (size, 1); + if (!buf) + Sys_Error ("Z_Malloc: failed on allocation of %i bytes",size); + Q_memset (buf, 0, size); + + return buf; +} + +void *Z_TagMalloc (int size, int tag) +{ + int extra; + memblock_t *start, *rover, *new, *base; + + if (!tag) + Sys_Error ("Z_TagMalloc: tried to use a 0 tag"); + +// +// scan through the block list looking for the first free block +// of sufficient size +// + size += sizeof(memblock_t); // account for size of block header + size += 4; // space for memory trash tester + size = (size + 7) & ~7; // align to 8-byte boundary + + base = rover = mainzone->rover; + start = base->prev; + + do + { + if (rover == start) // scaned all the way around the list + return NULL; + if (rover->tag) + base = rover = rover->next; + else + rover = rover->next; + } while (base->tag || base->size < size); + +// +// found a block big enough +// + extra = base->size - size; + if (extra > MINFRAGMENT) + { // there will be a free fragment after the allocated block + new = (memblock_t *) ((byte *)base + size ); + new->size = extra; + new->tag = 0; // free block + new->prev = base; + new->id = ZONEID; + new->next = base->next; + new->next->prev = new; + base->next = new; + base->size = size; + } + + base->tag = tag; // no longer a free block + + mainzone->rover = base->next; // next allocation will start looking here + + base->id = ZONEID; + +// marker for memory trash testing + *(int *)((byte *)base + base->size - 4) = ZONEID; + + return (void *) ((byte *)base + sizeof(memblock_t)); +} + + +/* +======================== +Z_Print +======================== +*/ +void Z_Print (memzone_t *zone) +{ + memblock_t *block; + + Con_Printf ("zone size: %i location: %p\n",mainzone->size,mainzone); + + for (block = zone->blocklist.next ; ; block = block->next) + { + Con_Printf ("block:%p size:%7i tag:%3i\n", + block, block->size, block->tag); + + if (block->next == &zone->blocklist) + break; // all blocks have been hit + if ( (byte *)block + block->size != (byte *)block->next) + Con_Printf ("ERROR: block size does not touch the next block\n"); + if ( block->next->prev != block) + Con_Printf ("ERROR: next block doesn't have proper back link\n"); + if (!block->tag && !block->next->tag) + Con_Printf ("ERROR: two consecutive free blocks\n"); + } +} + + +/* +======================== +Z_CheckHeap +======================== +*/ +void Z_CheckHeap (void) +{ + memblock_t *block; + + for (block = mainzone->blocklist.next ; ; block = block->next) + { + if (block->next == &mainzone->blocklist) + break; // all blocks have been hit + if ( (byte *)block + block->size != (byte *)block->next) + Sys_Error ("Z_CheckHeap: block size does not touch the next block\n"); + if ( block->next->prev != block) + Sys_Error ("Z_CheckHeap: next block doesn't have proper back link\n"); + if (!block->tag && !block->next->tag) + Sys_Error ("Z_CheckHeap: two consecutive free blocks\n"); + } +} + +//============================================================================ + +#define HUNK_SENTINAL 0x1df001ed + +typedef struct +{ + int sentinal; + int size; // including sizeof(hunk_t), -1 = not allocated + char name[8]; +} hunk_t; + +byte *hunk_base; +int hunk_size; + +int hunk_low_used; +int hunk_high_used; + +qboolean hunk_tempactive; +int hunk_tempmark; + +void R_FreeTextures (void); + +/* +============== +Hunk_Check + +Run consistancy and sentinal trahing checks +============== +*/ +void Hunk_Check (void) +{ + hunk_t *h; + + for (h = (hunk_t *)hunk_base ; (byte *)h != hunk_base + hunk_low_used ; ) + { + if (h->sentinal != HUNK_SENTINAL) + Sys_Error ("Hunk_Check: trahsed sentinal"); + if (h->size < 16 || h->size + (byte *)h - hunk_base > hunk_size) + Sys_Error ("Hunk_Check: bad size"); + h = (hunk_t *)((byte *)h+h->size); + } +} + +/* +============== +Hunk_Print + +If "all" is specified, every single allocation is printed. +Otherwise, allocations with the same name will be totaled up before printing. +============== +*/ +void Hunk_Print (qboolean all) +{ + hunk_t *h, *next, *endlow, *starthigh, *endhigh; + int count, sum; + int totalblocks; + char name[9]; + + name[8] = 0; + count = 0; + sum = 0; + totalblocks = 0; + + h = (hunk_t *)hunk_base; + endlow = (hunk_t *)(hunk_base + hunk_low_used); + starthigh = (hunk_t *)(hunk_base + hunk_size - hunk_high_used); + endhigh = (hunk_t *)(hunk_base + hunk_size); + + Con_Printf (" :%8i total hunk size\n", hunk_size); + Con_Printf ("-------------------------\n"); + + while (1) + { + // + // skip to the high hunk if done with low hunk + // + if ( h == endlow ) + { + Con_Printf ("-------------------------\n"); + Con_Printf (" :%8i REMAINING\n", hunk_size - hunk_low_used - hunk_high_used); + Con_Printf ("-------------------------\n"); + h = starthigh; + } + + // + // if totally done, break + // + if ( h == endhigh ) + break; + + // + // run consistancy checks + // + if (h->sentinal != HUNK_SENTINAL) + Sys_Error ("Hunk_Check: trahsed sentinal"); + if (h->size < 16 || h->size + (byte *)h - hunk_base > hunk_size) + Sys_Error ("Hunk_Check: bad size"); + + next = (hunk_t *)((byte *)h+h->size); + count++; + totalblocks++; + sum += h->size; + + // + // print the single block + // + memcpy (name, h->name, 8); + if (all) + Con_Printf ("%8p :%8i %8s\n",h, h->size, name); + + // + // print the total + // + if (next == endlow || next == endhigh || + strncmp (h->name, next->name, 8) ) + { + if (!all) + Con_Printf (" :%8i %8s (TOTAL)\n",sum, name); + count = 0; + sum = 0; + } + + h = next; + } + + Con_Printf ("-------------------------\n"); + Con_Printf ("%8i total blocks\n", totalblocks); + +} + +/* +=================== +Hunk_Print_f -- johnfitz -- console command to call hunk_print +=================== +*/ +void Hunk_Print_f (void) +{ + Hunk_Print (false); +} + +/* +=================== +Hunk_AllocName +=================== +*/ +void *Hunk_AllocName (int size, char *name) +{ + hunk_t *h; + +#ifdef PARANOID + Hunk_Check (); +#endif + + if (size < 0) + Sys_Error ("Hunk_Alloc: bad size: %i", size); + + size = sizeof(hunk_t) + ((size+15)&~15); + + if (hunk_size - hunk_low_used - hunk_high_used < size) + Sys_Error ("Hunk_Alloc: failed on %i bytes",size); + + h = (hunk_t *)(hunk_base + hunk_low_used); + hunk_low_used += size; + + Cache_FreeLow (hunk_low_used); + + memset (h, 0, size); + + h->size = size; + h->sentinal = HUNK_SENTINAL; + Q_strncpy (h->name, name, 8); + + return (void *)(h+1); +} + +/* +=================== +Hunk_Alloc +=================== +*/ +void *Hunk_Alloc (int size) +{ + return Hunk_AllocName (size, "unknown"); +} + +int Hunk_LowMark (void) +{ + return hunk_low_used; +} + +void Hunk_FreeToLowMark (int mark) +{ + if (mark < 0 || mark > hunk_low_used) + Sys_Error ("Hunk_FreeToLowMark: bad mark %i", mark); + memset (hunk_base + mark, 0, hunk_low_used - mark); + hunk_low_used = mark; +} + +int Hunk_HighMark (void) +{ + if (hunk_tempactive) + { + hunk_tempactive = false; + Hunk_FreeToHighMark (hunk_tempmark); + } + + return hunk_high_used; +} + +void Hunk_FreeToHighMark (int mark) +{ + if (hunk_tempactive) + { + hunk_tempactive = false; + Hunk_FreeToHighMark (hunk_tempmark); + } + if (mark < 0 || mark > hunk_high_used) + Sys_Error ("Hunk_FreeToHighMark: bad mark %i", mark); + memset (hunk_base + hunk_size - hunk_high_used, 0, hunk_high_used - mark); + hunk_high_used = mark; +} + + +/* +=================== +Hunk_HighAllocName +=================== +*/ +void *Hunk_HighAllocName (int size, char *name) +{ + hunk_t *h; + + if (size < 0) + Sys_Error ("Hunk_HighAllocName: bad size: %i", size); + + if (hunk_tempactive) + { + Hunk_FreeToHighMark (hunk_tempmark); + hunk_tempactive = false; + } + +#ifdef PARANOID + Hunk_Check (); +#endif + + size = sizeof(hunk_t) + ((size+15)&~15); + + if (hunk_size - hunk_low_used - hunk_high_used < size) + { + Con_Printf ("Hunk_HighAlloc: failed on %i bytes\n",size); + return NULL; + } + + hunk_high_used += size; + Cache_FreeHigh (hunk_high_used); + + h = (hunk_t *)(hunk_base + hunk_size - hunk_high_used); + + memset (h, 0, size); + h->size = size; + h->sentinal = HUNK_SENTINAL; + Q_strncpy (h->name, name, 8); + + return (void *)(h+1); +} + + +/* +================= +Hunk_TempAlloc + +Return space from the top of the hunk +================= +*/ +void *Hunk_TempAlloc (int size) +{ + void *buf; + + size = (size+15)&~15; + + if (hunk_tempactive) + { + Hunk_FreeToHighMark (hunk_tempmark); + hunk_tempactive = false; + } + + hunk_tempmark = Hunk_HighMark (); + + buf = Hunk_HighAllocName (size, "temp"); + + hunk_tempactive = true; + + return buf; +} + +/* +=============================================================================== + +CACHE MEMORY + +=============================================================================== +*/ + +typedef struct cache_system_s +{ + int size; // including this header + cache_user_t *user; + char name[16]; + struct cache_system_s *prev, *next; + struct cache_system_s *lru_prev, *lru_next; // for LRU flushing +} cache_system_t; + +cache_system_t *Cache_TryAlloc (int size, qboolean nobottom); + +cache_system_t cache_head; + +/* +=========== +Cache_Move +=========== +*/ +void Cache_Move ( cache_system_t *c) +{ + cache_system_t *new; + +// we are clearing up space at the bottom, so only allocate it late + new = Cache_TryAlloc (c->size, true); + if (new) + { +// Con_Printf ("cache_move ok\n"); + + Q_memcpy ( new+1, c+1, c->size - sizeof(cache_system_t) ); + new->user = c->user; + Q_memcpy (new->name, c->name, sizeof(new->name)); + Cache_Free (c->user, false); //johnfitz -- added second argument + new->user->data = (void *)(new+1); + } + else + { +// Con_Printf ("cache_move failed\n"); + + Cache_Free (c->user, true); // tough luck... //johnfitz -- added second argument + } +} + +/* +============ +Cache_FreeLow + +Throw things out until the hunk can be expanded to the given point +============ +*/ +void Cache_FreeLow (int new_low_hunk) +{ + cache_system_t *c; + + while (1) + { + c = cache_head.next; + if (c == &cache_head) + return; // nothing in cache at all + if ((byte *)c >= hunk_base + new_low_hunk) + return; // there is space to grow the hunk + Cache_Move ( c ); // reclaim the space + } +} + +/* +============ +Cache_FreeHigh + +Throw things out until the hunk can be expanded to the given point +============ +*/ +void Cache_FreeHigh (int new_high_hunk) +{ + cache_system_t *c, *prev; + + prev = NULL; + while (1) + { + c = cache_head.prev; + if (c == &cache_head) + return; // nothing in cache at all + if ( (byte *)c + c->size <= hunk_base + hunk_size - new_high_hunk) + return; // there is space to grow the hunk + if (c == prev) + Cache_Free (c->user, true); // didn't move out of the way //johnfitz -- added second argument + else + { + Cache_Move (c); // try to move it + prev = c; + } + } +} + +void Cache_UnlinkLRU (cache_system_t *cs) +{ + if (!cs->lru_next || !cs->lru_prev) + Sys_Error ("Cache_UnlinkLRU: NULL link"); + + cs->lru_next->lru_prev = cs->lru_prev; + cs->lru_prev->lru_next = cs->lru_next; + + cs->lru_prev = cs->lru_next = NULL; +} + +void Cache_MakeLRU (cache_system_t *cs) +{ + if (cs->lru_next || cs->lru_prev) + Sys_Error ("Cache_MakeLRU: active link"); + + cache_head.lru_next->lru_prev = cs; + cs->lru_next = cache_head.lru_next; + cs->lru_prev = &cache_head; + cache_head.lru_next = cs; +} + +/* +============ +Cache_TryAlloc + +Looks for a free block of memory between the high and low hunk marks +Size should already include the header and padding +============ +*/ +cache_system_t *Cache_TryAlloc (int size, qboolean nobottom) +{ + cache_system_t *cs, *new; + +// is the cache completely empty? + + if (!nobottom && cache_head.prev == &cache_head) + { + if (hunk_size - hunk_high_used - hunk_low_used < size) + Sys_Error ("Cache_TryAlloc: %i is greater then free hunk", size); + + new = (cache_system_t *) (hunk_base + hunk_low_used); + memset (new, 0, sizeof(*new)); + new->size = size; + + cache_head.prev = cache_head.next = new; + new->prev = new->next = &cache_head; + + Cache_MakeLRU (new); + return new; + } + +// search from the bottom up for space + + new = (cache_system_t *) (hunk_base + hunk_low_used); + cs = cache_head.next; + + do + { + if (!nobottom || cs != cache_head.next) + { + if ( (byte *)cs - (byte *)new >= size) + { // found space + memset (new, 0, sizeof(*new)); + new->size = size; + + new->next = cs; + new->prev = cs->prev; + cs->prev->next = new; + cs->prev = new; + + Cache_MakeLRU (new); + + return new; + } + } + + // continue looking + new = (cache_system_t *)((byte *)cs + cs->size); + cs = cs->next; + + } while (cs != &cache_head); + +// try to allocate one at the very end + if ( hunk_base + hunk_size - hunk_high_used - (byte *)new >= size) + { + memset (new, 0, sizeof(*new)); + new->size = size; + + new->next = &cache_head; + new->prev = cache_head.prev; + cache_head.prev->next = new; + cache_head.prev = new; + + Cache_MakeLRU (new); + + return new; + } + + return NULL; // couldn't allocate +} + +/* +============ +Cache_Flush + +Throw everything out, so new data will be demand cached +============ +*/ +void Cache_Flush (void) +{ + while (cache_head.next != &cache_head) + Cache_Free ( cache_head.next->user, true); // reclaim the space //johnfitz -- added second argument +} + + +/* +============ +Cache_Print + +============ +*/ +void Cache_Print (void) +{ + cache_system_t *cd; + + for (cd = cache_head.next ; cd != &cache_head ; cd = cd->next) + { + Con_Printf ("%8i : %s\n", cd->size, cd->name); + } +} + +/* +============ +Cache_Report + +============ +*/ +void Cache_Report (void) +{ + Con_DPrintf ("%4.1f megabyte data cache\n", (hunk_size - hunk_high_used - hunk_low_used) / (float)(1024*1024) ); +} + +/* +============ +Cache_Compact + +============ +*/ +void Cache_Compact (void) +{ +} + +/* +============ +Cache_Init + +============ +*/ +void Cache_Init (void) +{ + cache_head.next = cache_head.prev = &cache_head; + cache_head.lru_next = cache_head.lru_prev = &cache_head; + + Cmd_AddCommand ("flush", Cache_Flush); +} + +/* +============== +Cache_Free + +Frees the memory and removes it from the LRU list +============== +*/ +void Cache_Free (cache_user_t *c, qboolean freetextures) //johnfitz -- added second argument +{ + cache_system_t *cs; + + if (!c->data) + Sys_Error ("Cache_Free: not allocated"); + + cs = ((cache_system_t *)c->data) - 1; + + cs->prev->next = cs->next; + cs->next->prev = cs->prev; + cs->next = cs->prev = NULL; + + c->data = NULL; + + Cache_UnlinkLRU (cs); + + //johnfitz -- if a model becomes uncached, free the gltextures. This only works + //becuase the cache_user_t is the last component of the model_t struct. Should + //fail harmlessly if *c is actually part of an sfx_t struct. I FEEL DIRTY + if (freetextures) + TexMgr_FreeTexturesForOwner ((model_t *)(c + 1) - 1); +} + + + +/* +============== +Cache_Check +============== +*/ +void *Cache_Check (cache_user_t *c) +{ + cache_system_t *cs; + + if (!c->data) + return NULL; + + cs = ((cache_system_t *)c->data) - 1; + +// move to head of LRU + Cache_UnlinkLRU (cs); + Cache_MakeLRU (cs); + + return c->data; +} + + +/* +============== +Cache_Alloc +============== +*/ +void *Cache_Alloc (cache_user_t *c, int size, char *name) +{ + cache_system_t *cs; + + if (c->data) + Sys_Error ("Cache_Alloc: allready allocated"); + + if (size <= 0) + Sys_Error ("Cache_Alloc: size %i", size); + + size = (size + sizeof(cache_system_t) + 15) & ~15; + +// find memory for it + while (1) + { + cs = Cache_TryAlloc (size, false); + if (cs) + { + strncpy (cs->name, name, sizeof(cs->name)-1); + c->data = (void *)(cs+1); + cs->user = c; + break; + } + + // free the least recently used cahedat + if (cache_head.lru_prev == &cache_head) + Sys_Error ("Cache_Alloc: out of memory"); // not enough memory at all + + Cache_Free (cache_head.lru_prev->user, true); //johnfitz -- added second argument + } + + return Cache_Check (c); +} + +//============================================================================ + + +/* +======================== +Memory_Init +======================== +*/ +void Memory_Init (void *buf, int size) +{ + int p; + int zonesize = DYNAMIC_SIZE; + + hunk_base = buf; + hunk_size = size; + hunk_low_used = 0; + hunk_high_used = 0; + + Cache_Init (); + p = COM_CheckParm ("-zone"); + if (p) + { + if (p < com_argc-1) + zonesize = Q_atoi (com_argv[p+1]) * 1024; + else + Sys_Error ("Memory_Init: you must specify a size in KB after -zone"); + } + mainzone = Hunk_AllocName (zonesize, "zone" ); + Z_ClearZone (mainzone, zonesize); + + Cmd_AddCommand ("hunk_print", Hunk_Print_f); //johnfitz +} + diff --git a/quakespasm/Quake/zone.h b/quakespasm/Quake/zone.h new file mode 100644 index 00000000..f7de6ff0 --- /dev/null +++ b/quakespasm/Quake/zone.h @@ -0,0 +1,132 @@ +/* +Copyright (C) 1996-2001 Id Software, Inc. +Copyright (C) 2002-2009 John Fitzgibbons and others + +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 allocation + + +H_??? The hunk manages the entire memory block given to quake. It must be +contiguous. Memory can be allocated from either the low or high end in a +stack fashion. The only way memory is released is by resetting one of the +pointers. + +Hunk allocations should be given a name, so the Hunk_Print () function +can display usage. + +Hunk allocations are guaranteed to be 16 byte aligned. + +The video buffers are allocated high to avoid leaving a hole underneath +server allocations when changing to a higher video mode. + + +Z_??? Zone memory functions used for small, dynamic allocations like text +strings from command input. There is only about 48K for it, allocated at +the very bottom of the hunk. + +Cache_??? Cache memory is for objects that can be dynamically loaded and +can usefully stay persistant between levels. The size of the cache +fluctuates from level to level. + +To allocate a cachable object + + +Temp_??? Temp memory is used for file loading and surface caching. The size +of the cache memory is adjusted so that there is a minimum of 512k remaining +for temp memory. + + +------ Top of Memory ------- + +high hunk allocations + +<--- high hunk reset point held by vid + +video buffer + +z buffer + +surface cache + +<--- high hunk used + +cachable memory + +<--- low hunk used + +client and server low hunk allocations + +<-- low hunk reset point held by host + +startup hunk allocations + +Zone block + +----- Bottom of Memory ----- + + + +*/ + +void Memory_Init (void *buf, int size); + +void Z_Free (void *ptr); +void *Z_Malloc (int size); // returns 0 filled memory +void *Z_TagMalloc (int size, int tag); + +void Z_DumpHeap (void); +void Z_CheckHeap (void); +int Z_FreeMemory (void); + +void *Hunk_Alloc (int size); // returns 0 filled memory +void *Hunk_AllocName (int size, char *name); + +void *Hunk_HighAllocName (int size, char *name); + +int Hunk_LowMark (void); +void Hunk_FreeToLowMark (int mark); + +int Hunk_HighMark (void); +void Hunk_FreeToHighMark (int mark); + +void *Hunk_TempAlloc (int size); + +void Hunk_Check (void); + +typedef struct cache_user_s +{ + void *data; +} cache_user_t; + +void Cache_Flush (void); + +void *Cache_Check (cache_user_t *c); +// returns the cached data, and moves to the head of the LRU list +// if present, otherwise returns NULL + +void Cache_Free (cache_user_t *c, qboolean freetextures); //johnfitz -- added second argument + +void *Cache_Alloc (cache_user_t *c, int size, char *name); +// Returns NULL if all purgable data was tossed and there still +// wasn't enough room. + +void Cache_Report (void); + + + diff --git a/quakespasm/Windows/Fitzquake.cbp b/quakespasm/Windows/Fitzquake.cbp new file mode 100644 index 00000000..b4bc6900 --- /dev/null +++ b/quakespasm/Windows/Fitzquake.cbp @@ -0,0 +1,292 @@ + + + + + + diff --git a/quakespasm/Windows/Fitzquake.depend b/quakespasm/Windows/Fitzquake.depend new file mode 100644 index 00000000..79ee99db --- /dev/null +++ b/quakespasm/Windows/Fitzquake.depend @@ -0,0 +1,1180 @@ +# depslib dependency file v1.0 +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cd_sdl.c + "quakedef.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\quakedef.h + + + + + + + "common.h" + "bspfile.h" + "vid.h" + "sys.h" + "zone.h" + "mathlib.h" + "platform.h" + "SDL/SDL.h" + "SDL/SDL_opengl.h" + "wad.h" + "draw.h" + "cvar.h" + "screen.h" + "net.h" + "protocol.h" + "cmd.h" + "sbar.h" + "sound.h" + "render.h" + "client.h" + "progs.h" + "server.h" + "gl_model.h" + "input.h" + "world.h" + "keys.h" + "console.h" + "view.h" + "menu.h" + "crc.h" + "cdaudio.h" + "glquake.h" + "image.h" + "gl_texmgr.h" + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\common.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\bspfile.h + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\vid.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sys.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\zone.h + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\mathlib.h + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\wad.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\draw.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cvar.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\screen.h + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net.h + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\protocol.h + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cmd.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sbar.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sound.h + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\render.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\client.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\progs.h + "pr_comp.h" + "progdefs.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pr_comp.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\progdefs.h + "progdefs.q1" + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\progdefs.q1 + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\server.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_model.h + "modelgen.h" + "spritegn.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\modelgen.h + + + + + "cmdlib.h" + "scriplib.h" + "trilib.h" + "lbmlib.h" + "mathlib.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\spritegn.h + + + + + "cmdlib.h" + "scriplib.h" + "dictlib.h" + "trilib.h" + "lbmlib.h" + "mathlib.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\input.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\world.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\keys.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\console.h + +1204388359 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\view.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\menu.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\crc.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cdaudio.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\glquake.h + +1093037525 c:\programme\sdl\include\sdl_opengl.h + + + + + + + + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\image.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_texmgr.h + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\chase.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_demo.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_input.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_main.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_parse.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cl_tent.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cmd.c + "quakedef.h" + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\common.c + "quakedef.h" + +1204384758 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\conproc.c + + "conproc.h" + "quakedef.h" + +1204384758 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\conproc.h + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\console.c + + + + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\crc.c + "quakedef.h" + "crc.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\cvar.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_draw.c + "quakedef.h" + +1215257376 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_fog.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_mesh.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_model.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_refrag.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_rlight.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_rmain.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_rmisc.c + "quakedef.h" + +1215257376 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_screen.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_sky.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_test.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_texmgr.c + "quakedef.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_opengl.h + "SDL_config.h" + + + + + + + + + + +1215262654 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\platform.h + +1199055973 c:\programme\sdl\include\sdl\sdl.h + "SDL_main.h" + "SDL_stdinc.h" + "SDL_audio.h" + "SDL_cdrom.h" + "SDL_cpuinfo.h" + "SDL_endian.h" + "SDL_error.h" + "SDL_events.h" + "SDL_loadso.h" + "SDL_mutex.h" + "SDL_rwops.h" + "SDL_thread.h" + "SDL_timer.h" + "SDL_video.h" + "SDL_version.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_main.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + "begin_code.h" + "close_code.h" + +1090382006 c:\programme\sdl\include\sdl\sdl_types.h + +1199055973 c:\programme\sdl\include\sdl\begin_code.h + +1199055973 c:\programme\sdl\include\sdl\close_code.h + +1018532113 c:\programme\sdl\include\sdl\sdl_getenv.h + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_error.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_rwops.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_timer.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_audio.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_endian.h" + "SDL_mutex.h" + "SDL_thread.h" + "SDL_rwops.h" + "begin_code.h" + "close_code.h" + +1100297357 c:\programme\sdl\include\sdl\sdl_byteorder.h + +1199055973 c:\programme\sdl\include\sdl\sdl_cdrom.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_joystick.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_events.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_active.h" + "SDL_keyboard.h" + "SDL_mouse.h" + "SDL_joystick.h" + "SDL_quit.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_active.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_keyboard.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_keysym.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_keysym.h + +1199055973 c:\programme\sdl\include\sdl\sdl_mouse.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_video.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_video.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_rwops.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_mutex.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_quit.h + "SDL_stdinc.h" + "SDL_error.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_version.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_stdinc.h + "SDL_config.h" + + + + + + + + + + + + + + + + + "begin_code.h" + + + + + + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_config.h + "SDL_platform.h" + + +1199055973 c:\programme\sdl\include\sdl\sdl_platform.h + +1199055973 c:\programme\sdl\include\sdl\sdl_endian.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_thread.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_mutex.h" + "begin_code.h" + + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_cpuinfo.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_loadso.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_vidsdl.c + "quakedef.h" + "resource.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\resource.h + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_warp.c + "quakedef.h" + "gl_warp_sin.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\gl_warp_sin.h + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\host.c + "quakedef.h" + +1212339700 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\host_cmd.c + + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\image.c + "quakedef.h" + +1205497698 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\in_sdl.c + "quakedef.h" + +1212339700 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\keys.c + "quakedef.h" + +1215257376 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\main.c + + "quakedef.h" + +1215257376 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\mathlib.c + + "quakedef.h" + +1212339701 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\menu.c + "quakedef.h" + +1215257376 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_dgrm.c + + + + "quakedef.h" + "net_dgrm.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_dgrm.h + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_loop.c + "quakedef.h" + "net_loop.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_loop.h + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_main.c + "quakedef.h" + +1215257376 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_sdl.c + "quakedef.h" + "net_loop.h" + "net_dgrm.h" + "net_sdlnet.h" + +1204384759 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_ser.h + +1204384758 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_wins.h + +1204384758 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_wipx.h + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pr_cmds.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pr_edict.c + "quakedef.h" + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pr_exec.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_alias.c + "quakedef.h" + "anorms.h" + "anorm_dots.h" + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\anorms.h + +1204388358 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\anorm_dots.h + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_brush.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_part.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_sprite.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\r_world.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sbar.c + "quakedef.h" + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\snd_dma.c + "quakedef.h" + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\snd_mem.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\snd_mix.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\snd_sdl.c + + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sv_main.c + "quakedef.h" + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sv_move.c + "quakedef.h" + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sv_phys.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sv_user.c + "quakedef.h" + +1215257376 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\sys_sdl.c + "quakedef.h" + "errno.h" + +1204384758 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\test.c + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\view.c + "quakedef.h" + +1204388359 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\wad.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\world.c + "quakedef.h" + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\zone.c + "quakedef.h" + +1200781489 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\windows\main.c + + "../Quake/quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cd_sdl.c + "quakedef.h" + +1200943109 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\quakedef.h + + + + + + + "common.h" + "bspfile.h" + "vid.h" + "sys.h" + "zone.h" + "mathlib.h" + "platform.h" + "SDL/SDL.h" + "SDL/SDL_opengl.h" + "wad.h" + "draw.h" + "cvar.h" + "screen.h" + "net.h" + "protocol.h" + "cmd.h" + "sbar.h" + "sound.h" + "render.h" + "client.h" + "progs.h" + "server.h" + "gl_model.h" + "input.h" + "world.h" + "keys.h" + "console.h" + "view.h" + "menu.h" + "crc.h" + "cdaudio.h" + "glquake.h" + "image.h" + "gl_texmgr.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\common.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\bspfile.h + +1201204952 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\vid.h + +1201118997 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sys.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\zone.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\mathlib.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\wad.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\draw.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cvar.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\screen.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\protocol.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cmd.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sbar.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sound.h + +1200827895 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\render.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\client.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\progs.h + "pr_comp.h" + "progdefs.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\pr_comp.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\progdefs.h + "progdefs.q1" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\progdefs.q1 + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\server.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_model.h + "modelgen.h" + "spritegn.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\modelgen.h + + + + + "cmdlib.h" + "scriplib.h" + "trilib.h" + "lbmlib.h" + "mathlib.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\spritegn.h + + + + + "cmdlib.h" + "scriplib.h" + "dictlib.h" + "trilib.h" + "lbmlib.h" + "mathlib.h" + +1201204952 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\input.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\world.h + +1201118997 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\keys.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\console.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\view.h + +1201204952 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\menu.h + +1200940564 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\crc.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cdaudio.h + +1201204952 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\glquake.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\image.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_texmgr.h + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\chase.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cl_demo.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cl_input.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cl_main.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cl_parse.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cl_tent.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cmd.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\common.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\conproc.c + + "conproc.h" + "quakedef.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\conproc.h + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\console.c + + + + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\crc.c + "quakedef.h" + "crc.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\cvar.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_draw.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_fog.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_mesh.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_model.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_refrag.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_rlight.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_rmain.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_rmisc.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_screen.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_sky.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_test.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_texmgr.c + "quakedef.h" + "imdebug-0.931b-bin/imdebug.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_warp.c + "quakedef.h" + "gl_warp_sin.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_warp_sin.h + +1200828862 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\host.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\host_cmd.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\image.c + "quakedef.h" + +1200829987 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\in_sdl.c + "quakedef.h" + +1201118997 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\keys.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\mathlib.c + + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\menu.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_dgrm.c + + + + "quakedef.h" + "net_dgrm.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_dgrm.h + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_loop.c + "quakedef.h" + "net_loop.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_loop.h + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_main.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_sdl.c + "quakedef.h" + "net_loop.h" + "net_dgrm.h" + "net_ser.h" + "net_wins.h" + "net_wipx.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_ser.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_wins.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\net_wipx.h + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\pr_cmds.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\pr_edict.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\pr_exec.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\r_alias.c + "quakedef.h" + "anorms.h" + "anorm_dots.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\anorms.h + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\anorm_dots.h + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\r_brush.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\r_part.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\r_sprite.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\r_world.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sbar.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\snd_dma.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\snd_mem.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\snd_mix.c + "quakedef.h" + +1200940564 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\snd_sdl.c + + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sv_main.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sv_move.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sv_phys.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sv_user.c + "quakedef.h" + +1200827895 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\sys_sdl.c + "quakedef.h" + + "errno.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\test.c + +1201118997 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\view.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\wad.c + "quakedef.h" + +1200827894 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\world.c + "quakedef.h" + +1200647148 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\zone.c + "quakedef.h" + +1200827898 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\windows\main.c + + "../Quake/quakedef.h" + +1200945244 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\gl_vidsdl.c + "quakedef.h" + "resource.h" + +1200647148 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\resource.h + +1200830311 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\main.c + + "quakedef.h" + +1201204952 c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\platform.h + +1200945266 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\quake\pl_win.c + "quakedef.h" + + "SDL/SDL_syswm.h" + +1200944787 source:c:\dokumente und einstellungen\kristian\desktop\fitzquake\windows\fitzquake.rc + +1204388358 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\pl_win.c + "quakedef.h" + + "SDL/SDL_syswm.h" + +1199055973 c:\programme\sdl\include\sdl\sdl_syswm.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_version.h" + "begin_code.h" + + + + + + + "close_code.h" + +1204388360 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\windows\fitzquake.rc + +1212339700 c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_sdlnet.h + +1215266189 source:c:\dokumente und einstellungen\kristian\eigene dateien\fitzquake\quake\net_sdlnet.c + "quakedef.h" + + + + "net_sdlnet.h" + +1184972882 c:\programme\sdl\include\sdl_net\sdl_net.h + "SDL.h" + "SDL_endian.h" + "SDL_version.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl.h + "SDL_main.h" + "SDL_stdinc.h" + "SDL_audio.h" + "SDL_cdrom.h" + "SDL_cpuinfo.h" + "SDL_endian.h" + "SDL_error.h" + "SDL_events.h" + "SDL_loadso.h" + "SDL_mutex.h" + "SDL_rwops.h" + "SDL_thread.h" + "SDL_timer.h" + "SDL_video.h" + "SDL_version.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_main.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_stdinc.h + "SDL_config.h" + + + + + + + + + + + + + + + + + "begin_code.h" + + + + + + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_config.h + "SDL_platform.h" + + +1199055973 c:\programme\sdl\include\sdl_net\sdl_platform.h + +1199055973 c:\programme\sdl\include\sdl_net\begin_code.h + +1199055973 c:\programme\sdl\include\sdl_net\close_code.h + +1199055973 c:\programme\sdl\include\sdl_net\sdl_audio.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_endian.h" + "SDL_mutex.h" + "SDL_thread.h" + "SDL_rwops.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_error.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_endian.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_mutex.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_thread.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_mutex.h" + "begin_code.h" + + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_rwops.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_cdrom.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_cpuinfo.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_events.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_active.h" + "SDL_keyboard.h" + "SDL_mouse.h" + "SDL_joystick.h" + "SDL_quit.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_active.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_keyboard.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_keysym.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_keysym.h + +1199055973 c:\programme\sdl\include\sdl_net\sdl_mouse.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_video.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_video.h + "SDL_stdinc.h" + "SDL_error.h" + "SDL_rwops.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_joystick.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_quit.h + "SDL_stdinc.h" + "SDL_error.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_loadso.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_timer.h + "SDL_stdinc.h" + "SDL_error.h" + "begin_code.h" + "close_code.h" + +1199055973 c:\programme\sdl\include\sdl_net\sdl_version.h + "SDL_stdinc.h" + "begin_code.h" + "close_code.h" + diff --git a/quakespasm/Windows/Fitzquake.layout b/quakespasm/Windows/Fitzquake.layout new file mode 100644 index 00000000..a1952df1 --- /dev/null +++ b/quakespasm/Windows/Fitzquake.layout @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/quakespasm/Windows/Fitzquake.rc b/quakespasm/Windows/Fitzquake.rc new file mode 100644 index 00000000..b6c4c58b --- /dev/null +++ b/quakespasm/Windows/Fitzquake.rc @@ -0,0 +1 @@ +icon ICON "fitzquake.ico" diff --git a/quakespasm/Windows/Fitzquake.workspace b/quakespasm/Windows/Fitzquake.workspace new file mode 100644 index 00000000..5a4ed4a9 --- /dev/null +++ b/quakespasm/Windows/Fitzquake.workspace @@ -0,0 +1,6 @@ + + + + + + diff --git a/quakespasm/Windows/cb.bmp b/quakespasm/Windows/cb.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f912a9e6e19dea3afe6c2f4ba03737008c5b19d1 GIT binary patch literal 54294 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 U+ +#include +#include /* _findfirst and _findnext set errno iff they return -1 */ +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +struct DIR +{ + long handle; /* -1 for failed rewind */ + struct _finddata_t info; + struct dirent result; /* d_name null iff first time */ + char *name; /* null-terminated char string */ +}; + +DIR *opendir(const char *name) +{ + DIR *dir = 0; + + if(name && name[0]) + { + size_t base_length = strlen(name); + const char *all = /* search pattern must end with suitable wildcard */ + strchr("/\\", name[base_length - 1]) ? "*" : "/*"; + + if((dir = (DIR *) malloc(sizeof *dir)) != 0 && + (dir->name = (char *) malloc(base_length + strlen(all) + 1)) != 0) + { + strcat(strcpy(dir->name, name), all); + + if((dir->handle = (long) _findfirst(dir->name, &dir->info)) != -1) + { + dir->result.d_name = 0; + } + else /* rollback */ + { + free(dir->name); + free(dir); + dir = 0; + } + } + else /* rollback */ + { + free(dir); + dir = 0; + errno = ENOMEM; + } + } + else + { + errno = EINVAL; + } + + return dir; +} + +int closedir(DIR *dir) +{ + int result = -1; + + if(dir) + { + if(dir->handle != -1) + { + result = _findclose(dir->handle); + } + + free(dir->name); + free(dir); + } + + if(result == -1) /* map all errors to EBADF */ + { + errno = EBADF; + } + + return result; +} + +struct dirent *readdir(DIR *dir) +{ + struct dirent *result = 0; + + if(dir && dir->handle != -1) + { + if(!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1) + { + result = &dir->result; + result->d_name = dir->info.name; + } + } + else + { + errno = EBADF; + } + + return result; +} + +void rewinddir(DIR *dir) +{ + if(dir && dir->handle != -1) + { + _findclose(dir->handle); + dir->handle = (long) _findfirst(dir->name, &dir->info); + dir->result.d_name = 0; + } + else + { + errno = EBADF; + } +} + +#ifdef __cplusplus +} +#endif + +/* + + Copyright Kevlin Henney, 1997, 2003. All rights reserved. + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose is hereby granted without fee, provided + that this copyright and permissions notice appear in all copies and + derivatives. + + This software is supplied "as is" without express or implied warranty. + + But that said, if there are any problems please get in touch. + +*/ diff --git a/quakespasm/Windows/dirent.h b/quakespasm/Windows/dirent.h new file mode 100644 index 00000000..a02a0d82 --- /dev/null +++ b/quakespasm/Windows/dirent.h @@ -0,0 +1,50 @@ +#ifndef DIRENT_INCLUDED +#define DIRENT_INCLUDED + +/* + + Declaration of POSIX directory browsing functions and types for Win32. + + Author: Kevlin Henney (kevlin@acm.org, kevlin@curbralan.com) + History: Created March 1997. Updated June 2003. + Rights: See end of file. + +*/ + +#ifdef __cplusplus +extern "C" +{ +#endif + +typedef struct DIR DIR; + +struct dirent +{ + char *d_name; +}; + +DIR *opendir(const char *); +int closedir(DIR *); +struct dirent *readdir(DIR *); +void rewinddir(DIR *); + +/* + + Copyright Kevlin Henney, 1997, 2003. All rights reserved. + + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose is hereby granted without fee, provided + that this copyright and permissions notice appear in all copies and + derivatives. + + This software is supplied "as is" without express or implied warranty. + + But that said, if there are any problems please get in touch. + +*/ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/quakespasm/Windows/fitzquake.ico b/quakespasm/Windows/fitzquake.ico new file mode 100644 index 0000000000000000000000000000000000000000..514d613c18e1b2a31c21b5fae1b77643b0c45b75 GIT binary patch literal 4710 zcmeH~zfU7q5Xa{dM`tAz&;XVw93-TpN%JbY6Gb|tYpCg-(jd4B7b!LkI9=>W#IL&| ziIUMGBAGA2Z+gWzxyMA}#55 z=S9b_?}>cMvD;Nkey_Km=g4&>uIg%6^`}QiSye~-rlu3-$gZJ? ze;@u)?`7@!mV_c!){nG^xBMiS()SB}iTdd+$Z~zuQ+gY=eyOyi)O+P9;v0Ce)BM#j zS^RF!>d!eZ2P13EV#yG7LY5!cb864|_?NM~{rP)owOZ0{w`Fc_P8JpxWN~p(R#sMI zb#+zN*Vkoxdt0`)wq$d2Q#Lj>B>Ozcix)}0mNQAeMfvIMcR73WM!x#-HHjRXXA5jG zHyu8Q&*5|G<3-Xb9>3?rrUNBj{-)E5#vVW()B9eYP` zM-3=RedgCW7-U~n)v7#s|S34?>d!QfzUFc>-v4h9E~gz!XRtNDyEOU`Q||80>L^ zA;OSgNH9bg2*bvF7!nK#h6Dql+3>@VU`Q||0228l!4eA-lRPmzwud8GY@OrfWBE>Y zc6Q|8;6M%!59RpySWZt*<>cf<&d<-~;^IOsFE8cl>PoJ!ujS_EM&ACB3hTBuFlvU4)>b$wY5D9F-v7lt~W1M?|(@j zHWXpP$ED8HtdHwIczUF&0x&C|UJTdi)oLZ0h5Pgrw z@vimyxYqRI`7GZ9eVQwJ`Fxl4w_`;&_?lQ>Uxuw8n+x?1z5E=!)1iHew&-29vL7FF z-aImT6cm2b?7*JWd-daGZ`N7v_qFHNcKZvQbkS{X;Rb`u8dJ0Tx!uR3UA8bo^}=p< z3Vkr@=j)f-xz2>nGJGsR(_ww6##iq{M!imXKlhyf<1~+KW}P1UIc+l^`?<${j-KoP z(a+^yjmdXm>QiaGRjsp{{&?byHXU2l){j@!p4NwCsp-UGP9CwySN1*nEmh{S W55X)(K3}zBlthzb^Y7vPy?+7Di|RlC literal 0 HcmV?d00001 diff --git a/quakespasm/gnu.txt b/quakespasm/gnu.txt new file mode 100644 index 00000000..2f3289af --- /dev/null +++ b/quakespasm/gnu.txt @@ -0,0 +1,87 @@ +GNU GENERAL PUBLIC LICENSE +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +Preamble +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: + + +a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. + +b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. + +c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. +Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: + +a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + +b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, + +c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) +The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. +If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + +END OF TERMS AND CONDITIONS

lw~lvR7#YxX&Pr4HZN286V+x6v7A^e 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%0AHRlZ?l{3Pmtq{wj4i)ScYQhbuP3Cg!_p4k)22 zn(~Gv9NwhPmhomFeQT}NefFf=6q9SI&Mv>O;k47W^3(d1xF5uELTx?993q2p-9}nG zKR7yl{_<$&>C2;TvEQ#!FV7l{{`ArITxfG8#{wf+mnM%74s_#-my-(I1q(f%m)ZhH z-kl9Xym;sHgTudUmO+C+CsQo2kttH1FQ>82j zHJJo>E1@|HL)AgY(_^n0rM^(&ZYn7q|#74wo%X|*OVAE_G~ z>nRiyCXbKyroaB*n_Y;{g43YUu2p4Ogn@DH?z}%tbOkUz7G$Fe0UDiG@)2@S#0rdQ zbUJzoz&S)7hQ_GFwej%AdL*7Kl96yKmPTB$Dvyu`%z_7{L{ic9;h~ykO0ra`4f`d_ zQsVT=Iw?pJ2~<}@)v$z}ao&2z?!Ol@TV%SutEWpkl};d+R@ut#WB{YP)(I_^xD+er zDfHpe;|ta(U;O)Tb{bTi|IhtgDHre-L}HtYctBcHv_uk>>PR-3Vvrc*`CU<5qFHkY zXNXl#MefhucgGgyywhElJUgE7ae`$-^VM>rRMUjCPFJ?Mey){{>y1ib{Ucb_by31h z%lmy65KMqNLK=B5T_26jkf9zu61^EQI^)%ny2)kzYk>e<&Me0tqu zCntM_ufL)EbKn2{6|!OQcpFCwd@n=6j{}Pg}YPyt^vs|Yyf%mouPi_6UYc>#y%#bk<->UUitIm(BR28mw z*KQ>|!Fg6JMz#bJGMAI)N~~Y68+svt8=N83XbD{nWiuo#*XspT5-p3(k(6f1Ij8>W zZ~w2q*&PnXPfiYoC8gWeE0(C$${a#hN+N{zi?TXtk;Px0;V_&M{)ok_Udwl@Ru$sN zx>>QNCwox!Lz`tDG0For=tLooB_1^E$IpNBXD!$s4D^yw2Y;S1?pBMaZ)w>U2?^h_ zt;&4S*x7?Y9(oD#Y*7+IaarY!W?2D}Xf|2UQz5_S!E#`29U^%F4{1O&sW=)zA_~a= zgR;VQI+KO~%yV$)HV=2ja$XY>vkw5jsn*0Ylq3`~L}cyWrG>5a)s-2PcIR7^@pQm4 zdd@H6g~y*Y{L&-?eA;g4z9J^;s(tH+KY71?^s6I>mjH)wi4Mhpt0-n&2rDwQhnH|c z1xVWByv;6@07K~UA=L?BTSwK};b6DUYVzVrCbk_iQO^UeQf|}^J}I{Vj*2lODQCMh zpR;Yu{MZREsphb&0p2`ARf}H0y0Q|s7e=jCEUnnz`WRlZ zj_-ZvfBK)7$yVe;Dt~=;WiymQYt5pmSjC+@UaU!iKh8~R;ZT@0wQD|8k0sj=Ig zOr|>*!)KG)M5pn*(H6@kjBWI*?bhj8!j{mPgD0PVdH!m*U#W6fVx#vrtks@FOtt0U=v>`~LKuGdGC zW}$R(*6aN8L=qSZPpKW-kM0SA*eC&8&8k#uds89G7-d2%5@E`KT^vm~-0Ih48KPcU9AGfnU>?l?E*<(=ibM*} z=QS(gn!P-;lJOFJiWV3;ja0j3KA+2{iQ&#fHU(|enVPbXJH8m3eSlTPf(ebmq$13I zDE#Mw`_lZ)TkpJe{l@B+Kk30Hy?$F6F!ZxMup>G0DZN!X`*Kiq2bwsR{@@3%{n0J& zO>cAKUe+igVMaj%#Rk|H!KNJ>x66dv!Hf#Qr4VAFN}0lG4#TT`a5Gfk%xrhtuwu^T zswyB2CHMyf*SHSz8|?|K+EhiVXRkY&{Kn09Se0d%a&shSs8AxoYpFC+PP+tyv&h&< zxjqIQSeK35da&`v52Cl;3wpQK*KKx`t%idN%9r<&K80n_juLmcmqG$8I?&?mrAN~5 z{P0=~d=z$@yno&l2rTb)twrWn@|S0>Jh0#-aNfCgb@@;3#$ouaw~fZdK-3D)$HkB* zR6cqBh|8qQP2U<;$PSTt|A9qQ;6_eV%BivG2 zpPkeSt>QvD_54pwJKUve?E;9Yx3jel&$sV-x>(ff#y2DPuOpSoiPhPw7hs6?#ryaM zE@Q#wZnGGg6OHw2@7Q??c)1}_^3xwZRA|39PUvKUW2M+uTx#@22S@$#ux$>y)q_b} zBb8F8)rC5@E=)v2RoB5c)9yceIc?UCPj-ffg<>A9(MimAWvh+52yja!ttP2IZ>Nz2 zKoql}FdE$g7|=MgZ5bRyv1^Af>H}6XxNKP(>9X6#yU z`>g)ZP4mt6fXu&8oC|-j`XIFZ`W%Vfi(r6pQVx6BLL_Dt3O#AE+nN-J=&U;kQ(rC^ za@cKmHc}0m)@#)XUsDLPszT+4nPCUbLLxG5^XWBD{No?rd9dQoNl}|W$8@I6q55Dx z%#8_qILXDptm01kvK_5XChmpkluXAQ#p!;jG#Y8N|I)2%Z@hK;2I{+$i}?dEoEgy+ zmXbHc9h|~)Xq<>SbKZ7KPE|`wzkB2P&YNC$07x5iHY%41ZqYI=6rn*T?!(1sn#1*d z&+mQo_M7k0`|X{xVZK=(iOim5cisvYmi(K^0}|ZsQm=Zjqdu#*x((&9!L>RL?eNRb zK0WM%(_#F%VIA(j8lQjqs60>#XJ0(ohjxwT(HE6^$(uZB%JE#Uc6@YD!%(Mx^NwA7 zPN&o54w?iqH713a^_!4P)pGWSsDzddCzu%B_HHw^Zpvqm3OOPFt$)`#YZ%Z(Mne#; zP&PA_ewEbrigZb(WwqVaJA;FL7175h-Rf6^(-wLx2d`lKxs4~{LV zu0zd8Ii3d@>gsIK`9%pwu7H_ZI zf8(%A-M8wjCNmI^}%6NWSk+T zQHtfaL#c!`^WN=ndS)%Ma(f|zuD$p1s#n83EHoP8dNj3~FvJSw&7^E+2=2_25h9ZI+J!8KJqUSyi5b5u zXw63>o3q#NZfxBO5@8oga?yNIB3G&B2UP6x@BW*Qn4y@d?IHm8Rx%IJCI6b+p7PE6 zq5<1NI@0csY8hz+NpxwP23ZD*M=G$*Y&K5^7RJ7MRQ>uFr)IDHX+a--ee_w)njSs- za(|L^xQX`C_a5@Fpevl|T=?p?+hac4f#^NwSx>l_`hp|1e*NZyO_2%CrYYkuzS(_w zmQ6BB7O}9ri)sQo9owi#OpStLpkUO%uRvFi>SU=p-EDXF_8^gD6)1f$Yz;c>(OI+l zqSYAbDoB%%F9Y@s37jZva5~1KQdRLs<4_DiJMS!dXFLL6oZ>mFplUk>u;dQE{=5Ju z0%NgcESb*9aLp=cdTq*)W#A`JB77C7*KxX5?=8AFyog-y7p&vs{e2)gfy{z}1Ldc)QG8o`9^rD^?!rqK7V1yFP!ulbl4LE@pYi(M@6oCZW#6#1flpvkwcMdh|{^0)d`fLj4q+2$+P&q zwIopx5kR&^va55TZ7UU33eCLze%$N$;5(~Z4@|fLykDn7orU5bLkrBUBT#x0 ziD@HeBUiO7E zY5Qt4Zi{Hp^{BO{^+`uGPEL0(fR2QV#S)AHigncN4GWd?eP~P506_)F+B)X)#8L{B zg3>u}63Mt6P-I!El!4?>$Mnjur!Xvx{sn?6X&NZHP)4DOol=fXNZ4kq-W*rCs6?{G z#cUB6vFS>`_|oIYPP+XV4wfjI1}1HbMa?HEuL@x<5tJuw)k1!xN-phTZnasInPI zd!T;-V5sg@pSklGjB2}M2N0^S-1Ktst+m;E$rLp>7#NCGRnKy^cnrjo!wM2-Bhey) z*lvcZzdkDS<4G3Ovq^5V;>4xSqr-Z;(2(Nb95RKt&7P2k=hLJ;fZ`9|zq|d>_4lrR z^v3t!zCJ7VWT-cMxS4auNw>}B-i*}0el)h|(x4F-p6;}Pc2FBljj_+2M={=uNQX~e ze(`h|Tch=y(mjApoIchl#yrT&)AlEm;Xc_?kIYoI)98I-a6~~ldVKI=r?1t!Po`;a znkMlyH(?UN=#3BG@eU3S4my0g_~=!a>GDAPYQmHvmDX2M(KJ*rEJ85PzzB)iOpG7z z3)%Kj!P$Vmu1S}V+urYvkG+@4a>N^}8v`GkaymkD@XW#=wZKRnCS5OdE`eUYaG;-nEm*yx*q=0t3_*gUHb>+Go+w=e3va96X0_cmc=g3XUjo8{4#@G|xsWRC zj3p7;6ofJ_XvI=n1cEN+b2!p6bot=~AhPMGi-c^%u%PC(Jz%=)br!6d22-_4Lj`!O zwMHL;X=K=yry&|C7JE#F&aHdzh6ei=$HSey;RW;Yh6*c(NFJh)uCS2N%Fp&KqxI@< ze_Oe6L?9`f@m8M5OQ98n0u~fXgjTOOy|KGt(i7Wj`xkM=Y)8XD zCsGs{1wq-JYnIVbEKuI`B{O_;)8+Tr)4;P$=kkq4uS@8Oy_a>~;}TIz<@3Pd(;Ltro*8)K^NE}Hd3up&~lWs zArQ@O58y&I(o=WxSjd0J9kIRp#`oU77zYQF7;265^?S``qx!hoZV-$p_1kr#`}xnlJZwx4pOob$xYx}X0#J#@VRNt1 z=^q`QLQ7I4GJw|aT=q!wMTh!1*&0<0kQFp%3>DnpX0-MLXRJK3jVv{5ORvZ26r4;>F+p?UnX zFUO;EEVV*Bo9dYr3b{W&PgP}}b_ZR7klQM*U%#?S288T(SoQ?!d8f+;*6VGjw;Fx- z4j>DNz{d3l_phybu7<-m?%tsUVH@mC5Un`j(UX>lE1mLcHSpF3WKoZXKB-W*psNdh zZ-e1UBe(bbe0TS_3hBY*JSNwBET^;$Xz?yS-8DMBS0|@ftOyNEU(^+tE@XLg?zShm zfb*<3u8coz6^ld<@R(3=sY4xxP#bE(>+|!DM1+P;@uu^R_uFzbOOl1ro&nPo0lkQ6 zcG7!zKSOvB4pl~0LRFF>_?o~d&S?Um$g^bk>9AL0Te>kG0$i@wRjWnA5Jto@D)~bp zJazAn-;YE$?p@vvW+`m_gXQ@x3aQnTbV(;MAQY+sW}8}pFs87AHGuw{-Hu>R;6u!? zWnG0fz9fOcRtjZ#AYc`Zl3BLOjh$|>3yB8R+8vdu;9ISw5n7`|e#k%8Ds3Gg`eoUm zZHo`1Xb22j9B_?{?f@FsF~0po&UD+dHLxO1X=IMi2UZ_88*NSCFfcnKki3fI*nkBe z(P#_}toWVo%E@OZuZ{=3U>Mn2pG)~N&MR-vEM|_H1 z*DNFEZ>9;~Rdg~C3&Stk(@!Z@32wN8A*n$xZ!SCLm#?8%DiV!(L@pVU)KGH%q3q6u z(uQ??4p~^qq~e6novfd~`tqy4`AvFFMel4}zUy||Kg_y&&52#_XK!5XQdlmz$Lyr>hA6|bfsD>s*rHo zIcp4#yA8M+9Dg~6wuW)bf)Wba?SHTpOba|zF)w-3Tt1fYO0to1c|DskqRFhL*mU1W zm!4Lj9bjK7)*()eGb%3+p{`qN?Uu)R;GQvJK@h)ve**9yX1h|mQl?-r&^|b<)}FLw zf~!|MKw(K0n#^{Th>5k@PPfssxQfbaGzBKuJgj_D;5gpv4%^@^ZZVY3G^+hxA&coO zKv)nR*%_;oPbFo-Z9%uNQ7t1Z9sHK%Lh~tq)J6DTdqcK*eIT+jI4hFna+4BPuW?!9 z3F;y-Ex)mz#N_ns+}0lYo!772xfQK63@n^36YDeYT$`Q4drWU{sB^`9Jnso$u_W5# zFd73ErR_>^z@*4z=i=RR6hS~q5w%& z>9pwX;Qa8HKihwPy8A6=cf_e!vj)za-ix#6FPpiIOtH5c6-FLc1ov!u!%OSLsHa3+ zn?nE9;o0f)XQ#WLHUhi_m3==u;5IH_4a>Dwq1dCmYj}3+nycICqkdr|r03qc1O+IH zZ^f04x{@?d_$f(x^!RbFSd)7YDq) z#O3m3F%?W8X?v_#J1ox3+Z{+eBIXk&;6eeWg8K=>OuJnvwMl8CE_6N$k~n}S!7N4A z`yj66_#&hzLI_ zTZz^04FUCaXSmlJ)hWuo5amj+Qo}XL1}$^GNasnTD3%+I8jEFlzG0})HNcT*V^?us z{>g@1SE(Mo*9Jf}TDUl>whCp{v+Y>FxojmdLP&0I#gRNScYE&A2Xptrt9PydmI?eN zjeK26-nu&L6fCw>4sGA{@LUE%ndZT`1nF@FUsz7WswJUL&I9Nrw{;co9_Qm#NcDOg z?_T9pU*gChxP9U0<1!E?j$VE8lq{fR69&&gp zh|eT8K6(D=DSCd?Ryc%x@~L|K$=Tl1=U*|Q)sG*<5J<~$<{1%nXWiRKV$ohcJVP9r z>pytUbI)OVHr!k52WK+aSB;`LeE#xy@1$QX*Q|OA(-~l+`h0#>$P><$Y1_S>lM2lYp9Jz%`)G5d^~7K$!!N|NSz%fBhV7vmvMONa0PL0 zL%oMlF^|kVbkjo{ZmSKgh`MRADi999n!`tb^5geb`0>SYoon`$dz)TQuKBVB^bWi( z`22TV28rdgRj?m{u<4k)yqe3Ui$!`&#tH}BOo{}Cgza7gsI^;uWOW@Rxr(V5b|1BA znFp#Uk;b41y57t=JaV?C+ve8{gT>$d!}ZkmI_%|4ko}%oF{(o)DBzw4OE3TNrv`$( zu!PkRBWO^Ln(`D`D&&hsbSqJ;(nb@RS7{s4Of24aW~Y0`ooySpdH+VLu{JZa5-!PN zF>VXybG+&N!|#0e?MvUcwLX1n9q|x&Kghg$Ew#4bVlT$!!T!lPWsegFd(A)p|9(2D zHgfNN|DD&awx>Wp;;KN*uEy!)p(NiRAif zPH;X5$il7L0n9n;g3)mojG#@k0$}y-q*t$2%>G%maPb#s5QSumt#3J{7O?NcYL&&K z>+7>_v_vsjyde^~Ov3H)#P9iKBk#$CkW4lv=#bSHd1&Yb9vv_U%u1~az$O(SYzkNr z>TuVmq5s?{l{AXh6_3LmfW&H2((?ciq&QU_oPK#M;KR}Bu3nn%mD& zi>8to83l6%nn|Zz0VNWssf^!8L^Ckxjk2B$9^%R-0iB))ql->EEyX=vuRQ1vrbLpo z1>AQ(SQUlZ`Qu;y_P2lWvRTQQ&uT@r+r{P+2fL$wF6|DxuYv^?%g-*@qkP1^7G?q1 zS{_}r(4{|kZ63i8v26u55}G>5&%C|3y`}#YTlZhKXLAt~wvPxCcl_u(-+$-!%B8EX zB|sM6>yC-Ol7qcuLrkKzN9T{K5uFrCTsFxV`V-gnTR*%CanZGG0$SF$wC9tx_?8p(d}fA&hWLL*VO`A*gdKF7$z!+?eoLQi_ayZaY*fJ@%+K_ zlf#D9JlK7?w{!G-r$2psehfj=9e??}zFW+t$aYnzTnfdpxf!=&Mz^#4w!w){ba>*8C$=pLQVuEJbD7IU4wIeik zN8J{XWk%BQ__@`tccuj_LBv#8=(M3dNiKQsWN_N>qI@nxW(%}H2A2|qjH{I2P33H! zTmhC9TWv z=3B3iDVK5+{^S?Or;?*g62}%N%kUB?l2~{NQ>uUc_~PIF{bzsn-10S#2&k~p>tjt| zJrWaIxto~3k)hcfo{on@OrD{&JV(Sds|;>YZ#vUzL31Wlg*FJ5la`heq|^8!u^3B{ z1p!Lqp>JAYH!r!%N;A=S4G$MvNz!^g#ZDIQDSnEcLiSm*Z=Dq z8@F!UbgeH*^ZetMS(LH~)={tGcpiQy$NLp49xYU{x%mVmMMC+wk2z>VF3zOpIK7DY z;r^xTnqE;Vc+%U2Rmj<|p6*tfFAfUh5sa~eMy*omTMieJNhXk%(pKyJp=xQuCR4%V z-rJWQcoVvgRu-VqOXjo^9dX{9N6E4gY5<>3=YX4+$TxLW6%$w9T+;3@UH_LqTG|r1 zay+}ez{#wjRi^Disw@vimGWRP8CJDwrF2j&58>{JZRgQ=uV#P;6hOt)>ZX&}HKTlq zqA9@VS``r~=5QR#g`y!Wli_eV`tief_+AX4w`D#}R(Z8GZG#(09h_HbOa+?;qjlBF z$x+9GGJqyY=i}jI*clF_`h#J)qF1Vblr=jRt&Jst3gJpg=O{r!Qi^0X4D(knI>Wv$ zw}F7b&N>=-WR;Q+wnUYZ86KNlG zxUW4lo7HxYbR3PiR;590aGOgjGc)h6ChI44^+*camT%Y+iIo@>p)qs_1u(sJsI0kz z4oc|qKz!6k#~Hr@wKXy?QTIcI1m5upZL2iWE4za+5^2{IM=n>_q0Y7+_LG>19ej1% zrd@&Gyu#hAk&JXcKfNdon9R)D*6jTd>A4Z@iVhb{fXRejq666)Q6DIN_!%;&8&Mc! z7XWj$g5<$vJea)s-n}iiJ6eE-r9?y{RPRlwFHCLEe6+ZP-~Hb2ZFwrvM z@y4C-X0gmbp4y;QKVrN3@W!o;s~`N>zg!_QqZn<20MFOsyh{afHT3Y|f9e^7z$PjcmJIIe-4LqW6wEjZX8? zUYT3dv8A^hm2sA>XN$UKXmlx@z?YXor3h1KPvg!^7cWo8jyW`pmW?$0#!{dRQ95|( zSWd?QUYLkn`Zyf$T>s(QD|VL2gjSOUp!k&9HOP}_iq)S?TEiV{GU$DNEVLwx)cQT6 zJ_L%)pkC&6MW~mO053Nf5Sj#ugGxwKCxQZ-aoI!h5Z>zY(82TY{)0$l12$JjVirqj zdTYO1;j262vvxXVDj8gAcluQguD_jjuVEC*2Z|?-p)8l#^n(6I<b5(a)o(^Bgrm54vs4sJvN7aZVgXBVy3<0sQjdsH9ttloO`L=VJB z=z(U+)#Aa6CTRkwc2wp$qr#ba(3&X^SpleK);fN?)2pC@x$x2I%tx0$UV?VRi(G`X zeZ0L1UgMHz>_3(>C`Uj>pWWWR^Lo95eRNIvsp-iAdl8cLaquH4e1`N!;eBv;SUIk# zyE_KdkA`xVIRZq2H;LrC&tF|su~r{hd3~M=EzPEzabF2p4rhaL z;5fV8Ym_2NJ!+?pkm0m1i!wyYi|UfF^JLsc>2{PJrrnobdzche_z-&n8Gu&D@zCn> z`o>c5{u^(tto*AVe&^PvGn-aQp6ok!Jptzpj#C=(RA2FBF*pI#=Ak$BqxTnQQbq7) zpB(Dqxz_pQin>Q&MvY=x!!iarfe6 z_pGCw0p4hLziAzRInwKozZn2PmA?>Ob1pQO#_D@}tuh@B8+^Hy5z9id9e__2yv{%r!6Nosu4Dpy>dOxtM3pG$Mysa} zTa*kP49#iVY@W8b&a_9lSPKeKLA2_3`(rRIcA6EvDR{zCyDq^QTW++v7MkF4X&Qhr zRcY{oK}wiw^`Tqt8lu%`mjI7oJl|{R(738AG*dV|)k=-g?sR08)T+^}K!r(n&m!RA zDOBXZtS<`9#)zx{X1iR>C)olAt11vr&0Zm&$1q*Rt303r6uD!HA{Vj8s2H1+HMdIz zUOIHSl}0DfS8bNZqo+p|L4aPY@#DitK8?)gvyD3j3bLjNjS8t3n(&zf=gM(bc|rg9-!obgAh@wMGO5|BbKem*@o-rZON z4i=pWyCYE9miBHe*=+X$xd7s`0m^css@kU8AE(F9lsxpTx20wOj-dfZV&a&qvKiVI zBgJa1T~20TVUWob=rk4xIM(l7`)D=oP276_DiXQ1K-)@uu+&?1Y_Bgd)uRsiqxrnV z_MUvxYYur&w$y%XZY0JqEyv3jU;g|+>h&w-4p1wPlofjV*e{P-j!3H;a0lT$WQU$) zZgI<-fTF`45yJ)f=+Upv4h}1S(b)g#e|&NFr1J7b+89HxTdiWoXIxtVL{PGY$y4mdY_l5?D1BS!{PN0y_=*{-nY*%V6NVun2#cH)jmTcC_I;00_zymsUJ>DX=o5CGVtqK*-XT>c3HKo z`Fktjhgl(qkZNkh6@?N*w#LcHwb^SfiH#?~Z6;4%jz`ao`+=;SO%V~A4ZZhZB^{y^ zIM&H4|90-*&Ue+VE3bVV^4hQhff6iTHIkKDJ|zfNan0q~Moci{IwHrau3-@{=(tiw zne?SJ@_yjBo60kL!_$j1%_Bd4`Shpw^4$DFqR(%wT)lDULEgO`33=0U(`g7MzC;V6 zYsDF(1cVXQRyigPQq@Pj>}IgN*Qyt&Y@tCGia|p?t?8=+_4FXYIZXd-=XKx5Ps?Zr|3PO9Ldi-zyIPC7on51x;@@fOL9mqXUOr>(>?8N zRhPG@DtPZb5zx(>h(bMLkV%+b1^><&7 zd#z%&rC2F>b7@QI7f;8XNi}4P!L5@S6cU2V%E)x#S*6+oqHnwZ^4UQ;;t#7~xEY;7 za0?zRIqI$l+=g%(j0W|hf5w{#gR&h)jR|*--<@=h0H}7p+db>b%HX6|o}4%GN4v#m zZAabe-thUnR1SgS#mlI9~-S}Hjl|^bLR_Q_z#h5KH#usVU86yI>P*& zrS*qv;e3MuOq}2=vmY!2@X8GW;%lB?b?GGcY!9YUUS09Y>%W;6$_@Q`%TD zTgw{FJ(s`W*1i4q4}ZKy>@4GqTd&`|g&I;Bsw+Au!<#?UWP5;D=#-|6%a=Pp>Xvq& zo=D1Q3bYby^61MZ-|3Ygka=>{NVt`du483Fs!Hbeo|YqCTGVcPRqBJcZC*D))g)DJ zcX<5x^Wp1%{1>s+I-E{&VRUbN{MoBXwY=LN7Gr1tk8F}%nr*0taJ>vVOGyS-yk8!;jnAG+JG>I>-q8TuB5`m`Z0K)6CabtcamMoWs zZ642c*-q>ExS8+3(wBm##*ODH6wt&`DDWuk`y@O%_iV)m-OnT(8n(1Q?b~p-SQ;2$T3^ zp;gza8fDKBAH-G-WovbqftUOx92kUtF8jEHvxUrsN za^NI41=87o*Iwsoqz?%$%vpJEIf>adJ3_0{e$nH| z#YgY|xUjodfD<`fA)L0zgO6xXG{V3-77kc-VMlP-FJuWd%R-J);Fa=0@XF&&9jXuR zN6j+saZv@U3keiF$wAcO^%|X70dqvWDK)fr*1=`xY;yevKV4dPEZ}C%cWzXUVwNN| z0htY90=qJc{XQ90_!zkKxq!ocUxKR+3FBi+f<2Cn!JYq3(Co_Ji%QK{aQDz%nA zO1d1%8C~QG2RUG6Sy2%$$Ov*s0*IIC9?+2(uBhGpfk<-W3S{~+rD1*2uEv<)jbPNc zZ8U2VEp5`ds@r(4h1Ekn#okFi1yt+j+K<4anbi ziDbD8F7?5#MH?^WD3mk1$_J4UA(Ut~n~o>hPL~JjYMxJUG{VD$E>G2;^#NZ&=HU?0 zY7V*zDoJcfVJa=Yd<@+bK^Y7rf=?rvT%LtnQnq$^If+M7QmbEvQ!bW>#2|7n1Ng>d zrHaGx{*ydkR#ZL|^o0{eAx%Mz1Q2>sG)#o}PKR>(*=Q_N zY>2k|n-r%tCN_R>ebzvNpJ+KC!0Tdp-W6t3q1bf?Bm;%z`xOkXE=wtE!1&M?L&AQx zQ;Ej%WGrD{x6jUGvJ{2~GPn_mnGhJ(j=&BTL(+06zWaaX`Bm3i+8m`uoO?fo#17;;H8EkBTfu>3(UaQ1`g+jx| zWYDSBd5ar}+uE(L>UZv)3y{r-+sfT;vDwJEdb}SS;93n#$#0l~4}3heGV{TYe|F~{ zf^f-HB!Komt3)~gL{ggIG$P|vhuS2`F|vb-wQ;lDV@roB%C>3+omMkH^U3{ftA{+K zN4jK*wIG3nIS<>OY$nO2L($UTog|409_0Lu(NU`l^B;*&kDpDL44phV+3l#cUU18> zV~o)4jNBE4&Zu1IGIeSplr~4bfl$(?&$00}haxdKzNEqrz-87KDxR=-@uXZnfQ@0L z2?VJQ7G@k}-_<2z_3D*{l|(emAfC8Y2iFCcn-S{JE>(PRR!6D_$BhB76)_P6t^%8a z;~?28s+~fL47*~4pw>yEUvD;d_c?)t$-U#jq9Gp5m7#9-!Us~W2+g3Q!p^--3zl#Mn1~${;mQC+ z`%$9;<-Tkqf>IGH=`x0`v&)-XJK^~&KJ9${$@6A|jiAoOHFq=>@T59X{nqBTmOeII z2}k|c=3-8#JF>Plb6cM>cnQb#$J=nWu?Lr~7~*adf}oV|z78dAo^%yYBmy9~i+@L2=gqNV;IZBf zlC#C{E&TY;esF7R?#A5w$2Y65`81bi`+0Z%qD5#uv1DNiTir|+Of>-jI9qAXP=<4<3}re6}!?x&T$ zLQ~TV=R)~e4-Y`<^8%f^={~u2?Sn0!A9%r|gYmTS>FJQeyta*PzUJDp7$Yeb2Mi07 zA7rJ&SHs$f$TD)9@!&vW?#2~mA7B(#1liIZL;am4Up0{rXahEIX<4C72DY3O& zwg~y@y5C@oNUi;$%$D~jwRG(QI1@aqFd!`2jAz(_;`ZW731*iac(exlXM3XGykvH+ zTfsgsK5hbuxH`a`6k>;h0F}+5!G^FJV8c*(X%9w?Jk1S9tx>g87U197n0AHnwAgt5 zrFq{!8yXD$oSgmqdxt6D@9VW5YE(|fNGteC> znes`eKbY`^)W(VdRGn*j&KJmi4mtS|xP#lHI^3qc!E(W~`OxIreD}fj)|yW<`^Y{l zlsnY89rg4iAN*Licb4a^23^>uU2_Abg_Vz3fY!K{mewEKUy4uxgVr2&yDf|N198h@ z*s|?Np_^M-oi#=1VUvD6g63N*5 zdGlhTxG)EV#?Xd|&GpKOO1+}tUL99jmwWyF=;B?U1e-tIng%VQ$q?Q=oQ|sGn!yiT zg%<^Prmo`gM$@Pd4aC7e{mK{By`>2;SO6A6Qt+ogzW$xReCMMZUc(2)u=nr3X_aaa zByxn!fyU+*biu8$?$lczP|k0=^{slLRN$10mvxy=ruR=PLlG7?e#7u<$mYrSEuLC&uT-m+?HCcUkrraFPda1)D{WivUzbY^aReFK3@a{;Yy{r8?!l;MsL4} zqCSU7%OVM(v3PYw7mI8=9vH%r0H_P$#aCAXL`#)8wq}vw3L_W0H9!Mi^e|iyi*k_K zEz49)%w-`^J8Yi~>#b2qs)Hfr#elQT&#syle2q>Xsh$8+N(>|mhiPkk+fyoKY%Wpp ztSxT`g3Y7LmqP(gOVK#ll9MuWh}uVVh}GbvVqSx8YZb(S z-QB%$$Er83UD>qyq1b$+)vcS%?|pRRO0?ugfSK*X%aU-+ghAd;hrD)g6j*kU`|`*+ zD~c6LEJ!4r|B2dg-?Hl5Qa&{*iV ziwFHA2V$6*&E(qIf&qKVjz*DUWXtSF1~M7BX@Y4A^v_tM-mp`=Ou+XON{M0AYY6br zQn>0X+?u)bi6P{$I#$Cc<3^k13^5A{sJT4Q-`3{rRY}3eBc^m9NKB?PoQfGK+mr+$ znk|(F4ZPK6$nd5DOzzn$%Xfc*aB%?X?n%3cm!H0Zjx_xC&rXg(E89HI#=rXX^KX9H z2#-IXssVL!cr-kE@pYk!%e8o{*u+!4Va(Ist1=1gVl+`=`mE!jer-j|@5LeVG0D-n zDeg-R1TqmqVpP5HdQePa30?+%M>dp=-(82R3pMLWtOy83n?e`=8ov`tqfnbu^&QTqD z(~u#7@cGNrQ4<&&>RFvH7G$B=1Ryq=RHvi<@X2XIRM05w!gC51r-~%_P2eaJ*Dqkb zqTJbQUcCT!#)X8nljxIQJ zW6hqVmgi%!geuECYVlA`BlxnMV1{|UHyX&YZFO$5><(-jki?>uUizyCHaAs>#yHpv z5H8rM6w|2JUloG>B9Ita-k!j)EH4GIVnOMaa1TCjb=-Jw`}+Jw^igTAgQb@@8Cw8K z8QzbtKD=om9YSD-N(Md-%`I8z;I{klv~bak7&epspmzR8cWHv>h=9Xl_t*?HMJB^H zuE%g``h0lV(XYn~`rFHqdk+=VyS5s&GDhsd?T>sq-J=sDgLId|h);MoXz z=cDJRUmkt^#g`Lgh28JBUbX_^iR?N5vQql&*RL;XS#dDl{j%Eo;^p%uto_goB<2b^ zJWsLnfab@C zn{8sdS;7gZFG=CsR$q)Iz<1m`=?MX728uq5=IR1c>jN}&5H{f$QEs#vRi#y$Dj4vq z;;@8k?{``k{Zf-WOU)S=Cx*^ouj06<@?)&{=g+fv~$1wg{{*AwcB{;5ks6dFXQU z-tP<^rI;WF_i1 zKG+F0S3Z8jVS0G~;ZHZ8_9_uKWfRCqaPLb*qrLGLH=swZ>F7xT20W13GcKYPa0 z0dw*6^^}B#lz>qoc!z+D+?WdU$ynt6)f*UBZi9nCj9_fJwNImUgn?2jKCdVI`MQ=J z*~Gl3@=O$Ve<{1qKdTHo`H|4>cwsF;GE^lKT8;#~lRy4$5A`P8>qZ+MzaJ33b(rL2 zhQ%FFG?K=zE?(|`)~AJrY)_&zy-dJyrx;6*`88`37iuxEy;zFGT%h$r(dPF{Vx%@o zdt=;qSm>Qi1rloXAeq9Vi~xn2PBRsb`f|N0ltFxIjZNLYp#hZw3IqAZ1TIHOG7XX{ zzb6(;%dnLJI!Ztg0;vLU?;4oeB*Q_D1HM!Kv{K7aB|BLZs=yPA>{u-BWGIT)8(bs< z)2AWuN{Cn>lS($TC`4UlfXp;X`$rXC9(9HVjpx+RD?vFz8*YMq*U^MNXCaJfcfZ~tgQENp;}C8YcK{VVI?jiu1W z++0|%g*TUP$+QtkCrFOtKzQUPq~qreKKS_Ue-G{7owbG4rEPCqqG-zv05^Rn6k2-cyChW7$ud)7_HJ z335T{Jowsa__K0V`8nOl0)^Txe&efGz1&ThorTegqhzqNk%`$1o} zpt0V2`}Xx!LhLAsC(ptX3+LX@75E29?1*2)KmSw!Be zK`hGF9(A6j@M*ft_jGHntZOC;-|=+5-KrmmC|HXJ7r%IZ^u=%L5WQ!6-2jg2!%CwK zoWa(hCS#R0oydAKA@inDEgOy7PE3G$%&wTmz=A5lrwoQpEmq92VSBt)-UUpil7s*3 zrdVyHp*opQCej;M-gzAFfxiT37#ckaduX@?v)vl&^*aKxnna_NTrX4=xcP$~J&oXn zA}5>)$w9)92BIWy*K3VhBSJ;9`Amdr<^2(iDMmwxL2HTR3xx`sV|+{0yr!!gxGG=Cc(D;{=n%gbz(nl`e}9;RaYL57kNyGeuC5rWscd z3|b=J8TL|iN?W8T%iPS&qeoXin7eUnZhOI>2EeQw_X9N?Qjqz6Hk-sFrD3Zo6?@zN z{;t)#3?2U}Gk@pJ+m0mRjnP{l%-OWxUu*gzVK*L5s*K!7VSJ<6rNTTJC7@M}@`YT` zs_{m*wZ1JRrdiwe*>#)T*+_yvorh?E0mIp-_TOE8IH?C}jzW8h0$4TrT z_GZLF&6`1uX&h=EfN6p}lP{aG26N-Y)|DAsJnj?nJtedejYYAfVcWY_K3O!+J2b&X1JF9)n#?>}cY$UbR# ztX|~%e>13z58A~}7er(29^&wsy+q?>eP`aMCSdhGYbPJiS$%AiZq!>(p%Wz1nd!;j z{O|wr51)S4ZGPHpNVwEYZLdX>W@5iz7wUsXIqTkj!{T3C+L}uun(Y{-6-E%6Q(*Mk z{uWME<0~gTk!EDX!sqisB1o#k;i#0Wm6cjkNoR1Ie(V05{!vkklk)bp&CO&jZI}1Y zr*+Bi%y4O$g>)cRY(rc%TZ#nJsKe^SS@CF+J&~hSoy*m5%(rUr0e=WW4`ehYOb=?H z(a5BN!Axn;qF^!3Wi#b^xjclgdaX*Ok`AvO;wyzpjXeD0FZu&1LZeIDVSM-;My-92 zx@Q2uS1eBk4U8B(gB^i*G{^)ICExEg3W1=&q*ay(A~eVjkIJ*5El45jjV3<|Vnb7Q zT6BVIh!fz}-$Vk4T9IR9>DD_iK)32w9cn7~EZTdayYt5ThBL}Gt7Ck?%f337R)~N&%b(J z^3GvT`C!P&z5YM{^Rxd0-Pq6>Em4`j`~Jp?#u6dKZ>rpW`NR)wtTe`&^c0_p8$zC# z11<_E%Gg)+5e%#l?N=bI$$=!0(FK0?XjZFRl64g}1?|gS-~b;Mt>W`> zw}=Q>u@=iE#9E@*jojjg*XyhCD$R$SHetZp<&jex z%e%4*vkhK61o236f%-ka7Cz0ZFV7C!Y31cX{uwfxmaEXKsknL&#E`1bo)*jj-Icj4 z*i8MXRV-NUMsC>5vzxAjUu4OG!b%O;F%=4jFJ685TZmcrCZ$D7S#2evJ~FCT3R1Lq z1o67awK=^n&5Swgh9Pdtg%h1VofMK$y1jqUIR_X5mMt?(rLm`ECEzG!Ytss3hM~fD zws#~)ke!v)L`p9m)>WoNte7o2Cl3}41#V}^X91gniIw*YY@sk7u(8@m1{onujo8NzmyV972Ee zwEx8yUnrGcuiW47Ak7-x^m*zpUnIieZNFggBtU|vyZPbL+QRmHAXPlcfnC1W#KM_T zsXeBe2es$_+yDBfrzbCmm4a9&Jy!Zrx+wqZ?%@;{}p< zwUo;@`Ya3)RBCYf`56+gHN-f9x^T^1t>L~!h^?Ywaei8>=jfo^^=^N~1#9P@AMXtYqe&$A`4??RtRC3?FMseyYh^sF_6UEj<65vo z?j4B-if~hn=4y39yJfZ_4C@Yre8?dkrn8eLm%smX*9(8?3AJw4_Z3sLDrY;iYu2`D zPG(gu6@a5eE*IuI=hb}m<(CW_oE0XG@}Qpf+pL~?z~tC^v<|^y%e^-j?&u$E;FJx_ z?-?|~+?!)Vra(L$S`SIYjLxF;_y1aLzc{W}&Q2R{q@YgeZ1?y35qf%g&<24;5hZmY zs(UHK%CnRdDp=zge&wxOi(A$;y`H9quzRl!K_IDiAi#HU^u^J|KmA|-^2;w@HI+V~ z>(W}yk2Ssh{`3?qE&VTF^SZ~z@V$ivt$z$mU&x_>Bw7}$3P}Xa4sR+$0=KAMkjNZB zzDnb!(js^Kb%?U`59$+mcoR{)mRP>?AQaZFhY*T2lSYG=>|7l7709FyTd-=S(PZ4t z?t&(h*Uy`I$%Xh}xMjQg;k-K-qx&`30I0PxB=cdg1s<#h#5ti5BVl0Lz=iUl1+1r% z1d)Ohx!vA9pp3>Xvpxtqp#dnl*`NRIZ%3dIs)L(4nVIZmX^Jgn8)s_3*Bv&8Lx>&X zNj%l)ho}VFp7hcIgEdL9w)*oY&}B*+)|YSn+j*nIJh!FW(L#&4N*Xo!uYouOs0nyU za&+L4POrcFh%d-D6EgDQ+jkz_!)khW$93gnmXBmc_pO-A9!iEYl{SFqNU}%yOI27; zP}$^+#*aCnn3^bO0y=VG^~z7a``%U4^Ty)C>KCt5@rXh#-+LU2Ki(0Ow*4oDyM6t8 zKfOY~LQN4DE`0Wf-i?LJCl`M#rA&w)_4^7r!=`=>;GB3V6im>1stkyPV0_afR_Zl| zhC(pkA>`9}(`F^DQ^z|O)vD;#Bi%EDD z)bn7|Uk>l=81M*|F9`~?qQNI!?v_u!IXU^}pZ@gwi?e5Jk#jMqSv!A^IBNBeAzPhF zdX;VcqYcffe>;i^F~6wxp#)HtgUz2q9?anhVLa?L(}{ewBDTlVy+%84oi#?QBgUC7 z^6;5QY2ZG&AAJ0i53a8mur|I7FIWzfhh$ z#RFDolETeH%y%lScDr53kD4lkl34-_U@`?%V74``HG8$XAc#t>(eIv~4(ZMbe0kjN zP!NJ#3|rbmk+audUPAlrTmE*e@>x}astC>L7qEUnrDnNp?GEyUPQrTWEXRj$JiCKtyQ-0KNAfy<-i!LaEx8SA1@sz~SwHownhv$3E5^X0T0sxzu{$)e{)|usY z8v_YX)~qv;ll@RR3+aJ4LXpO>9%AI7NFb|lo$~PcQz7Qi9qy*MGPZfa@l;)3JGUVU)KpM=tR8q2fu z*L>wlrP->$H$11n{EE$$WxT*qmUll+uxZxg%><39ly1js-;4}~wK@=6`n6IC^hR77 z-k&)|&dJSkMu9*V5KTQ}+1TTsE` zRv?l{D(2r@G9{@G$4_ zknTvhBKqn>Iz@n$KChAym%~RUP21TL67(+LTE_#n$nyQ4t=xZS?are#zUbceX)Hhe z*MB~5+6HgA)_CKAOM@0CgRg(vHV0FBL(t*Y?^tiI1}nY&vx5--)%=Y`x9|P$=y5CX z5Lq})cf?q&r+VXDv)gJ`Ynp3zXXEA3le5F@H9ol0^99F$1)oSlQjweu3`nUs90J8#bpkz{+QPxH>EUS z<|pOSE`_Q>rBGlfkC1ajXaJW3tJt%{c|G+$$MFJ%IOu{(CNxfkA2q4UVZFf0otLLm z7+UcH$jjosv@FXBbw8os{ruv*4~SUWwB|rqzR0m4(a8|gv(e!ner>i(MLT4Lfg8ek zO;&>2@G7g`45-<~tlno|-^7u-kp#Z-!ykPA28kqbCE!x3in((s2^ZM5N9GCxI_1{; zBgCUsZ#ff3Nycuux@w@PUvxkCt9z&=CGLE*smfS*i1=3*ePKG4_{aa!64gn*P81{V zG|9)b`rhYsc*(3;+S*v~ZOjuuy?ZSl&2##9-uS`WnuS?B75L=V zoe#n)KK$qZ`Jys9F4lqRoMhPSvW7w%fK%kQ% z$O0(TYUN%%u&ueT0~-|w_&ta|sO@T{{Vjbj5YVzkVRUlT+yhOeA4ySqjadQ{V`tJ9 zX{FV#Fe#`o0JXovLa#cW$;d(q-jNuR+&euUbozishL1^w&XJak%!FgOAJj2fl}~1X z>0c2@&TqAtMFz9G+3|P^emw`0sW%FF2wm+Lc=!nbr>gnwGY?>x(aG5fql=gG+2G?H zM>y!9PzOPDU+*8jBF%XR64!;ZDd;15TyB((N`+7q(ac(!W9^+8XgFeb-g=}Xv)BLo zAN|!|#3(M1m3@pX&Cs$ndNQCbmQn_H7 zOUhsy_7%nMi4tI*4GvAWxqb?-OpY&~G!;CNOIln+UzU&4`XqeL9$bC@$M1f)Y1?5c z&!(FO82gbq<=aYo9YndTFJVjfo=b-t?&NuXPeh=-~G$)+ytjGbT)b~PWrN^l4khg+3C^V zs9#8g+`;H_)M_Fmrzz<3XcqNg{F5Dz<|#B{)-AsiyQmWh6v@?!!?Q6&kx{qK&nG?V z_+Zd&fWDPane|ACiNrY8{IO9CU^6?uC4=sstzA(PKKJI#OoSHYToxFK8Bu@B#aGKI z8ZKG_SW7^XN7RPrPX?odW_|x+goKLYQI6>;6rL$!Ziv#`2hV!M%xWBMb_F&+2CONL z=BI4}Ne4CS3AXBvdyGiET*X2;HMs6EdI`w=L!4UeKRupY^x*)OhfCq0TjyvvaVd#x ziBH7ad*?6!PQ|0VDhRGX!IyS;g+d~!h;fvNCysi6^H7hAc%pO2hDDTfC#M%>qAUiy zOuft{5;my_X<)zsvBO>1dGd9&R~9EAw#1VT>$b%ZhktsxDosvKS`p|FV0Hw91!XnI zh+eOA&W8nyr{^Kt(#(d%X1n1DE?!Hw&6@=A@Ff6JMKD_(p`!HsFyh%Y12-$qJ=*kbpQQ3;Od$VdQq1)LCd(1%J}_r4~D07tC4M7)=?4dy*fJ_@4f>4 zXmO0+)jIKvJ1dgiA(Fahy7%GzNB3^)#|OKIQw9)QwZr4RhRh9yb#-@|+SO~92xYL7(A=8o}H3#302;qyx;t}t{=C&h7$<}2DTS!D!?zlRKq`d-L_sGs){N#W9 zSGTg{rsmFvNWFI6O^lu&wi?fdQmJ>!h5fLBErD$YETT&Mllza~yfYW~x%@a{%%L`^ zVY3M3_-a%bkg)d`$o|>Isancm;KPKQqR-b+<7MgMsP|cIaVKgMVg1G85dPVEWHn(? zhlh1&wAYmvp4kW%H+U7S_ zXA<>RyE@u?`eIa6#rl2?=vvischbtF6CtlV7!)dDS?d%oCqf)-v3OhrcRv>PF_m0Kd5jP$? z{f%*{l@pf!r#Ies>-}sFmJR`dwi3xiik`F%PmhOtM_>eDIMzdDX5rVEjKse8)>~Jj z3%A#2@6H9+Q*;03VWxsw)jfoK^n=^1n$cVh53<!W zdh_~vAk(iGls2rrYwiBir=NllGMSwoKbwMEOB$Yi_N(9bO}>E2aVE0lBd~zlJ{leL z%CScvm$Ph{w#xaaHF?avodzcjxt!(4YO_!Tj8vV0gu{VA)#LmAoe78w(zBD_$2BMuG7}wNdFF zNr7Z4lupKDx~SAD3Z?z06Sa)`NVl+GYQW7=6=E7aDAp=)L?Y}PvVF%ZDQYIDetjM? zo5Bf_LJ)sK1Vv0|y4T}`xKt`~-F|-FIu)Mu+s*9mNCrJoOJyreB$a7MOu0hWcF%jMAj>gib9#8xl=JDN zbNakSkrd26Yig5L`rUltxCDIU?3M!N7vx*Q5e>-0-BoKtkWomHMX3jfgwhf#3I7_AK zFc0Tws6hDeY1D%rG?f{7!gA3s4=2cS2#$!=PP@%3P20zT0U;x zaYoG7zk7FQVP<)Ce)A{)?&>C;O%%&O{sW{dL{mzKU6~v0R_Kz{ifmDhQYyP!%s2gx z>vOK1#KRe(xO3~>`}mim1bmn8Y;N4s5;esASX15p?t5>%_13!sr};^*Uu!+ zNP-k9tybPcDTvRu9nQALhcBPLes*yB)#*?nguySrIGUW)s)N?+VIHgoQF;zZdKGhnYlJ zs`k)zjvbsTU%zfT9v0gAEi&OV=pw!U^qXCoJy`z1oaON?J?>A)L6$^+_V{D>md=u9 zgj_Lg+0hYoI%D+FK!!o-Q1g(tuVPB3BU&>}=axsrab=)3_V!xOx(CI%rD(=`MN1^N zG;`KlcXy~xRHip~Hn!WXWGD;gTF8D0^$PgUI5b3;6r#oMBmfS~_(MrgsE{R7bgc_< z{_y$|QfJ-vIvGiX*iy4K-Y>(&q610T{fqrkE6;*5Y*?W%GWe}8K&OiU(Ss$Tsc5Fr!7CjO zMzbtjY%@r0GCesjM#M}g8Y&9@Y_Top(vYy>qs~akVFAQ^*u`c7RBrlf*&HB*I3Bba zZ@#mIiX3crnHNwoL7?-{O>P#DEPYXK&|wv+L1lbo=ACw7S_l z^J(W+8lZ6~iAThojPp%0X;vDPK*~d&001(KQm9#NS}N}j-1?y38eUFk8=*x<)&Z7r zMJcC%n#FQ4Jd#NoRvtQRtF|lO|DncFl@Y$*pq6)>h<0;*8&o;(#Cn@%859Yf0+~NO z=#}biE;VSh2IZr(VRw2sDo_2_y{U2&_~8YHZTT~VH?-|Zd7K$M60j7WKArB5UVZw@ zlOtw^Y_?B|t`K%`0YLPF%QHBCy*PXIbg*|e2K-H$8MMZ~JQ0=C%W@~%Bil(g&iJ0zhtqMbx6Z{DqtzZxQDqjA=Cva+ zC6y-)sR<^Xem?300+G+|3wYzvv;vIiR!PZNHnoryiuh9;Bu%+;EeD6bL9xflYPHw^ zPsV9o$tKeoNWKUF`)z>5nv4_3nk@}7u`GO-MH(-5C!KyN-55f9LTa`K)ALuaFNe*F zP?8aHZ!DBsgwEzB5z$gsweY|WI$;hFU7xO$x%w%P(Amk8mu#bS3?*v^#W@dA6TtmB+c9b8vuKedx>`!;U`Zz8_>VhsTQBFOsw`753V^X{ckB zvKB&9+|4V2&x?a$IdZsNrDUyWKXp%ZMgXR`s1JSJx5mmYXy8e`)6s&8=}ZSVD2 z9IbvmA%N@ZdYm7sE#B|1LpssBZqw6HzTJ#S`(Iy-_Kz=~50A?A#KWH$ciwg0xKE)a z#StaFR4@qPqs>GrkfbC)su#ef3^v4Kr(Y$-3eSQG+~&`liXsET&=dvD>srGXux`4m3fnA~8UQcbIeT&W;>FQa%4KEL03ZicZHiDn>v2$)1p@7~Qa(PdvS8VXVuzRD zb)Zm2qD8L@Dl7F;X$UuXh;+3?D2n&{5-^RLOorW6{9?V`ao9#be6;Xz(Jvje5OX|lGCekJY5k^D1XgVffZsC=jlhg9 z4Fy?AgdQ2-jI1G6Dn)oUrE`#kz;CDV^nRa7#g;Zv&10kf-s~MC_k2=loNz*ok2rM? zEI!Mf6|Fgxccj2MIkV*VI1+xJ=x}Ju8z0@mfWdH)T$s6jXEs#=bgiGtIgO~tmSw!* zpvD`HSJi6lfu385Hoh1-QpS)<5ANSd%Jo{e3=8O1$JuPL1UlR=v3%jluzFTT+)26b@n+d! zsrA+L@Zjmo&n|!7ONZgY_~_5xjZ`xp;XDuk5>&q7T*FO4{QZqowvd&o3=f<6Ixfgk z6+V&~G2uZ{klqRsU@^%hg?c{$g(QF~BPjvJB`g*O6%z1zaj-~o6=$3mSthT*AOJE~ zU=>K?G8YbpBC*ucG6~xxDiMO|n8Y{tnk}3XvWWyR1nBy~aC!{WIa1zSQVZ`2rd`{kn?V*e7`;Oyr9V83p|U0)y4`f2FsOed6kb_XC6h>DL_e0J0ZTJ`bz;*MUYjh z&EYbSG3kZ%y-9KJndHC%8gGP``t8e~kGq3bwb4EKRf|z}R%UL0vfZc*n;p3(9{}Go zR_%4wR0U#g0+kBIqYSOZ;z`^3HDA#yv7JVm0EJ%~gIXNdsqB0}ehK*>KKO|VJLVio z=v$|wgbZCVuk`iNkg%YobhZYJG5DQ$ie9y%y?tZJ36RxNjm?kt#p2$iTY<_(tGNpZ z2O8|NwT7gM-Slk(PP25U2Ns~|>o2|nlvt=DQNHi|r8gF7Wn>4N@zN?`%Hif~SAVjo z$Vn38S#@_@B&ceGOT`PhLI%qSIheKj5LQW}icGac7}>|-Y&ZpiX@4Y$TO4tP%znzb zaNC1enJvSRv<%!juph&+i>;-T@bRUPO#_o5MHo_%JWH@@uP$^unOKy={b4X^=Q)7_ z+P}n!S<4CRC{lV(&YdGsPP*y(?NsyQXmduWj5%!^g zA-D7Hjl`rA@bJgcR3;rTp_CKtt0fNQo9*(jT45xGA<59g>&tI`@5XI~kM#7q(;e_54fUL+dmhmwT|_a9HciUzs!K zyCSBvXy3c<83xUy!9`8_q3~|~qI&err$+^8EJ|%r&35feKD8eB|0#N}XGhZXPVXGJN>@&4dAc<+G(5=bDu_edb&y*a*4xvuJ}?&;|na)ulZ zIpmU*xY~^kF%%(%ZWOv$y?xO)-5n>oPbHAw_rAa1^CSYRYd0K;l*?Z~JuzuY7<~Nf zs0(#%vnDA0>E-2l{rs3Ju0|qj?zL2bg_C}3_V(4qU^K0lNzHU!yGjA=$(PJeK1L|^ zW`IPH;H`O1R2f_oc){vuJfMD4skJCa@k4{b(ilYtpoaEO_ z=4*Acf|p9ED7a9`z*1IXp@&+CI(J;#;S7D;>-CF%wBBT>Bvw;t)ta8Rsv2-rFJBu4 zR~nqWU}8nOe1S1Ycqc%;pec1f>zNH`P$j?|z^vci4mh9<{YXrOllOkGkSA4ccL9l0 zG2dc@0|skHNkyWnRuH5n!6a_|tlBmL;iy_0!TUV0>0DclVjNFo3jq&+k2dZ;4wHJA zv0;-|#%rOS-TAxela_zq+bIPC$iYKDFJ%u6ND=Az@Ss+txNH#zpA1_(Jov%)KH4ws z?eA=P9dM4iQR0*ATA4FH|NX1q{BoF}Oix4^69il~+oojFImnsQ&Yi=sJ5}pT8hH>^ z6-M^pHi3lva?)4pMO-YI#qm@K6X5BCM50~FKs z8OJN9n!@IDKuB`#`3R;kV%bbNpUE0}ds-3GR~C0RZ>x6fhHoDv*&^uFD9oLOK1eP1 z(GOjJb>0(K*S^19eqlceJ&JRzlQ;6Pjo#eYbeJzM%pRPN_S}uu=vi0DY_0A&7}(+D zoNG%9X^{Vn`f`18adJF5nTjAy5+}cX``Isk^Tl5`qj+{34CYr?pm;lOwoj*%Sx>nf z3I=*}Q9FF>JY4mQ6*COuhc3WPR|`Q(N|)8KC}{{ao<3=ls95KdXr)~lSILaYl7RhT zDrOrmYIPw<)wNEAQ2L5;Qqk$cq{)#4MB$WNG)IU}s@|w*6%aICL<$(5@i^gEBSSzb z8jb}5xDL5{g6{O28Yl!2mRI{nuO=cdmhvUqw2CG4-iK+G0`__?k9wUsoGNlhG(@It zHIt$-SON%be)_!DuT`FZ)+|JEZKA+c9PTv*4a`A7Jeg5NaWWVU_So4BSTZJ9k$WZhdfQDy+xh zL`sENI2A&L_?`Q6KV0|iY$bduu@~hh?D&)=tLXSfebD~F<1O(KctO-8Yvx} z^%}KmAaAO0En>-ZvE6N`#q=g3V@SRRy$yy4MROURv*r&D4?`JRj6tz7vMGe429Q(E zF16I4-;uW;bA7RfB*Te386%nGsy~1Es?t#l`cZ=fx)?TLYBP;*zZQ&vhk2TaYRm;7MJc2LgLZQM5cqThWES=LYk7}0a)LcS_;%d zc(OO?dp+sp`)nr5f;$SvO;LWJ#ISnz*w#gbV{09O?|nKtvI>NuQfWyuXB8Y+QRbvZ zD4GcNZSC5vfYG}>9 zmqJmIz=$k3sdLeEj_Hg?Gcw+)g5H><9RaD%umq$q8snz`c57EvORv;={Sm(I=K1c> zPOjt!ERM<;RJ>JDhl}=Z1TSpna?XV%$6{eJ@cqnLAdjm6(H3)_T>8+PE$2yv*}n}B zZ(;MwJ#6*E71u#NA8;fBiNmG!RBm3Cpn5P|IYwNR@oh_=I)y$t$*2E7ZDhqRiph1GRcy z&om9tLDfQwtJ^#D!u#G_%}kumYT$-2Ds*DeO_$2kkGWmv&Vt(;PAzSC)AyUDSodR_ z+WGSvN$4C+K7Rv;eUd*ApqtO=W=;1mQ*g--&E3BJ{(6d@w8w*ispZkupwgMXxENF| zu4I5)aN4Ys3Fx*|33twakV#RklUBcO>I}(|Wf^)U5_!}6;C?Ez=rKIZh3a)2ZfuS8 z0+Db?C!hCn6vD6tt&inev1KMTA7c>DnkN^J_&RDnofx0KeNI-6aP~9$wBkgted7PChU4%4&)@j=_X>weC7j~Wy3wwd zvb9dH#;B*E!r<&lWr8?S`GJeJ4ZJnHI29`cF)O!W#R8&jI_ZrI>0%}#s7dSaZoC|n z!`Waw-E8DCO>NJcKitKo`v+3Yd!&|RRYUDMA3jvVEDRg=BT!W2`f8Em&%xA&r8=z| zpQa_yBjuz;Sl~wJoqT3HebIGgQ12G*UG!!g^Y1Q(u=dzkO*(Eb+;3dg$Kx_ATsXSd ze*4$wN^Q`$;2;|#TS8Q9Ig_u>c)PoM1CbNKLvi^oQPMYJ{l*?-Kjgo}Z8N zzTiO$Plk4vH}*+J4mXwN3bn%4h^Se$p`0ddY9H?%hC)@noJn1;3xH+KO0~@TOLb-FNS8 zc^rXsZVu2O*RJgZHaW6o0S9LG1pYnf&=jMwTn(ns7hR`2ESDYbP=>D!8!9Zni*-Q2 z4NL>V{Jj?w7=RXvprh!wYZ*@B3e)a|Hw1?(hW6xqe4p4mYcBX#|Cg`* z@z)>h7HxTPv2+CH)*@Y(!Z_x;z2ws~$dFlD+6?E*u5>-gPbd8BxiuM|v^kEWDr`Ag z$`lMR6J_!FPnNwFR`J#1U4cKC3O=iY7_~8eZHE zYDqGgYMv57GN-HdxqNR;iP|>hj@BSe1cDi$48qT&nFP#ZvDmOtZ4~kvx1ZML)9ua4XmEDCrdC=w-E@z=DSjFlX+w%*uP98 z^v||KTaLBGyVus|K6Lyhp4z?l)$gpuR5&N4)Q)Lgm7DH$avxXxLYNw(UUr1>sZ`$>Wz8jZ%T_TaM zPi1phSXimhIY?s^ay#?;B2h@ffUPPlpjNYrtyN|**W)D}fjycknSx1_T9dzccJ^9z zZX&gI?GM#wpX;vb>979N-yh=zMYEO?sQ2nt^x@TIms>t0EI=Ep~T~oUO^IhSj3+WW>0#r`^iKm z&B-KWpERhP3dx8D6riHo2PZO`=f%lMOP~zas8@w7jb)SIr&1L*Ep?$WB0*Gzl?OT% z+E`iHSpVVGT~9d2(cS|$QG`sZrpbT-u#`d?yy$fpXL1r-$CE+ZQJ05SI?dTkJOn^FwU#3lyZ38Ve{L|1p(>0z9g(fWpNP?FX-I){&TWPx4?Nos zQj!@g#zS`)EGbNCTw--Ea19A;IdDM!lvviB_NUEgt+SPsOBqzH1mopAs|!`vwolXw zNHA8Ul0`$1yxZ5WyJJ9zkMBhi(~QEdvNIEBJ4PI4Jl*ED@8(A#H;}YAYl&PP{;*wZD>s)8F*b6D86Bi4WF!&|#z0B7a}b%k9iZBO(MqKfh3z}3Tt*WV zI9Ju>$j=Y2&Qbjm(oH05TR#fNfyn$tJ#<*9{Nlx%(I;R0Lyvy_&;Qsx)~gu)sa2n# z5!e0g2qE{sxR}BaRjy6i7I=_!t8KtoefYKoB@9^9=8HgD4eZUWFFV5i3{7h+=D6*R zV7gkbkP%nLSHf^G@M)P;gugUvqblJ8EEHNb@}g3NPN)L&^p5(}=A#L5s%Axm>a$B(Jfd6rC@yt(Q;F#2nl{fp?0h$`c64@u0oz&bpNK*A3<{M-r>>}IAXDurdb3=X zFP@2Us@Xd~(}XS;fkRE+ixBkNlTojI%<0XX(xr=4ld_(+vk`GtvmothRHAbmn=T)o z*$w*E56FbSn8&!(j^|b~>W}R&@_An)U{qi=crOVSXMRZ4^$|Ym&cfS3T zt%qA1^RW-#o!>f}_?EW=ew@yB+fBLbU3=v5mzy${pyJ8HN5yQ+sM+=0YJn}z%*vBl zyLIt&I(=@B2i5Vk-tK7xf@3Ig(L@h}#U$4*D&ebXJh%LAxSq=$dLM3Oqv_ac4j^Nl z^P}eAnHh2K@r@}@LVXOhnviFd_DiL7B5#QvXOL_52Qw2-ajB0S7PYexl+2;UtT{cbR?1bu@s|vQ$bhZ)}C8f#ocXkVZ84WMk){d(N}+*+@#A z|3QTmBe7!-|H>Nwa`sRE^t;)o-Hd2)YU%8gUw-XK{%0U(Urt1vC=#go)>k>a>wFo}2mr5bjtR z2fl>CRBQ;9j;p{?=UIZ*sjXi;3&qm{!}o-k+Eo-LkErcIyHk!5l30eK?5x+ULSvBO z6y5;9WV2#x1f^i<-r%$$bX&9u=#st`L)tmdQ6Hdp7Ycj%_irs|({nK96>x=s`Y#y{ zd$+v7Eco;a0cW<_0`XKm6)IM%XvVh4K!md@xY@G1C#588fk82qMn#eDV0zuK0GbE$ zBoq*DFuTAxxmP9;DEdQu;ql(?`r{j$`Rt7c2OC8m)LBi`xrd2?ohz%(2vEsEL4I?4 z&kxnp8Z^x_s)i@-;I)lBDYL%K{q=c=Czf8bjJ4e0LU1g_lX@qm#aTpPZueeu^!oxOME%Ac(YGTWZL`7du?|K@iu&Op9CX?M<>C6N|; zrucQnk}9+;rkic zT}dwg$R}7wl1%B{lk=A?_$rhOC;@NhY6X+0;L17l!jlBTvue^VKC!RUjFJdph zczMa?W1T9sdKVD4NRSFg7k>2b@B2I~QgVcB!EBZAhIdzope|D>MBK5RLM+$g{`LPb z_70=trUVN0$el-zZ#simhu^~>Apsn%hSns48st8ows0vQE=C&-@%+W4)g6c;NItvg zN>f16z)b_!)((K#K}S;ooX0zk0Bv`mBOl`7DzHvrhif11ieMo(nPMuM5D-p616j4g zH;ai@-zI>H(rXztE04rB)(}!HqNau*FX*I*m**$qdmKzVLB zVfeY3$0S@;J?&~d)%p#Rh)f!!#LGlFFW+sI2MVVFEJY-%-b}HIH zkOGpkDM3tFSB%cMEL8eJNp6Bc!Z`i-*~R(5NIMVQ$#?<7&`WYuatDGC2eR6+=zgZc#o<*{Lf~}cy1kvnO-&~1 zy@Y-|m{yxa(W*RYGMye7*iGicet4DTN6YUmV2whi@eAt8%9`JSEWGn*k>K%RBvfK) zM>N|m7d7DcC>6jol(e1*W_Q@FP&RDoV5N{4&mJ9uGy^!zEL ztE%NNB)hS@n)|z$_3XkPT%LBBZh0SRzfwzpccgJc;EIm$llXF;j()i}Y;^O=%a_zK zz|}q*PD~--ef-n!J@k3+e}oMtN%Ob7mo34Y!30xlqc=@trl;qB_rE?ny?lCd1b#?W zYF0YKrZze4@f;n;aOGgrhvq4>=!+*G-gTz*Bfv$7Ip`7<$rSKoY8M>_)_#Nv#_>!f z7C#gxkQuakLc48J1r!Ob+{^X5{agShhD^hlc%; zY&1in&K*Y@<4q7#HO)aghHIt`mba6!3KKY8`5m3^Et-G}7{x%l3CuG~)CT6^%$H7|8=&#~yq-1!gR zd{j{4yZ2+oV$o>zW}mzq!ZN2b>doGq0fnpmBL@v3!t)RS;a&!ktJdsON` zX3Bal1mkdc9gQuN3WBG$c<6#+jV!Hy`@=^!|9tHX_a&T%4^Ooe8_H~^araG6EOhYh zzxi<0QBIksA_aBmr}bjHkE<`=UXFCZgOR znq+~JMUXL9;Rz2gR+RDFO!|i18}}cgt?|c=Zd?8EPyhV;HxTn~9EcbPu`nkWzLd#7 zwT;PVPv8zfQ!oCn-@zgE^^;DgJ8l}o-sQRMMHO&^z~YbFb%===7;Zp3?w`BoOc$#I z02Rwvs^E=L>5*LigE(O?s3C>0K^Z z&{T>^oBg9xr7<|YFewr?9?2q}N`lIgAAqa}bgV?pAX>0Vlgm0Qvoa${aDZ)aSTvTR zH8R^hHU%^l2pxu51s7ptnumZ}y2zCwIY1XVk?Wo`M(6c%94!QjmR>ub)|KNfC`M(i z7&!2aG_!?mWx5ULz57ckJYhZ^HsL3NJTsz!&ODIYq}>sJ>+@f|ecDfNYyf$%aAV6K z4MKTl%h4LT-H&hn{Oa9I;JuAhw(NfNXb~7%TmE&Ym8Zq=F*p!<^+`&o51XbEg+1Ju zBUQ%xU@ry}qO{AMWs6kZVi8uc1fwa_jGh;U5@0)238ZIuw?p*0Fzy}?C#OTR-+6XA z>tym!QBH%LCz!HY|N8&-&cfN!eO8;h@%X#n`{;2#`jeZ*dJ|dU{dg$ojgi*ybXaGI zzFeENTCKCbSfBJJ@C&e;d83*o;xPtuO0wLD^S}e^vAeqx5QJTxBvNReXiE9|2S2@X z?ZQM15%-&)^)mUezfbK_W4~N1oc%db{5fyuN^c8=fJE zS|Kb9B}^XH;4lEhD}0`Z(>bTg@F8u1k2O^)N29rn+TQ3TqT#!Al=E}{2~y|EfzV*DeK6vFF|52(tByTk>J^Y z>U(x5+=FEj9ht+U&Ooktgm)z%j`uX&H?dMF&(E*keE*$gMK(1tR@BFh5^h1N)$Sd) zpV;=xrtU^3>iA`y04Fc((E(X5HBZi;y#RqNo-BY+EiY5mj)nR6oX({s=XM~{d_FZ5 zP(tD5LbE3(vlPW*Ki^12mc&d+CZz%*kE?1Ofidvb@bwlyg45aM3iPSSO$eUAe%FJ4C04*jx9-D1>)=~rkfIM0vSof zLTQX(_~v*Btc+wJp3C_nB2gC2?(ov2(3wlMbu2CiO3M?qsKj$#K{h zQ>}te+}cxqxA)w62CIvPC>)LS((2<#hA(;63$9WU zp6iSb@cno(v3?MHcw=j?JS_7s$3{9KQc1SK$wh_CRtzV7d31Ta`JiF+JEtc-VRSM9 zKqEw+eMD^M_BZ~A|L)GTXIR+Y<6yqqFH*(FjtASJ_kZ-W`N+MGLKL-EIcLzL(>DAM zoSXqI&NNv;07W&I$20K+o=WvvX+*Uyo>yv6`Lr7&%b0fLW|i-KPN*l1^KK&(5lh#; z`prN4%1_?;$e9w%1INC^Z@mg>KD|dJkw~ zgoaMoz{c%&e)Pe^+PVDkaW>nsrxRH+vw{RlpmCK4NL4Axzu?PyES&LZejhV{H*LLj zb}7UO6pQ6bY1po^FU~}q4J~hNrPg3zjGL$MdUw(hluJ|K6sD=*j?;15x#UV)m|`iF zM%{!Seca*A)5=h(o56D9%Yf$Sd}Kd+)ljAQ-ku9Rdw$tAdc)b9jyjeT#W?I;(?zCZ zR;$B)t8LodQ%RsGIe(Zdm0GeuE;Wl`Qo>GY=CbI^tfsyWscx(?Kk^xs3P{q14XC)@l+&GaG>dAxFb?KE1Q^ z^V?V^97y(g&>EN$5#q}(57MXU#Oih~84Ry4cq6`K`Sy>$H#fHesk{;(wd;t3Z+;53 zslJY2jecDmPN~plq7A>N*^`SFqQ4qGuM3dGH8ZJu_rCFO|M>gPB@bxA$>^OOAH$PV z{_fSe0Qk4rRKTIvE+?K)74IDzqFzGFrjDC62@qZyPS!bsR)s>vXkIjpmtPoYg%5Pv zzTC^FubL==h>d5SwQ6oD&x{f3)V}xczVfy2e`E2^-Hlk}!JR|2I@-DNt*_pd?`>?| zcy~T%YK@*$kQL=pWS}!J!Av!L!lIudOFc@d}nd^wDq|B zn_@V!90(j_&g#~9K-E5Z0YTub#D6Rl1~Yr$I{sw=xpVaZGJnlh`RD{W?#>4NXG#ng znZ6R?!FFGTfJFjk_p8?7Cy^=ECB#t4JUMJnOnl&_LC;s3-qvTs442jAFp?vRhMN zt#d_HtRBB?ix5%;&6WyNIyysSa|oK3nqpaCG*xRV#pyY86ADRpM(j*sUQks>m#sF6 z^PQT8#xwEoVF>7w!1swdfk}#pCOC&{s?E!jrxW=3N`*oJkCfn!yW*gk1ELDz*v#Yc z^*FJRKdI}DhD^~oR;k3OBxuNMbxqMVwa8H6-7O~qlptjFLCP`<(#sYZJct{YwS?cd zgMj1|S>9GFnZ=dOgdoaR-;~Pn=s~QMS5Lt_%gB(84y4~%4;_{^u5?C7p%~hFyb@mU z*RsKV-{w2-|MdHJ%fM37p_m&>feonLf;GwOPcK2}8r$DpS=$c+n67#P*A^I7PnjOY z17vV#dF%SEcfNPMcCb-O-%objd-r|a%0@9A!qYj~Q0O};V3k%nh?jyxzG%QYTw=l2 zS1K0WLz1g%bf^Th0F>l*;V*t6m^=GRD|ZmRpI}JnC{u|;cVsgY7AnJ&{y6)UuYKoR z*Fyf~IbS>oa%Fq_&JRBP?oHgezUNqQEIi!v?zlpJ)VHnV@x0IjqKN2U%l2*m&LIpO zG|cA1PF5|&vI*!*a@wl*vro^;-{1FfWN2^UG1_S!KY9A*#S6oOd^WV-e4>&(v+X|U z|LZIaoL-lo>&yan|77f&rjP$=v(dH^lI&Ua|aJM)0BTVnCX`y z4iAdgTERd(n?Zfv2too(vIMS|G^V1P$d-3s)SlQvHpboh#?{oOr*= za<1K&U;{t_a63G01SGKrJq!doGz$;Jv$_l9pJ z(5JR|bNIv(I|lNla4o0R%0z)1*HR$@H-n`WKvz;#i{tfHuW@`- zrARF5@CJO)@J5NGuUN+UB5mMsJwxpb)xpZ|+yAo*DZ0zwzfA%=V!%8H*v%I^wz9a&0)ij+e54TeuR8?tG zRlD^z(6p8wY&vqiQZ#DQY`N8{1n)+~ZpRXVv%7lBwRY#~`sV$IW@pc{OSyyn-9P@p z_D&k{W#}?;=&g1-Foi}7wpOi7tCB9mnufM36})QYV>AhfWi;v)x&83H{U3z1LSK+m zDKN9L7C}`i*`l=k?!2Puql?M78-2X+-~r?Uwi8IWpu?nOWf^kfr3@U#SATZf!6rX= z=Z+g%#Q+08AC^!#hA~G_W^A&H@{?+EzeWckppr%j?9iWsN^HJ6lI@50Xgen!ZXRa6 zUQq46Ig-^Qaq>5_H^2KF1mh6I<2u85IB|RZ%36RZx@mrP*_pOm5+xs>g7c<%bbiuO zBgLRv#C$#>;qW2{TN$^DT3Wc3i0>v9KUkxjUOb)?H4D$e=hCy4_In;3r1r~g2t%K` zZ{a_A@1}R>?tF<&2NNkaQNk25qHAT+RG=n0;46hyX&Wm2<$dOf4+CLq(YW za%mrk#l2y_*Hb7;x(?^(j%I1atks10R;$}-DI_Iff?R?GdM&lL1^xlL12GPFkvQB7 z;t-fnVF`(62*uzUCJ?9_HL!Y$SuR)bxbhu~l&J7R0Pbe6{?g$#9|w$cnyKoIUZda% zG}CU;ou2_FlPd%wg%qjP+nt_{+iDANPLVP&0SCsTD>Q^~b@%cu6x&UqQfe#i^MfY% z==rmwDuRLZ2V9;a0adH;V7!ebf{5?H>%#%CxwhLov4)+)ye_F&LDbYl76~Jp^AA>+ zqV=Z3xs|H-Zp=U2Nb^VvE!FB+B<*f?A{yugR8z>-yF?OT1hz72A6Gew6@`K|D|kv+ zu)BFRSdosgaCA53-EeoBT)N7uv(et2Yxlr2t*ZL)MIw>jrcd<6<=vov8}Q^Ptc`1S z1$Ar&-+!mT*8dN=Le&y@`{lEEssa1u( zbBSnQym@L8?cIq-;607-S&gf4nnlYVJ zs#;40ReH14h5L@tu#_TN$|Vw!Far8u9*7v!u+OrrLNf4=m~u%~F|KCAe#_L#c~q@2 z^)`{rq)S#?&LU*?Fuu0p+&u^qif%UQ9Rr0E224+*r6R-a`;r_`Gi1TAMIz_R}CN64_bATTv|K`pn+|)o!kl2#e$e)<@(^& z014$voenNe`ZUMoOR>$xRpoL<F<;*?T#b?~)lE(DBvAEab(NSX{E0 zOq?2Vol4TN>dhB+-kTQhFXHlo!?P9>X(+7;wd~f?zQ%ZC$!JzryJZf}s1igbTNbI) z^4T$b7<^H+H%KSoTgem3sk>K}c6Vd<0>|XuUZO=Yo_Ds^*UErV=)kXl!vc4mx%2-0 zA3gMX_gwy1OvGFp!J8iiH(iJ~p6-gq;BUmbTly4EhVinNN{MMdlgp*-lz{*Glh^eZ z&rRt_cgIDlRFkP&*H^CZWBZQ0&)>vp2R;&xpS}M0W%KxR6M21sMMl3qR=>CayGg!3 zYl$=3_4r%g{MJ{0umwvz#I7|j&ZeJy{@1@7*X$`{FtHS?Rc#B|+)`i*UCYtZdm_6Bp-ID?3PC$EN1(A_nX4Vu!JpH$ zTQx{8+7+-!wYx?f=oJ;lXf_plI)YlUZWXnW}XSeA;R zP%h=9q(~;KANOl^Z&KmeZl|drMTKy=_lhKK>BceGM-VUwg}~a`wiKvYvR188V+;}a z4P43jXchIBGUbtV+GUA!*6f`C6)tc+o_B=5lykP|xaY!EVfh6I` zdswrAm69cUQ9i~!F;KaAbP{fpaKBZa&Q4E9TC?Qj zp2z!#cem;l-GVqxUrKL=<(jW-VFKs|MsuHA5A)X z#k6W#N94oXg%`gPYbC&qR(dV-%_ludx0Ps7DrR!On-({tw7B}=?QNH{z%YBXt?-2Q z%zF88;b(J)E`Pg(=Rei=L&E8+H|^eA-w#{u@a>xqZhUwHx4CDte!pIyUjFLuK5d&u zZPa3tsiHk<*lE(Rk6^t?(Iu`iGLD~Lj18m7uIIAOL-*Rj>fBNz{=+NF&QOsoCE#x^ zJxXINk-Ph&k770d^flqWwTx)}*FA`>4YbDO<*!a;&FT(2))CO9+A4p3(XRIZR%mK0 z-y1#o?BeaKrppaZa@pc+h`}JoZ)blw^C2)Y9b3^brZ!K8HP(>jECFG5y-EsvDU^(% zV{lQn*i^|4C6LvHZ8s{F6v-n2 zJGm~ zxXbR&fBDOuwT(kwVbzUQmB>{wyL0FYLn8q-mpB7!Evt6 zZ{1$;g#yd2RGZw;kx1PB$0IwKY*&Qy@e`EoXJh3;WO+TYtvpp-+QcH?s%Exy7;q&s z=R=MF0rfbBhJO4obI-~4(4Z{!LK(;lmHsZ;uhG;y(0wVq#|oe2fIZ7cnXlJR(V z=k`2nTb>PZ*2K|DIFen*jw}mC$o>w6-oi@ zPhV%c;0SC#y||pf(jJ&nG*&X2Ai@}GX+#Hek3axws%Mw-=GlzV^~#{v6^ewVSJ_Ig zKwD%9KEFKKf*G!mjYpHJE*7!^Au(EuCwN6v^QiLl^yIWA_dC#OZ9@5<>UV&6oym!& zHK;{tcQ&ugG*6h*+VwAy*Rm-C$I42SCt4vNjqzB9WQTkEQoY?Q6$`mct1Z{i5Udk& zM7INtx|c0|dc@ic*_n*!K!q#od?-uU==$=!cOjaL*=Bj~``@~DcL503O43Vs4&=y# zhj&(EXx_J9DuS5I9}`oDAKtoY0L!@4Z&lJM0hY{?yV&R;{78TnX{(umjLq>=duI!s zdXVGUv+3-M*F;%OBgfk2gAJwp?RP`P&_0^ML}+gkSTWzO!8Z-z#dRSAYcEQBqh~6^ z>Ul$ys{%WqGBT42=Um>BJ4>6>#wYN4i5_Hq8PbCr4_sQi0BzsGKG!~Dv*l3Gfe3t= zlthq^!+yUGuE9_ofD`$G+Ut-^{M+ALT-x=6Z0b_{qo4UnpNH2UZF&#OYj-04$lCVG zcDyEuWGx>>4_(n*qPTVEwu^GFkVkl8bNhZSVc#@KedUM>fHA#RId1q+Ljn?4p7cZxLMV?RB}rF!7}ttw z4l{vMDZr4WyL#Yr@PaQTT>SFwxD61m=Yr#%7>I025gP8=Nq3+LgR_+17C=cPbM5Hd z2Wx&Xgyg|{U0GQ{(~j-+g|&x!JmTI+YR>oGBV9x=M7PUf!K~y{dfYy4>2=e>m{BXi zHait+^aOTyLEH&;_T9N~CEGm3N00!^loVMGME3n_caCz=pMTH)(0M6%HW@T2f?-HG z8MX=sg%r^`xA}PYl@MX=qiLl_gUykQAcKlkF zG+tm36f2fH?Yf%t!3x#%~!nOGOb!av{{Hp7h(W?UY+k;-Yw7 zSM-yMqm$P7`P1M0<*3pX*a{~aYOTVP?CG;3Cd~-e`A8_MDj2&;ip7J!E#xdmHf5$# z+*$Bq(3pmj^<*qJdJq-V)bRkkU@cJ2rwWKxQAArSk76C_g^E8|Ye3!Y+V z&`BDgj)U7-jjT4ywBAY;#ZpSpWJAw8LWlc1tSb(erAk52MNB$xMIa9oMC@LeRT7s`QHtej3i zxg3wfaXt;@o|70nN;GbnUzVN>C|hu87S9(SW$`i>McB#^j%t7q7dRkz<@R#Gz`1$# z?&e2d{p!y*6OpY#x5XWz&OiRn2fpW-Qqb#hhLd@tlT?T0^?g5{MNN=Foec>(HV@H9 zK4YX01to4{UTI{BJ?s3Re|zzqe)-Gx$J(3!{8aA!_UXmN__s|KwDzYjPhLKmj0ZCd zg3KkNGd}G?lcQ)h0o*kH^;41)s%5?$5{E?Z^-IYI3+gask1jQ?S|QQONJg;L+i{u# z*0gM;VmardTMORBrR`P6=B;~C$`kYDf&s@Io6^w?7#JY3QWzXlNOjaybGlJvMU}2r zch@%8=l9e~ciQgsyTj@12z-s8N9~%u@%X&g0c7)&vlEb9cuNd399V7Za8V=1N9TmC+#|!Z7=DYdRkLC;bR-TEa9!!q3q~-l{4599(0Ej z>nXX87Ktj`JU9r2AHy_~U-PFPKlXK{EzkX*-tIw7DH2X$7y-jN1v@C0ib!iX!prdc z%I_y@Ll&hhG9HgJ{f1Pd)X}d#SC0SiFZH~uaKx6fBN3-Ki%BjE`SY3 zQoHBJN*hh3qqpv^?EAA8Z09*G7t9xwgg>~6^nzP#RYawy6MF*8^>pE2HO+kdvGq4c z@FjEnhtHo)5^DeQ?aA}cpwrwM_e`Wa`|`Q0rNH_PBk=e?Pv^TFLvynwpm0Y4p#$g0c%Qz3-IS|x^2 zWt;?OD+}+9@vN>3-3l!gx#?d}_vh|q)C{z}pM5^G`@?RfqE!vMS~>2Roo-7f2||AI z_DsQWCKs2AIf2LQ>h$SR7o&|yQFP?fZlSfSwE0(>y39}7u$8U*u})f%+0 zbw4T<94MI~pxu;0lUq24a1j2~TAYN#v(5t!pcn)O2Ih|9OlwrHit&Uer3^~0XUjwp?>6vonM$Nmq|HO~%jG4zC$BHg42-RSkH)MRXxSq9mLGpQ5aYQrF*xoT z!*Sk*O8&;xwY6KTX-_PVCOlVv^6pZKKbXJ09{Ao*_8$A`5R`Rz0XLN-@DLP}%NXJ1$-TR7*q`P;yx})(IM+Ofd3*ir^I!kwR~O@~ zUqth{R3y>j^I)ij5g9>+=lmg{OLc|p{=-y`6>Da{m7;6P@i9*(^o_fjgS(5{3%4IX zoLk8)-djoOH1GN9hmNK1zW<$X$J>-4qwQw5pCwSjGk0~X#3=fpVWUVn%WEQAh$X#Y z$`KC28d}oma@o?5($d`Q>AH=1<0E<;9@fk1u+rh2B{1N4e%;fM(P&Ki&GFQ@Hw4?F(b-~FF|_+;9d z)mrs|#_A=6H_cG zHv6OgbXjVLuCL|$T|AM;vf-7DC~6hTFy2o1-QF0e4E}$P-s{VaJWbR4M|8E)kw&v; zRx9<)c6aqmoANAH(PxrOlIa~1NO>24y^waVqzhe0`bvL5)nR4=5x?K}z3=lRQ@|n^0gFy3cTBYy4=y%)fwfz1mvxD)msy_KA5YCZufFE! za;I-ug9R)UbeWYe=GT{+Dj?j&*+fmz%WewRlDynD1c)_=63i-vK-{R{YAs6777mv5h+)I0U@ynQs6lZWd&zR-TUoZrh2DrhcVEK=Oh ze;UX_*FdB;4$;NfsH#P)R4^^oFi#bRQwt=pi&#}Iw*=R&SZeWFyE1|wO?C%Xo*h^t z_Td(^LvIDTfBe7xpFeyzYi{_DFAGXI=#3$jXo725biU5)KlF+~lgZHDRyh@(SDKmZh%vQilRHXv`vezpZ44y-z zR6tTEmNXk3HF=@LjK-tJ;;gp|rb##4!T7yBtgGK=0Nq?EjjPkPwRn-khu>L^OCUEF zD+O9E0ZXtEG6y`tGEr)LoHL;ec>Vj|ef!&g{>PqK8xAZTPJ1x00SEvX{jB4D`KSd; z$J3X+Zn?uG<>Pa$bpD@CFJFy%GTZFJ-YFgnaYUL%LkX?cH?oXaD`N3S@r)ZWvr$0U zLt+`I$o>qMP)jUL)T&fCmaCE>D8|&G91u#yoqJI@h4F#)aPaAhD;!5Lh_k4kcp{QZ zcoC_?sp6{%4vva+o=Qdzf};Y#hkWZRk?Hwj+(~jLN1C2`!Qd;EZlED-{DGw5N}Z6E}G=@`B%UF{ck&R`1WQ-?hceCFK2-U zI`7}O`N4a8OHX{!jS%7sL5-aAK+(DYcvV>iaTP(y6-u?9AsJ%hbXc9v&)?EC(X$dXKcgL<$MNFJ>#jZ=$-!OP zwbX5T{r5NRdi!KFuG2>^kNT&f&(SoC5t{CDwTJ!Ry(wk3mR+HT%mkY6qi(a;RZ3D> zVYBmp8Xhg`gnh#kT4&_-XVHS*YBiq>Gbd4{^n1M_E+ul;&=b@pMHIL(P>&0qixcL z<_i%eIt%7%B;^S`U0+)HyPw@%@^P6cClUdziYs6UgSc`nk7yD@6p*Nt%!(S7r|_!a z4W<1{TXD7qXYEBhPBfZCczp~38G<{{)^qGjzwE%@OWdqM`-}~wNdyyjX(6%2% zC|dNaWyET?B^5~3mrATJ-+#95J+Nnb0}p@?a=XJ7($R2rAa&1LM%@4! z=Py5>PfD2o#x`3U)d(WzzS9<&MMYFoOgW8%{`|<&HMm*u7O&1ra8DqV zs(JCbCUyD^on_b?w?1&j;difp_rLyrQH0Twq-X{vn$=cK2ej|2I-QOSt&%27wfgYo zcfWq~vVZ=o@BZWO=Sr)a%cHhvx^Xm$L0U?}$#mGc^LWSkbi;f9-3I}NC>OIih4E{R zusEz5T}v)V1Q@>A61<9|~U0ErWYBk2cI)C~9TZqc?;@5xp)fG%CZ2SB6_mbM+ z`MfusEnaj^Og9nF@m0o&fChr%KWt z2*zAtBx9#biJYL2gnHi6um3FD3sKmpz4Oj5qIW*a=4>vmF)@m0id2*9wloqv%-bSf z49UZvKh7DtH7m>Gp@c&MC=#z#)r`yQS=sJ(Y2F$ue5O;~+Cb6@3yFV69NZLGfGdWR zv^zR%7+r-SPu z$wzRGs5k0UE}cT#!gi)$HK?=x@LC1jq?{T-Npo6<5S+LE+~^$l>Ya0FaDbsK&#+(p z=YN1i_3-Uc@MfkUluPx}{0Nv8sqV2!7_-5w+o;r!TcXHtyUgxmV6)!%J7*a|^M@%S zkqGL(hc+Ld*hA{&>pC67WeTv|of6$2pPWFwusfI*vuZtGe(-k>>vrgRBg~X&XrW_M{pvX&D#o~xCFJ-wG@TN0n=L1iqt*n*0D=)nR0e-gyRH{&WNKY#L=&4^ScmYSa?3bvXvbH- z>v8>y*W>Ez!GeI#R5Y|tDy28SJbjLNhv0wF1IxFNid4<32IvD4PaixqjzN)-eR^|q z^jt_dX|skVOMFgIN+xUQoB=o#u~A4`Z5hTn7_A_@E(5qa$pS<)cQ2I3sfdSp_E~G8 zB;$uKuA8V=;BRljsa!QWK+z~>DJHt|!Q;SvuO}9ASDphwM)O2kaoYzEe)==Hux;N9 z7h+t$Y`4L7{E0K-KFBhO$Lrf69FHGBd1dnDDWWDO4%;u&>M(zDE;2#yU zRjpfq7nRuF#W_nPKfUcDv3|Q14dRH-PR1swolkHjyQGhMZMoxoCdh zgDghVzDJROBkD{{|K(ScngW#nx=}64x?ap=AV1QABZmPkLQ!iUy}Y_S>5pIj@^Zcy zH(FnO1HFGB+fr043e#FTgveE+51IgIVfePQAO{*)Wf(E3Z7wb(WfX1C`@OnC5Exf6 z^qkxnE4AhTp5LrhmlZw^5x;zhG0G|0gt&ejf#z0)3evqEpkN~zkWzLcZX6ZhTZF)i zZFkd?a4(t#AJ;vtwdY^Gee-sJaP7se#J##YVMwrcw|_ zgpDw?CKHtiC@rLn&gFbdccp~R?d>qI2^#EuQ1UOsZ=)#5(e$tX=g&)-V5){a2xnsv z88{JXK5E~?h^6}*H`g{CS%GvE;mq;zdw1?V1&=kE4JXR(Eyp_QXA_UzTA@fCRL&>X z_+oxOXuTNfgMw0NC!C{&KpVvb3Sx;2RN5OAeY^noIE3Kz)q7>p3~JL8$SH~<_~I!A ztVs`ia6E7B1sPB)88qHz7k_SxqxQFYlo zY-@;Z-rG5_6+0(&qh8e67T^KPbi$d!B;xinm(%-r+4jM0`+f{FrAUc-xVQPQ|Mica zt=rQMvWIKc^6ACP=S3*|$zNU@VgfEf*6j9b(6Ql_h7wtSes*;_AHL{_i&qtx-A^xj zfjbVi9mO zV3rRJ#UI4!mNov}S*_l_Y|u5pQ;6bZ5O##&i${NNUB+b{oKPFy&^5I{W=B4vbHCH?ETalOgkXn~CLnW5_bX>ddnATCFL%Vi|qZYQY?_kW4F{{TvfP z3?`i_=|EIJo$b6IX;_P+I2BD)8ng4+KuRbA7W41AU<8?u%4e00bYn2ki;F23NvL|8 zcoGT|o2whQ4=X9>-z>55)x)iimmc0sx2$gsqXdGSi>vEz7A1T!(s_xkN*8BvVT28O zeCt46l;A-*)2pYjIio<9ioAH;?NxP?@@&xKFS+&V@Vsv|_~+N9J{(~g$?xAgjL~W} z{^4p#yR+(l{G-(<{819fI)UQ5x8M28|KYE^dof%EX>TxvL_-o!=z1iomaT99XkA{E zah%CRxVBg-gBNmsdO2*A3|#}TNWH3%6(tGgfZn13kGIaKDU9ZQt3QAH-J&sNQB1-( zbI__c8g)~xU--7RtFL>m>(&A73_#Xwv~Gfx#VEkL zw>Z?I36cnZf7-I|I#C?p?4Wn=EozxivEOPg%I#81qk*-<*Um2sS}d8320d94j&zUS z{lzcVy(Iu9OO=!Bx0j1aOU~t(^NX|N+T{FH2Q*zKUOiZ4NBx?}iPk`UoTRZsXMWGw zE#wJ4xc2GF>eKodL~XDZBZA8ZP|#X;JbIixbdXX#>xn?qeZJ7d?rhiun*qeU*(4gy zD%zwaQ3^d|a%ukoad`VvIi4!n?CahDD%K#M^+?RG=iH1k8Q;B0{Q3WWJ^%9;T3vx! zYAZpi`Umg&LLS8J^46z#LO$@&@)-@}p4jp;u0lJ!j!fzLyFb6|OYXZKcPuR)PwBda zH@=w;Umy3Y&?v&npy4nLaHDl|L4;<_YKh0lw9q*_8IJPq4)h1D4*X+J;W2o6+PnB- zO1F>wn6>y1|KaoAB`xUUG{`!lvHUKHQ4U=G0QzXiY)SA5P z>fMr3X^mU$-e}OCUcLplq$X7q5elnTtKVrh$YLdqhV1z8^AXH(dyRM?k_e^J>ClF^ zV3LQ?5KLLBqY__(luMZ}S9s_XO5j=7rF&h63 z?UtMAq0jExtndh`ziOhf{iJz%XUP{l zc=YT?KXMMcSF>^A!=Jj7wp_bH%lND|8I%X7FTWhrXre-XKO_UU6J;@^jZ;e|~*BKJFK1<3d3!S;MhWO5R;_7=ZqPyRhN!UCmOt0@dgc0LOT z{FO1LRXomTUgFCmSonrFscA9@i>2ccC`#b}QaC$)-B(GVJgR(WKCqr&pVkc=5u0^+ zP!1zx`g@s=T2)|7ZjMHuFRG|!gzrGrluak1h!|oUMkdmmz=5AhF+2`Q@4F7Web2f7 z*eAlUNe(g4fll4|!QXCqk?IRE;tu-p?>WGr|1q(&96@JounozLd9`(JG}{Rz>fqJs zKfXSLhe)?QZ-R1JtE;uea5{N4hms)tvKvzaLX*d5Z(p(C`D@k*;8H3Ku!)4mm~ZWc zWwO9yh1rX%R|Dy(6U(P)%CWi=N4wJQy)}TNFl~s!m>r`G@?RlukMOXm(s_jA@QJ3@HBm@dmFMVoN}TP9m?dQhmY@W@k$DwZ;24T z{@C&0R_u$jqtCy7aSXlJ{d_n{5zaJR=GPzD*KdXF|7Iy)z-ANN@%YiF%aNv$3i`bm z9p2iqlU7~DGoBA`9NKe;3@rA3c0b`vFOH>yr(&Vh$20Ksd3n+8izESgUZ}EFh0N{3 zfrA_B#QwT#E!7L%UU`3cub|H5r9h$TS>17NuNv`t&ZWoiJa9t!SLG{=l#9!e(5iDE zrGSoj&vyT3ZXp>LBm;XCM7Wh34}N}UXXobq2Ol34gNJlByb&dfWjx;izGCk+=y@AW zAS&w;w_#7Z>%fELHBsp{EX@O=VO8w2rbNrt!T890-ITO8pdNJ?p6*v?U6){k%%?%#ciCJ5K<2Yw`wC9z084~UB3{$71rduciV2dDDI(Xiz9|E4>e_WB*TSCI(DPA@JOi?;RZ#nlUFw)9Wi z9IdvSN3YM#0yAxvC4&z9 z4lGiuTWt(`mlb!aR<*iTruS7b2KS|-3J=*s5*151XgL&8`NQ{r_Wq`WHF*;CMi@DM zxVrY~O&=igRjbk$#4@w~!O#72Z_%NY0ecq;x%&@n@Ik%)au&UPcQx%|a^NNK?(aXj zb?c)wXksOpaYr9ss4?g#$pXb-IiZpK?EQ~Eu}K!4bfEs*cOF8}BG{TuV@o^1-MH4k zGm$#*WSZqlu!ZH)IPTw07BsoqXR{x8nkh(u@|bgf_ZMWs_U_Xx-2&*^&g#K7pZNKY zHf+J5?ZcbfH}4%%oSzxND@6;iXfi)6M_goL=~Fwbm>&58DVXXV9=e=1o^T_+XG^Q= zi51VFiejYLbFn2 zctFM0PmbVtKCy}dH1uAdj*it-5itPu}3!LM+Un7(jhpnhAw+d2l84b9fuZ@J68i`tX|22dw}7oe|UTSd{)=Xr`5=cTQ0TR zgI1{ugAkEakFMtDzx~tO?s$Im>iVeBtxbw3DlOjju6ng1uFv|inMYv{<=Qxe(K-PO zd9Xat8JVGst0_&EjErfr?vFl&y=qa!hJBbRbQ=gM!PXY&K$xjp9Y(2Nh=t?Jv*X@5 z;L1yjq9Wxao-#3)+qS;)*n^3XT*t}7Pu_j!zxf1lw@%8*aG|a>F{IG-#!A_`Zitp6 zh;ykzM!Z~{d}W#Z#_m$m#j5$hUM70r+zwJ`xs=}BF2l|&bV&4d2HkZLeJEl@9y~t8 z(7K%8{V*2yD0RUCrGcD|`?4{Nwj>kCR6~7MuNd0kXe96u)GkT@y$>Qj^n_RsB{^CS zhHot=-~Ef_E#K1*A3(1T_ahA~iXPYce1NDgqJX<1<=dtx5TxFAH zuw$&R`SsA+r#>7F_;ETOuzj!+3FkOMMQFjk)htFLB-5-(srKyrNUweUW~5H5s@yac zp*87LfvlUd$1C4|Rt`MX+A#zcT^TsIK7UoxV&r8es4_ykmI?Pre^qKibcx;jB*Qf? zkNNfN;(BzJD}J9`sj`l(*`NB|#q;p!9DT?iy6J6yG<*;x_(%a3C`bC6L2DpduV4NB z(aA`?cyRf6Mu$@u_Tq+@Gk%8uHBQR!l5wf11K5hQCsbmL@x^u<5?;rN$-Jb(Fz>&f}md^|NY z7CHZ&C=5pR%E{R=prBC?CVBlj7Ki|LMdKlKLefgqzGbs(*VlQkD!TV}JmzTL1z;;t zF0&w7FGHg)4NGW%3#&#UNS%ESp?HEf^=hf!FdG#UMgp*u!g(T-@#SD?~ znWxBS&vwbCnNRxCy=tK_V)A>zXDfk>e0P*W0sKXX8Psig*v7 zR2KuIz36w#sZ?fXEAC{lz4*OsT$R~U(R1Uce|N*~^s*^`Z3b?nggX#OWOO9aExnrl zrVAjvf=rf9o0!c5RLY}3_{%Yis-sr1(=0)@Mg`|Gq?hV(*c8AU4D|-MQabwdvq#LU-~G9o zDNZRG?GN`Kc*bK$S7Y?IkEa%)ZtGK66#l%o4x4jyH zwU7T`2#Xn6W^aQTJxs~2r1suSADDQMYW{`SS2*A!WT z28&h)>SfdD3aS=ac5;--Mwm>htAZP>+|nZqRL_E`9A9XXI}lvh3`Jalurq=9g9%Yg zmb$t7tGTwy(n`x5wY1ShL5-p`>6ZZm3;f;5QBfbm^Dzn~#%z){4YgQ?40U_l8l9as zColuUQmOgxe|K?pad85BjMn70-wj5MUYk`VzErK_@X?&$$>@*-u9^K!1Y)Hg;6Hhe8`h<>B zVkj@M7{;&#wNf8-i?mdLJfYg5J?SoJ9t$v4V&!Vq2LP#(6t<&~698$4`%rK#|Mc+U zC<-$~opDA)PS!%fZZnIQ)glt#+zB{tg_VjUV-z;yldEc7N$vO?D_E2QTaDH<3pA+s zf>x?9D~kkw@i}Di!=aUJStDXMvQ}p__T^>VffsB3P04$2H2{@u_u7NcZti-c1l+dr zaYD(jq3%R-I|*gWL}DLL?+yFqkcTr!gGQ;R>$30gAh7YT-rH8qIsi&O{OGfFX6dOg zoPxwSD`^qi>POK?pn%?^45bXHI&Rd9#Z<`IHHv)wGJv99GA9=DZcn{SJw}iq&+pcz>O?5Eo2kQiz`{~zmf9(!bL~U;4z0W zu4kV_UcGLB&AnxcpCVN>m?^7-CzxjrmCMTLwK@N_k?B?zXCl%(zj$?V{q51<^b!t2 zmR>eyEu~{L%vax--LFe1tIsCG#^TLH03H>x24|vt7|xN^{;b_qM*|DajCv8z3S0z7 zHyz;!A9-T)cp?}TVv9i7ELJ;Q*seT$(JXPi@v>s(!K{je`k}bH?m5j*lXld zQb-^Y0uoQCp!CvdFz*5+j6zBSXbjdxH`l6WvH(#CJiD_IO#$+Y4|fq2=Y`R71 zvR$kSlW#78`cge^*FhUqX4CPf4{3<8!y-KIl!_4NEgpDTB@ho)QCqfg3WF8E6rERQ zS62hSAQ-eVsgQXT&@T%Oacgf5JgOf+>cy8Vb&jW38Ki+Z9pZJV zm5Gs!W9zb&4Vpkfs%n+5yE{j3`o}ft%|Bn%D}+cY$0gX__Gb+cqC&O3qm!j#sS6AA zVMo`&HwcsRbOzkL6(dqokVr5}IHPQc>|>S6boRom_Szur1~&`%@AAq*NaR3c4bA-D z9n}{l;3pNc+*Bw??!7#U(@eprwyN!~V9eYfzWJBeg9b0A8DiCjwyq#N-LDs|*5#|N zst(4plL=?khNIC~CX3)fE0$nc3y0g!PcBXxdH=)D?7Yk(jsRyAdEiQB&?tx65vAP^XpB0vDZ!;wy>RSV7J9&bi$QKOx$c6Em%8P4G})WyVXuB-?-r4NbkM26#I z?#-2((ax1<*W_RfW1ETtcxpMQx^yWf?Nn6Q^LBg9bkdrCrMjP`q~^t>i~3fc+}sYx z9bcpzB9pfx8G19`_$Z#S<@WbQDw6cwU%@xr3E|c8STiOAjoGL;?GO??@H^M;AR7f7 zi=q*JVyOaWzG#tdWbkE8BiNdH_rLy|+t@$#A*yt^dV4n=3+_9X;#A)M-hcZ)eYAzA z>`q>c39w-fr5rmELkl|+w!~!i{CYNMUp18H*B0n6i@lx@aV85vZ@b+((gD#ICPLFU z&*7aXrh>I(7SA77-J}?3Jpa5isDwD<^2PNRf3*0EHX9*J$&`ItV#7h~?!y4uxB$TQ z=dGVCyLSB9=>BR^mF&y=(bX_xagakSqIp&B93Q_pWyX+rd<8NEiHTnQh(37+Z**&psYI0}Z2I6q}>I8VP zyu=yVz4hRc$#vj(1l5Grv@K00Q)|>Ws%-%pNL>A_Ga%{uv^Bi!4Hqx3UNrM-cXuIT z9(4!G?I9a*J0n~^ucASSCCOR>W3#ys)LJXBX6J|)NrQ!zlK4q?@}htqxbX}&q2w+P zbG^E3u(PSX+mvTPfC*)&pq}Nek z{G;Q!9KeX0G>kDEk5|K~V$R62!DV=oC-E2!al4Q!>P*4x1LP8GcRqal*rw_Q-CwOW zb`dJyQs&Y}J3*f>POjPZA@vl%3r{wemg(15Qm;8Loiz5J#gIn_cixk!LM69-==Z{5 z*|~Q6RwA{2<1c>t@q_oX*+P}*sD%7I0vZ7N>69BCsDd3Y#qxWM|DaI+y6FqsLh017 zRI1TsGJ+WkET;tRdDI%0_#zd>_#j|8nBt_KE3)S%TgUg&Vf(96r&FloKA~YEbgfrm z&TCt{s85VN^0qzhXTAeliAyk%?RU2~LOLGH#$pH2mMn^Q~ceIKS)2Uh=!D`-BQj~bmpzhP)qx!>ivLh?}xaYZt|jBhhS z=aSB7vRVQuoI*TGKsvcrpd)67g>Ox%Q!Ot#KnF}mbHbpJWpx@D)*9TeP~Yky0tEb~ zf`|P!=T?5#JgJ~GPGo_3Nx9-`&Y$r=Tyd`DAW96O4UIrk)biHFkdxYNP^VSgVWRic~7AK$n z@bMZv9hX7Dnm4NBTA{$n;?Y^Pw7u+&M)FdjZJ==mdcQh>?u9&#^ok+f@V*M;FRU^haM=CA+q)1UwCkCR8oFQ*L-Q;ixUlu@3_=aNC1f%hP? zx$&7xdVO-K=0ieckH$GrpJ6;DYH$hy&Z3_wy*{ZL63@Ygw$$Si1y&yG%2C|2=FDnu zXZifW6CYlXO2^Op^{-!78{4)g>yc*9x4W4@fR|wmcI?KzzwtvI0gc1*aPTXCyXdKgbOjkH;?iG3EuXe?X{+us7#s`EHT@?W}~WgM%|Lx zlLuc^b@I{A^8EcJ@1cD=Dc}sJ^VN=07xe^|VQPim7|lZ#NUrw*WYcO5#Uf9D5USUs zi`{l(W*V*MU!H1+)Fi=%(aCwpFcA8J=&J)oN9=z`teyB6T3-L0auXGb@3)Eh_&7!3!t5^%1Z2YU#NQaWWk z?Oja>WEA|F7Q4q;+k1QYorDpi_x)>jyiUM%F9)>Tk{}zeL@tpnYZ%;0K=%cMG1-W1 zz4Ok$`>)n--P<9e1rk0=&eYvsJov@x-!5B6=#xj=Yau!m=S}b9N3KLJm2leva=#e| z)!MrsZR}Mm;nNr&2oHs@R;iTdDi(A{9@Bd^KdS!JC z(ajD7(UFGe-{o}{Q?5l*~4dyH7-uL_<&H{9NDw z7bFlf&VKvnw{JSi(Zy_r!YNWMj!sS%=Bw{6L3dW2b+6|$)47#}%!E;jV$^B)VRU8R z7UVk@1g_|{dI|m;kzO1(0AB`DBaVM~XK&+{O*pUx;tEM&agh2H(8KMJTqzp83aAFZ zU(}bs7oN5ZW7I3_Q0}O=fGSWOkNV%&{NrSCSgS!_rXv;2oXZ}{<)YAHKJO?LF|DPd zae>d9lWvVvRHZ;d48bt#F%-_Wa*_gi1P9BKB9o4aM`yWhe(ipSHHmFMfkE3) z0ksQNCgT7iI_naJe*VUKU}NLPhHZO2?|Jx_KUlu!=L+IS|KpE-aO1u0!Zf_$OQCEo z$;{?@i}3kmfnI6jwltiXWZLWU!Q#}#gJ#6(dkJj&ec;_BK=v&s+NYHy! z_1qA=|7LZ4$sd9T2~TUs*R{#$Qb)j{Dvd2(uljb4?$ODRiMs7iHnVx_v?W5zTu5zf zWw|IECQiOM6Hxp9Zc0}i#8Fm;7K2$#ZysjYxQiH{c5<6hJ19Ww)arwc#6EkTr{fJU;1`(jfiQns{+g(`prP zyOV(Si$ksqZN6=SOXVNhN|`N|%~YXXlVyESuGC~xtaS>a-n=?lbbEs$8Hb%qM5viX zxWt!>aPu?kWy$0EUc%lP4q75xmx%IkekN#BDV#;iD&Bha`l4ef1Xb$5JZIAz&ag=U zWoAe^Cxv|W1BR0U<}Hik#bnlQRC08HuhzrvY%1z6PL5`mqo!4JJ=)K(X`Yv%qP27L zlTY?Q!k6{r@I$--qpbUT+{o$(f>^>`N~I)}<>u_o#q@g6UW{8c#}9sb|LNAJ4;*3G zGk#q(<}|DC-CefXQveuB0J#qkTpc8%04{@PS(fW-`}bGh{lLozxu7R!ccAp$0`iVC zn9bh!s~_F{**jUCOC|H^0>!8z^w2OQz6Ey}u)=b=r-?4)l*?7*4VivzBS(CA%<9*ut9+*1-*4Xa=0{MJwb$f2&~_I~gHJ zdhx4c7{kQ_-sMMYlQfrnRILwlLnD2dkajnrJ+AXly^(C8tV9*b%p8hGr(&wQ1GeMoL|CnLCAu_afgnwg9ad?L7a+ES&TcUoQ|Lys z3egf_Hg0vOTAPkal3Avx>gAcvvUtA5CIE0)DrI6s`E2p}mlwcjufpn1ZnWn|HG~F3 zN-NKQ{p#xFAI5?oFO@mqmqB70J{T&eexJ_bc_b1qs?dUK>Zq!>KuHF#RiklnHJe_l zowGU2>1Iq`1KD*6PFAu)bzi(N8hOCj4nn0NrDsM#ML7s5lc08JHMilZQ*8A9-afmmVg7eUQkcI{!ohi=yb%BJfZz&$otDVz- zTws|(?7@=*Z)(fA8`@75Dr19#b=th~*~Wo?(EVJ`TKlz+QYYK|`IT_%tf z-5;%`oc9A7*?j%gtFOwiawiBP_Vb^wxS@vq?TkrzV!~C)JPp&d(_@c|OsWSt%#tV; zYi32g92rJBp*Nh*e8wpg6$W*Xl+`A)FJ8K1)`>q)?LG~-gQb^UZ1vwh$raC-tquG7 z>PmV5!#7${FDuNO6J>I=|JnGPN^^Mj=K435D}npA54U|X$eQS!CexU%Fw5z*hunJi z2hQ|1)*cUupgoQYjai|3v3T=#R=IA;-6L5I2U7d-Y_)fCrByoha}+C%kChlyM9~m@ z(r{U<=jrJ;r)}UVu~hRyfe3gH7pKpgPN(1J-`VHmMEI^dWPi4lwE!82qP}=Mu9U!p z)z&1i2~-+Je>@q(e6LY1awU?pPKNzX2l%Qz5LPBUezHCrjG01xSl5Wv)hE%oCk%`M zvyv*Zy3sv{I9M?k_hu`w?7qCN;kv1x7VyS!F>1G3#WCz{*gP111d0==bS8!(ak(NF zz_~_OnoXG_5Q3LlN8_X8DYR%`47t%%RHH~_?U1RO zC_y0QhGbofG@>^b-~Y8{Q2k;t2yJa*B{H9+8WB&<69|%U=cBw_f9o@Bk15KPMwuo< zd6IBH^+k)!YGCK?16L6V?%dnV%lsvAb7}QqsFw{8408AoX0v>C0Ac@7F(k&5p`A~c z4>DcVgjst^)k;_-t>zPfo9}*-!H5*mXDFP^r{V{3`|j-rSuFhM>0iIM^5Yc|xA}|3 zI16p`yixMT?5i#(Y!tp9Jy!;mJg{LM+fUYvEsU1ux?anf1{UzVJK^_Awc{aYC(rWiu<=a=&G>xPL z$DexBlx;r+57pGOZ8ClkmejIAWl~g|D~c@K8DJa$yw!5AO2bQ`GE{|3L@w7@0F-4&CA0q|K|$PLDau4{f4b^yQiquY zawK0YDmjPSn}(zuoKvIjHBQ1$H8h{dlSxqE5~$c}Ap{vrmNd`fXWqLX|Lx=aXHR~7 z@Af?o9&G*?oO%PHq8g0{)Aat$hj$;w`&MmSH@igxr8K~97qZLu@20-86v-M6#sbHE z{D8$gUMH9K5aoKa)|ta?$>!E8SV&NpWeOkSz4?z`%E|KL0Sq*Xd`_J zbs``!hNV2gR42!+>NWon>0P?}U`?_oG82kj#;C?O(8l=A_Q$5#7R2qer4>aG zMu}G0Y%A^vgidImi%p1?Xp})yLlHa73Xj*tW=%w)MpPTNCAS&B4kR0d`vNnfegqL=!J+} zL2IeTnq~Xd2JGGJqqPd))D=6DhnNo|^3kc?OW*J<$ zU?Rl&!&_^T-Ws;@KKNWDp6z56Hcn;LllBzN!OO^0JGmQHrss9r@0yDgGn@Dz<;K?l?;xY~fn$@WxWF%%Cto+6w=YysIW zuyJek;opAzDPf)@T#tNnn?nVkQb}^`row0<7WJ>#TsSl?ODxV*d*e2iM-I0>3k4b9 zJ8LQcXM1`PglEs*d4D-=d%U{g2&%4JK3qn$ik$M~T!o|VH<#c__7_^xKwp27hUl#; z^*zN5mLti705Cb9nj>>-y=bsJc-SuSOG z1qk^RC@8*~sIsW3`Ed8Sp_W^d9;$)@1vkQ49<}O+AMK{>zKR%+Cz~68efNV0JMZ4zO>V^r0Q}ievl=ZLq=KW$ zi5A}{8|UG5_lI^-Rl3EC!%@6dAZ7Qx2Ewy{A@a(!(>L7>ZA?Si+)5O z4s%=7)Bo<@*5{*U1&)T2$!9XLLio`GZ8{)QY;N!?2@|uo9{b)8Z8;8t&$Oy-_sO#Z z&yNvQK3YI?f*pXLuUBlFrZ|5-OKeyE_|0?8m{rP6$zV+xqGH9y3$i|+LuX}nKAQ4v zQ~E}Xm9@rvblRh7P1G2x(`)xlxY3r&21gaIzc_i-Dc97hnD8aMhbz8pge}AL8)pq@ zxYlaDQd$CakwAngF$qDtDl4c=G=`{IuZJTGWEiVVW&>6zRB$=IFIaCbzxjKBw-?CR zvlWM^3`fT3^-vnMp}yKXS_mqP&N%{-{Bi|e*ivs%0i<-Xr3iAPr=<}>Bf$3)-uF_t zR3xlgX!{eoQW!5xJSmt`DR=14QFfq7(cmRW#Wtf-Hk?cC@NE$MZu|Xf%MY*!qmytJ z%?7sPbb%p7V&mpg#Iw4_?!13UZ#<*YfTE_0C94J1zw@)BkO<~3rosb^b$bB%Lt6s# zCCWe|Y}as%stS6$fBdqeO1K~+P|6@1h3L-X@WY$-^}wz#;S2F;pKf99+n>hsVSjQX zG4IJx@Ja_$nF2sVaVn%G@sjLL$kD{gVOr}wS)rI_B?aH&(5FBCz`1g7^^Ta!R+TYj&T#`$I zAmL{)gRwoPdwSa2>MrlScUf7LSuQJWWo1@odGD**o9Xcw5Lf^tcS-K<-R(*dic{#M zmlq+0-s!vj~);g^UZi*nc3Q7 zwryGqmBaF1i&&$SDW<}FLpZH-p;w0!$r)^mqvO}_UR<*ME}Cx-M`zt}LlS}iR(;kI zp@q{qI-9l+kKP_PMwRxgF_o#X25q+L1tNBJ3~*FAcQ6{COiSY?%ai~QOSgM{_(wZZ za?4D_ZS=MUxPuje(U%eP({sRq$)G|fl9V6=eNmKy3~WjTm;=?=Kqx1YR!3G6p}jCD zmupQ5wbuqh{Q$zOLRVme{_)|(#osp-ETjAB%C+80NcLma^}87>5!A+#pteCxVd^L#P zFa!hk3@6pYE`KT?vu)U%pZku+yQgR?A(_G-3$2oIMVPwuRR|B$pFIxbJT@o}&vH=FdaPsWdBnzd&WFcm%_Gt21XFTzaU~eM^U*IC zI2__nG+k&SzRSY3Pkx~k^9GEI$82=OR30B5cRSPR;B?j#^0@Q!zzdtf>u(LUDmVbs zlqMaG6k15OnSwaLmltCkO9wE_EFQGRMS|Ujynh{*K*IE@2?vqA&mNum6frj?tA4!| zOjof|_`#|@kxCmO!WaBV37$?@561mwPt@UJo4#<&-xdvLa@Hlr9XK9f?Q$$oME_QgSE`u!VWM)PG#GVdW#dUTexdh<{Q@4%g?Ga0`+ zIGvTMvx&?Wa&3@PY7(1IQL77sHv9NrdJ&g7L)c<+J_(`w2B7u&Mc_tKB;D=MLWe{$ zN%7$7h0HTVp31~gk#Cg6>iC(6Oo|yKKvvia4>QoiGl&M1pMe$>Ry_Sy?WkJmoR7vq1vV7pw+ZyMu5RgMwP*XX^fNE*mR?kEc&WWLs)RSym; z^#;QL91G_dk9YNsdT{~2@M99_V=ZG-n~dTGFLChA0qD}Q+-%xP zt}FpMV$hf09R(jKO=_tL-nT+}a%@-)m`#d(_0~gEyxOvoltb=~4_gsDS(}#l$yws- zuys#oSRFOjsHCqtA=YlGNQu;%^w;LKH*h~nA(T>|3p_$VDeLtk8(tlnAxYmFreD}j zd0&wVQ^1ef=uBZ)<6*s0j<7`%sWv^qiir1~x9XEpvpVTGFoi<2o*e2 z@0IfWSc8V|q2K0iJ6toXiB=2KpmPsQKtlh4df+Lbsn{bqi}x-7c+S zH3PdqekPHF87v1ge6rLG^k4L6B_2YYx;0-T=wZGrL0mqhF{W)h1%qa5-L!oDa|Kb{ z++4h~5s!Dfh2uk^mB&gPNnx&aVEbFPtq*nE3wQS-b#e6U<=Ea4Y=%f&s|(o^^3^-I zLW9juK5O!Ji=WCBsoeO>gGn!>FeC&I9u98!@m-xa&gs6Gw^=pDWng#lbR*^SN^Yp) zl}1v>w{1)7bgDIkYpmV1gI88A`p8N+lJxB0FMHWA@Oi`e!?R)j;uY*DTy)k1&%Amq zAsrl_oef{SY19rXaL2FGNOg*43(o`~lf0Xq9#qZ_-U?C|gms6PIi!`r1D0q?@$dtK zU!6l(G!2Z>T&L0m;$qs1VXOdflcro|GE%8F0xI?7O3nhFu3dxOV}%pSr$edSc^*tm z`jUJxEwU`;q&cYwy9arK;+fgYE)P~I31X}iv^&q6ts?YL1W=ZC`*IAU@fe;W(sWfG zjs;Np$&g6Xg-EFq_3-^#Vf?a;HJ=R`+a64q^Lao?6HISTH*~liTe&y) z@otIBoA;m%we4|7f?@xbB8`M%9+eaLeego-%9Xg_O^I?Xo>6+_U@|a10|RKe+$n|0 zl0%7S(I6Rtw3p)N?|*98vZSjJ1!^@Xgm6kFhSez-ym<5KyVLRz^fHPS>o0$@bN==3 zyT2_gJ=jnwb`;xTr489!SY5E}Kx<)l(_85esu!Rg9KO9^)1}L-%3wCv6+fLf=rg(p zpvZ30A#7!bc^2_WWX4bRhcp&A~` zsH{D>yf^p3o;kL!v3cNXqF%B1AA87~pAuhRb-UkQ;HF^KzYu)*@Zmw?eNN1uy_2c~ z45qJD0dt^XKXv}~_pe@E99y^i0ic*2F-bJW#vR~O8Pq4!5 z^ddz-^^VNYt=jNtQmr!8(Fg;&qt>;4TVsy)PTN(AEOA1q1l_Z$&?r}=K^bmc?P6^( zJxO6*5KeTsG+(Nn!7;K=1?gF`5}nk73v=aR}f8BrJk*rN(e@(5=hKY+!F;HwdJ(vMh4+>DxoHFnKOI z%~`msj!Mx8lKt+eb#gXiK@Aggsbk)`4O_q%b6NNI7U$I)`$lVk6QSM?LVzk^PlsJ$ zE}W8@d}h=KQxx6rI^sJwKSZ21BoSna?WO^zDPUmo4$aN$Uj&v-?kK9$pn0b=?CJE1 z5R)&CN?4xua4Z|ayMj36x|Gu^{w<+c*MwGo^dD7lNQgT_#*p`D{{GYP~h{>3CcUD#_*(;D#4_YTy6Z`CaRDD(24|M1m!g{}Rh%Zj;8&L>DR5e*vsN@b8s z0nfEcp==wqAcWol)d!2i3#w<$ozL)?{{C%a(r@w8Ig9_%4$7y6KtYDwI)lPjn0A}d zW)jE9#=+s`#q0Bn$&_b?Tfcq~vOjsMy?)PWy?@jAtU_uZt?s!V<4Bk}9jdi52CjClXtWW?VFX{EkG4HcQVC6cP4NvNHzET?&`u#-Y=sYKJbOsGZogu3` z3OknWY|zY$99ssVK>gL2E##STkA>PmmnR$WMfAkzTsTH@y-71?4TPtMuTKlrgW2)b zK`Rf5a=cV+SNV}t7?(U|0lo@ED1X%JHM2~QX%;1r|DXWy%W_~tDMRwrYtuSYX5IRF zO|B2GE~{g>&!IjSR;}YObSI}@f`Otv8eG>Z0+|VHs#6aPf(ypm*hqD&|&J z_LrOii`uSux@7QrqY4j%32O-7CUy%QE}LWWVmO|z!s3Xx#i7mXEyn=6%tUn zxV@02Vr0}AN9I*V&EqY*Ul))0{7+&KF)qR#l4M&<8TO0SHkL^FM&F*CUgY2urd;!{ zJT-j!%OxUWQl=v|G85HVpDwOwd|UUNxcl~#r!g6%_31>GL=vNh3yG8dM4H92#}nN$ zH>jl8hFm1P6u4_Mp(JHT_x(bRN;R0l@1MQ+{-`*DC-<8;jhEiU17>_$O~ecy<9i<` zT=oC_4}bjU|8;0s2zxY+Er%<*9gpl|SR~>J4Jol#z#WdKk3D#B-JkP2cGrBWdr$7( zvzo6P+`IbS)ezZ}B9;VgbjkjhFnU|}cHTLn`BouIuu?0+lm)XcAwK`++uxiu4(r&u z*|)Y~LcH7PgImeVXa8xqbjRcy(yI9fUi|JO9+d^tysHkE7m&+XZ!F%uzHwX4WgoAr zHgZcpUt#S#d(=1?PNYe8{POFvaLl)WV^WjS05HOAuJ-fi0K=@jIvN9c=(x?dT1|3P zI|Uv_D;KG^&szBg%am8}&0@v|zx z&822E)a?mUZ8C$P3Sj!Fte2fugo;Q&syys-xC8sSfmj~2N<|w^U$b!d~JZH;3;4CF#OtlQOwR(JGCr6pp* z$zTM4WCR$HW!w)ft-=qI8jhY^JbQHj*lzF6oYvuw+Cg}dfm>eTy+hW=FZTL>Wg2vj8A^x z3#AbO63ywTN4LGSxv}G{QvP@@XD1*2)kA}6$9&zIxU2DY%r|a6-o9fwE(ldF@9|sR zI=}4_YHg_4=o}rD6IqR$y8Lhd$MEIfO*0CoV;I#g#Yf+k62gUX{srd9l*J9Jfvz6mkAqPGu!}Dul#3gj$m%3jWPj z8X-}*&8Lk!dt0U~NeU5H#4e2Mq!%asJn8VG{tzI)r3B1KxJ(9MDV4)fNx432^c#WN;-R*wO5G!=7m1lNG~;J#Ag%vx#6ygaGi_(NUAG_8U?P=!PQ^f@VA< z1d5$5mpXZesT?7#c6HAg+S_`vzo^^UUiau>CTdkAqb^@&5(?#+oINKM&n1tnl<@rk zMNwX30;O;`59Mn@uG%cZoW>t%(l&=Sa`Tq$KG5q2uB_{eP4x=Mfv ztQe1~D;(|$>O5gxG8JeO5iXyxvst0(72dX;wpe_6l%f;(LBBRUx$MGJv6F9{jyiIN zf~^t+xrOSR^Gxqz`X#jB{L-;2)oYPht(yzQOwJgB*^L&3*<%etvt`;Wmhx$I+`tkP z;xZ`hS+dg`Ca3>9ozCR=1l6b{8Xiv?<@-V=*-q2NVXa#Ugh&x?t za9s&xgn5(zG(OvUUFwLwT-UW>1wmg3ZGa2_Sj6qVc=h76UC76A5{F5OgLnP) zgKXf*hd;jc>2>2;fX~qQ!8<$|wM2Per5#3lbu{O+hR`*Cx7J41bzx!DL;Z17_3O_b zTCP7$25ouahc}CTQy~q(?&@?SIT1<}h8^nsDo>|Wi+7lMx}DYR?RZ%>y}2;>hZkJP zqupKE(XDSNLp7OlJL$2WlC#+1Sg7?R3TpQ2zE)U8nYR(SYc{80Ec5Bd598JE24`$Y zI_}1}&UZ~N6^(d}kjBnMx*bQLlXabDLQ%sq)`oKp*iQ(TWe0QXxAXBljby%R_g{SV z=Bmel`1Y*k%~ofXTI<=tp-|=ufKJSJD`+A}^hR$Ek@zLox%zrmO7_IodX}lFuUv?P=Esm-A7jCf?RD5xgR9EFuI@RAan*|xO!~}ONnSQ3XRexpXNhR zIa#G;x`5Z@M2bnE<>S)LmtXPJVbl4(L87K*9*mZx1CEp zXQK%Z9?MIYPbI(|fyS$zP>m+-3-m@l^50s%uX*l#Uq&bzrQn6y!Z;e1;rh5XZ1Tx<# zpheOXCt-S|&=?(inr(v<+1bvXf+0gCQ08DI(aDA7@w+S2j$sL{rl=6g!S6D~?5N?x zJue`wG2npJzvncC#YeUcfBES9k`)aiUzNs_a>iEB{o=1@e>Z7d35JxH@`p?+n>zP( zF<7D5k~PkhfC3%NM0&6j%Jo{x5I+OHBJC)aiyb~GOlofh|L`SLHT*Eoo_0(1v)_F^ zJ$X@S_X@9Ho{6xBffcKGh@kCZWi|qN#`XjqlXcy-)8V9T|3 zODIG86Go_TL*mL8(;m3q*`qh@X(dS}gMl*5UR11Jo6+e@1bhTYi7qEXwNh@t&!^sy zV~Kj9G{R#g_!6}GMY}5liko&nwy|l+G}XyFPc;h`~@sO4#=9eGV*qOL$vbYbShW zZ`1@K$Ux)pAPbFoZ$K*N7k|259LN))G6{14qA3}qR}g54-d8KPYm`37=gjU@i<7(A z%2A?yfNgJSi=ti=ba|x1=fX}mTOQhDKI}|k{XZH-U{o#jhCzy!5qM) zhy*u2YJeG0Y8Bg5Hs2|M7=S=SE~gWY8bsV1LIXjH)@}G=24^5Bmgs&6`OTLnv#TG* zSiHp?fW#McJY9CoWl_h1NK9=bD>4;{JJ9Lz*{d%ZAEakeT)4=YOlgaR#v?wC2yVFT zItSwOBob0cV@rE)f36bzaTeUGc<)m-oZ#JbFp9sa63hq@y&cI>)R?T4yn;Xz#7Hy zJ_9-hN>#{(c*5^lcWqjsnd{7wF`sJgliRVEZ!1HzIF&=mC^sqPO5rWMpymJb%Y*O! z+rRuC7|2$nKnIiR6;S0q(5W$$@CNY0CGQE5p;TcA=?bB2XKCz?ItJR(v|Fum{_%W^ z)$RZMQ)M#e-XqeM$1DE*8@szs1r|b5L4V=JIT4O})Y_QIo+Hf89jA@=XGL{ftGKsr zw#79!uFrq)>(8&jG;#dxYmKS;ZD0Q|5PJH{4{klwEAuyRE3PkN*sgLB%dGp-pirf1 z6YW!#XJun!Z{?9Wnx+6FkupiMq44_eUzD)k^9lu7?XydGW8p&ErgAI-S+C+U#NLkc zL(&rjA^P{Da>Hz)A3Q|>`0dNV4KVIV2BOJ?lW^w*zt&-liqjs?*UmVB!DBg$$oGr& z&aj>;v`^R6jeAA*z?IQ(9fr12S7Yl>t^-2qChCCUE~pmz~aAxZ_pE&DH?2 zUggFNAanhq#9#~$N=LxBF|{1oAAwH_%3C5$P0nEq0NBriBHt9)AF8TJiA+Et3s4Fk zPeLfA!pUMJ?s=-Qdm`e?Z;!#))jfZC(Bv_%`mT?q!fGc?go-AVlPe3r1EyWto207NX{&d-#+_whJ zwP+DN?AO>FNR$gqE2p_>+F5X;h(m!#3vp7eQgvQD^zA>q#e7-Z{9?5b@TG(tpA1=_ zsP|L~CkcV5;c@R^9Mh!$)U~-0SW#AqHC03Fx@cIPOFw_I&+&-zv*p_<)}$jyB-J0+ zI=KWJv3jy>aZH=hf0+5N|LB)L`!vbZwq@gBP>K0Gx8{8oP<~s$!OKxr<<=L!u$VsG za3;Cr`MXZtUkZah%%)n@X&&y1v7m0%aLbp&wydkBmh+Qq@G;)<>oJC%3_=8?%=p^= z)`Jgk-g^JT$E&}b`(Say>s>No`}6%KeJ;c!ComhaK^QK$@<=xuG{%_#ZUo58LAO|K z(|DoXC}zjgFP~4lVyDPeazR%%5Wv{cCD;4yY|xh2UcQ2;L*)_<1!I-R?hG?nR8BEs zJ}$x9FX9Qty1hn&jpsqWlA&VYvcaoxnPBQ-S|kgH^-RiPwzR&+XgU(%LQf+Mid;z``unSYSuWM&P*Hu+lt*4u;|Pou$@@L zv|(vq8Pwa?O#453fC3mi0@&x8aRtqzIf%)aS5#Wp1@!eJeBFJOdy_sM;GE*{;cLM9mB{BM5o1Eg!CKsKJ}^A zVK`9M>?pQwf9i~`=++WuH`Qb6T?r7&bfwxV)dE_S38#{F1XFIQug%}SVQ|xKwKH2y zRexJs^(Os_1w^A+^CkR2yM99#);duxarUU@I-5U7 z<%m4yf$D<7&><#uvRrVWgy16&r3x2ecdu_#y=PbDVWai@?9JOTB&~D#A}Jjlc8|Y% zb#OV9XD|F_^NQ_!B)1}D)@Jdh2sb95omAqEgq$acRzvIpU763ivW@@*Het(CX=Vbx zB#;QHW~X&{by7tj+7YU?gs8=Gci-bxJz5LoN>#bhZ?GtxO!1vrnTezYq9eC^5d^$8 z@eCI8kDgar0jiM47$#n>Hgs;nY=lui^afdmg3SQm9oA}XD0mJAC&fy&L)1qAv?_BL z_#dHskcy{m7W)&eTqbfyo&526JCQ1ZcU>$N2I28{HkJms)B-i z_uWf&;Xcu6y!>WxHazGzO0cn&hW*LA7bkx_Bdl`^^Ybg4o4Op|D-cD#C#Tcf;5%P_ zq75M)P8ES~l{hRy2d^DR%!)KDhO$nt&z;NJq7kaoJrL$LE4EynaP8$dS0ES-OV#FR z)cj!+>-D=jef6eNmqq{Z-ASj~WUhW!EvK(pZTh?&J+9lsTPr)8p0(R*D@~$CSSyMV zJA?Dhf&&h=-lXrAgGsB4uXQv=#_SUOkeI4-Xe)?~JvabErU31Ri_tbMf zoi9K8$HQjc4lOsXAX(^_#jwfEce&+6p29MgLMzK(Wy0a2v^ZiaG zWd^VY_iS%hwu!lgJd{EegQXUbz4gov*(;>lVZ5q}~Na!9BFFzZH+} z1d0r#lnHq2cZ=nE^SpaB`N2#IAWeW4WXK8+g0eJ*5FuY@(43te_jTrs^O$gKE_ysV zrFK8n1Ll3Bz*n$f82sjiJZw;49o`eGl6(TNtAWt!4v%Xkc)q9Ny*i$zC%D>e()x3} zoQF1$$O(||=Ngcbt+#q2B(P4zGzQty$qbb1Y{2DZ%JmW}B=-Di(36Yd?cQWo2hdR{ zmr5`qu5oFKSgOg#ErF;?W!u;b@;qrE;hOt)6)A$TxU{hePI;RXv~g5 zuV9%3U@Eq4Dt9L7hY(939Lxcgz=%nW!|vfXf7`dHP`Hnt*6H!2&9{N|K>`Rf^ZD|d zD!23C(ft)jU3(JoST|E`*BIqvxKddau285D?WH|wm=!m&2Qp;h(PSQRv@S;_3il~V zzL{al9WoHe_T(hC{b*@*)1Qt3z;HY%QKd<1I%?JlB5Pb&(LJFCDyZ#?MCZHT{MUgY zVZt(zK)xT)-LeJ+Iu>~J$>Z%uUcs|yqT?x-A!=FE3XI*cyPz~eq4!(k>L+*h?}QP} zhBvVgogBQ$WATMsAH9EVe`zlc=(F1K?__%f$Ol^SOlZG7h$=RAy=Enp`d7A{ca!Xm zxt}hO;;18d*mSZPxV;^X-v4}SZdv{GGvk9_{<~{2kJAy_UU5Fz-Bz$%u?I)ExL4)g zp3n7s*^Jdt$lHOGJ0He_@c#4z`@AwbsY8w26)#G%FnKljrdI78OQmYD)TR=dLPC#M zYxNmKDdFu?sUMsljdOXA!X?-DmyKWCw=o+Z(XTGL9SMf>q?`;kreFQ;sv$7_^E#Bi z=~$uwW$$RdS>e#004@NKQqeAbDER|1m|+8MIHb0ZyD~spGq~Sx-^yo6HWv%>QL0u& z^POO8yq@<*>a#zYlIz`%fy(UfQWbhkxi7=EH(?E z^Akj&-#953Qc>}&SBT^(uHL-t$F;j^mf3p$e>4R>dmpPEk!7Vf<|0b1e#ePW$*f!} z`OOIGmxj7@OW zEEHd)N^c^Qi{s;O{;$8+ZGHC9j?R)w-~P~$O-I+{=M7IP@4NBoz3ba< z_o5=V^XS(5zr4M$9SEXfo!(;g@P24d(UB;rG5Q^0YsAuo!wKmHs)%A^Zo?Ue6-c$- zZ=6ow*8TL$<6)~qRQ!dv(%CrQef6ptqClc<;}ak8 z^u600ifcU~YaaXnk+2M)*aFUu#s}a2Z~06p9RMI35ek}v-CkNCQ9-PXkN$W7{qATm zi7*IVi{m*De!S{6D;|({#;ii;{HEh?|=cK z)r6j(^wM602=iHCIOyh69GQm0Y^n(NFBXn%EQ`m}&3?1m_~x5$|MsHm_bTGKaKP$T zuI}D9x860wnQD!Ur+7MNHJ}*j^MoBs=8!!eUD*M)#jY8KWP^guU6;j7qhxU{r=}EQ z*j{p4vniB#XdZ^=ck(1CUb=a|E6r7VgL1~7h1sqm!4DZFV_C^H%&MZ4H^2``?1N^e zU2yGZD^1L=s~y4qxPWou?v0)9?EGcbZ`g4nF%)r!f$Ja+8*Wt06C8W_yFYzXT8-ca zbvnGf>?FTwR7#?0)x12nXNC*m7rQ1QhJdv_p02igu_T+X13Dm?ak{~VmD=A?M;1Z> z@=ukH1+LdiS_P{3#XX}#x1tSD7QMa3Ct5|D9O=qPI)VnIum0gM@b38m-1w13!MAg7 zbw%CN{)hLMSD$3L_VadZ58I=!{o5}rB)E0iCeke8t!90EoT(HcpftE>lybqN^U1W|8+BV^>o-lZ z+pUOH8EPYCHtQi9!0shegL+@`8#gUR$bu^Ir(r!VP+?=NQ7u7UIZ|Psoi)Bc$an%I zc*t_iLfVkv4w{W@8qCc!;`Om|HtRE7bVY*#$ek0_}A~vEh|f+yWeTk*{+M?(*(?o4eu%(V9^%1YdY1VBT9+wX}m=RH}phx7=2`HIC zHVy7Go_MDrq)3+1wM%KUE3YvSBqMQTk$+Y%&Mvypj4>5*T#H%U&|TXtVf5>>=d*rP z9n8=jNU9pc{L%FI-O1>XTz_)S-CfeUJwY~Z*t3|sa{g@4m)4d`2^_#+j-~DU*)q;e z>a9ViKB%}8mUxL|^I;3!v?-i^xBKHSghL^c4;u;1Uu|plAAYJ2&fkABA4tkQW^y<^ z?T-vv_~?*`$!}fU{--bZcJ6OE7UHgILwRq>{^VMmN$jg@;dO4{-+TPywO{=Fy-#k& zAh7bqukG!mX?_mzhRo}33g2Q2R4>YlWjSnG)d_{%!_W4k!E9w1lIxzJJ`jF#JFL9D zm5zcEnZ4?dC$FC$%1ldS3o~%s{^p{RKRIq*O>)2w_t)z$PSOI3A+c&D+&s=l{k{k* zh26z|#iDUJf)?N8FvniJt`el*JG&T`h?t{xHLJI~OuE->`GY7mg1QwW)PhVuXitWr zP!7~XCbIrSgJw-wERu18s@#{&y4f@)j;Rz?7&nTgiWryVStS%p$Mm{rp;xR+g%ZU} zWdIQuNJfNWB`JwT*sVctoDO0{47f^UtX+)b<#zwD#ba0~60Y+gks=wUGZV|UYrnp= zwYjpiwX<*6FRaHAB;<@0S_hzC<)j!CXklkfJD`e()8l{q)ARFZzy0lN_$q^E)2`fm z^x3_AjkSc%w|Fay|=1h?nd|J4`j-CYMqM2w-N8y@2}uFTa*fZN00 z7H%->@Xh;MvSIr+#GG!pM(0Tfj^GiO#mO+6TE#-Bmi0x_sfZoW^w7x-8*wPOrqH5T zZh#RmI;T$o{mxY&yZ|f6mZZAX;RW#Y?UR?2ztU+OlEn)Ud$BZAmefQ=?MR|8I zw7Nv%e+L;WNLrq#A1XO}T(qRak)T4k>+mQOdA(L_w@b~z#VqY*V|^Cdy~y76^&;*Gu`5l-?^uQP`~a3J0Uz`Vp9>?bV2lrPsP9x1_gHk#c`}oK2{rSKC;O3UT;J@>U*1M&2YAsf8c7E4?^M)xc zBR=DrPQRtIhfJ<&!h@l+csrp=h5R0=Xx>(DIYREcQC}3J)4%;*DuFTYyH~x7$(adq z@0cm#ZQiPK0MY+92cSnOmK#!%pqUELOH%$`JLYgBcAL)x-=;#}# zQW(J=KtP?*;_Tq~yw%8pqnaW>wcs}vq^Z;x4PsArAAa`a-ulYJxdp}CU*Gq}qRJ(E zTxe14gK6(%KoR9`vBib#L9Q%4`~K@!-~H1cF4-(eL9Ls|R9mTLzdh3KIN&6i&AIJ` zS*yo512K*a=B)4i=)NbW(P@H{dL?5OgL#q&!)louG~xAOf8SxYYRKCU_H7S8dE9IT z?48Q#%L0(A9Q#SnTHL!HC}Gwl4~cVp)0=|(HyU^AwKz{nCnZ;U6_A(42lpSER^3t$ z8j{f7#RJIZ+|IJ1n7ldzCl4A6Qf%58Xii@B0^^hN)%3UD;(L4kWE9@Vt&`H_Ma{>Q zy@eSi;}+bq;a7X&J}PFQGL2RW&u42=D(WROB&5tzo(i&z1*0%oB7f75cQ8O4PoG2DDsx z_WIRn5@DlwHYFggR5r}^01Jnwbol=553aB5`2x#J8&-c#k~2OcTb$-vmjxo9vN{q? zwvXaz0c@qu{^7gXcnDcXkrXpos1F>!X*1%4;UXn0w^`&XaN zZ=t}#^YUFbSusCQnUq#+&ynXNN+sf9mVP{U?fo_P^8H=q9^=u6f<`L8cJK2iTkcRs zt+6F%J-Ez{Cn3HXb7p`GAhn@U7{Oy~BDuBUNjbxNE06v1wlCtJe)a4X>`z^;~8zK@VWsRZSD2-wg;g9IIG`ot82TGlBL%aIaYVcV$6YcvSYad%cLulr3dDsv>0%4_ zX5pOZq;fT0>uvaNDaTlZ>b|*Zr_?LE%I1kyqwx!IuEIzR7YV^ff$K@WCcsWiU`G@4 ziLA^;l5stQsH|K*6uv!sN!H_vLRe3p^d}9NMo-G_RLSF|Ik+1* z!Vv;I+CK#3%({&gvupSIZ4I*WB&o&6rzB!`#`1K?uYng+x`^KW;^TEUd&%vUZBI7| zs+9u7grgXBZ{{;vsXW6!`slNH(WBHd-EJ-y&?0;!-)pqwoCMU9L>6?vW`|XybFFWN z$qfqxyOM1-D{uWz3dCMsUi#@@{Q2VjA75X+bL+v}#`RlYJW3&9uRWa+aR~Uz(49yZ zLI%H9vAest?~W8SYw?tNJ5!?y{ncxV8;=M&iW+R5Wr)~JT=5sh6m<)Idaa=S+~|RY zuqaXig;&3FZ^1@;^+I^HeV#e|{qBzM>3+)Z^!4QOD4WOP4Yc$-_sf`~B<5RL=3~G~t3HPBEp|1@L%?VV$*i zLq`VU^aM0-HNJFq#^o^X_`H5`Hs~BzYf?d`1hGECZ*P~xTqdhA`VgpVeRJ8%!UiK( zn!I}P<^*B~l2pR@`q`^*-!`O5#_Iqo04EmPouhV+gc9PoDP)ALjir_42kL;y6LQ-d zr^z6W#~TM%;}ZPGN>PV3W(Q+u+>HZCb|j?%y#{&s@@VpQ0?N~tG@%KuR>W-7pqK!5 zR9u#60B4`JMkfT$SspopVg0@B9i_`{vhO<@@Q#QwM-8sr=RywEic)RVI8C}OttTP} zx7W0;DvMws;3?MfwMa~A`%|LW>Sa~7d=|dK`DsL-6)bkdnFwzwW0=dj^3;T6AfK|l zR^IrlfAh)z@?`F>R$;n0s53FdWf@Gy^`QCDV{4Db(j}V4mv$1G5U(_CEZa9&?Fziv zvs+6`tM-jxZ7tA@D^?IGybD5erU_Y@Q4uZ)0fXMQzrCy2vC|xk(bB87a)W^+Bs`@pC z4_Q@6He2KG<7)T@-Ze4@5m5H*u5@$22UbraR@^J7Axn)gKi|?*-c1=5zSDg z##Ogm<$-0ir3+OD6?%M81uk~J)uKFZzmpuaQ_iR_CxP&~b^Q9($vFV3st4o43Rh@y zK}smGa+&8VVJFjs&TOMa#3VA72xxHQnlGNCT%jzPB1QlDZtURMZ%!vQ`1UavR+vl-m6^xIODUULc2r$!P-sOCK8ZwE^2I&xUf&~#ptsdtfVHcSd}R|sZsIG2gKHKr(uVeKRu@GTqj zafC~%%};#RZEw^KCMYVb_hu5AG6|8g5D8oNeDAO&z}5_6h@X6RZEoFyrgc=MQtcLc zsB}DTBs{3-Fh_tCX|dY@ex32)xK{7Anc-;NIi5YZx3T9n>8(tb@q=HLwT3)Cx`4`6 zAZy!f+6dfG)sN??uvfpNvZ)@03_kkKhfD8WcWRyK^U$2KS?=#y@p+qh z-L@A4EW6^SUm}3OjXN#M^;KPAfG;Gg#-D$@r`+CC?{4iSQwff1^ca64qDMnwI>3ib zi$A-u?9bW*KF8?dU~+X(>kQxh_y6y|zCCG5M^i~UgjetZ{IJh6Hr&!kD}MPiHyr=P z_A@fe;(lcBb9JLvEq@dDXbrS}1Bu6oK%0V$y~-O2m6BLAC_#3xhsaejmdkNAb*big zx`AxEy%{D$5t!Fc%3K>1%~+WZ1R~vjGS`|MJ#T~|JCtMK`oK&MT1{5Y#h`i6Xk{po zFE{8UyxlA5_^^37oy`vVS+*{9E_w-nyeaUp7_4)XEHqszK(-PaJvIylV?gnk;~re1 zauC_^6HNfKgaJ@Am`q@Lnt<|sLhg|cU;){T>iyvG=;F=mmn}eE_ezlZBlF{<3PfT% zjgSvKNxQ$MHgCobPvBvbST!Uwq9>9Bot8?Q#3eV~b8m-$ z!1whP=Z#7QUoskEf&cBa1r`m@4)4wP9~;>w!CU?LVyf z6(8JOel+(~ed~+4_dmI_`NUb!J$4vvd|Inb6#{!mGF2u$-a1tiNj{)+sd#q#S3m#w z@kc-Uv!CcxRP@$IcUSio6bE%W=uK$idcTO-7#jjQm$(7rc`${*C3@<#F{IXNbwn5D zw&Os(+!g=$GU@r#+6vErqPI8c5-GDy-9=QGUlsCs;*MQ^0)S_=N~1V^`I~RgPrBaX zx04qqwJa0CQsuG-cJU8BHTyhl3qTwYt)4=8Ih1rIC$9>^Az<6$K|n+z1#0U)4~LCSL-zjvZQ^Oln;nFstK{7@4vtkWwIGrE;-Og%yGUR}cszfJ)$# zP#~216S+{8lZ9`->cbEpbLnhmk2X*|D8OGgC)Dx zuU!l!a6dFSlH+(;w7VlYG6SC%whU8CkJ949?4@z57=!e1K0sCEf(wD6U8i5Bi?Uv4 zbA|Hl_Tlt(HPH%g2Q~3pBsD%gKf9PjVzp|!9zxQVc(i|r+TFQINP6Cg+q0uwz@T+P zCy9s|LjJ(I0*f26asn3fY&x*5Wn1mes6;cTwNgA>%Yky)uExUFjonB0BbbP%Qzhc* zn%DTNgpC`POyM z%JQDSfBgS*^qyUAoN1co-Ag>6CV+(ZHsDPlA`lS( z0zgE-d+#%mp3EdgCrXq`QdOy2YISwjw5hHh)B9n+?%7BC1IR-n6A|zGJokNFF;7{v zXCe9(hKo~nE*%Nli)j8JC7PATBWylxP)B6bb~ElT$1P54^jxztch8X^^H%?&aUn_ChqN0Su(_k=JJ^UX#>-T-WiCH zZZHkC0S@CK-@2oyNI$+I6WqQdUt061))#gqF7nDpuGI(cu87B1cg!YrWc~K^%HoJW zm+|ws!2_{6#EXj8mp~@9nvaGr`ys3U;`_4zS?Fa4UVDu@eb$J2P0B5%8vy@8Jdz|? zt56}O+aY&?&9Zu3?aKo;^Qc^jgiLcAiKr71Z_f(YO*u}&PdLNcF(9l}JX$OGTPZec zHV=n~gi^ISsdGl^!z`%D8J>XmW)I?URgkbCD9J-q?djPg$<3X`Efo^Akw%SGvaXX& zZ$VwxYO!RzzWVdD-$}9-B3&I+hV5bvJVj*xcR#?mOy}1~Bnp`#LVNu1kYtY@_mfQ9 z4Fu~VJgmZ2os*{Zke?4XKRf963M5uwgRo6a=hUWlnZi7^Q!iNFGBNSCSh%I-^i~rQ z_WP|w*qI3;1jP@5G!2AppN*k>&hSCM^%T2vQ;Qf-xRm8O-7L*mca=7#c~sYc%eUTi z+iwyN+4KSL*qn$LU3V5lI7DZnZg(>6cBQ-Fu+#0qp{J1GdQr4kqIk&iR58Sd7{WfE zU#@mBtXv@%S-mi$QcDn}hSdUCRA+W*T|P-R%D9{1m8+tNAquyvo9b|?=rQU9R(n9M zPRZ7<%)fQ7Uw0)A-K*=HM$w*5;S0*_$c(l5`1wT#4mZA7G6LW;6hlH2g2_}wj=TrSk3 zkjH!E)=jBmC_OSNlXwk_@BI9}YH3pChkLvWI3od-NQHVgMy}7!ZwlczpysL`rcpFD z!219A+YETz_HZJ8s49 z>}}Py7S%cthgoRlEDp|LblbH^iuCG?ky5!*1czE97l;yAxl^s;R-(Os)OvJ2e0kCx zRE}t3d)(Xfu2CMBI)sRVSp=iwzE<#opz9|EQMB<{I!`=?(Yy zYaWv!4rfl*Pc_=WLDp(Q(Lf}@LN+bm+s_b^IWn3Ur1gsNU#u_OfgvG41h{4v+Has; zJdDf5R-*>zS-25aM~rnVkL0x84=Vw|Bf6wNa~NOJbG6ooGjV zIA={MCn!U;)>Nxj}f|&ZkuviKsd)|N8bJUsv5vA<9qs*IhDu{o9~Rz zR(M#{NrL;G&gCge=vKvYuixMRMmY>fSFgXbqcU7Nm$J>v1QafoMz!zVtCf5_e;01Va710WPa5)I^hYE3A@(gcWR_ojna-e37ygHEEoMc z9BG^|WaW|VO_~O9G4*Cc=0s5!I$55KU&-?v+xf+QBXIi%xd(>eE z7tdcj?HRRxxWVhp%t5V`gS9P_3nFfZGXR=e3Q%yd5N(IiPPaku1*0=v&xZpCK;Z1Q zvyn!>Rl28gL*i~CeR4GqlNXX2{$fpG09As zvag);J0TTLBOVf0t9N?&REb*=2;3pQKx!q zZ&|KjGTM2$HV~pL1|kKO1F0JHOmIs%j{2!$diSc;w5)U3Svjl1$2>kTN42PLGe8R0l=G^M zDTTdSrx)DWbbx*!P+t}W zJtAV}FD7<&BwFJ(n@x7eUGMgy!VhX2GTGqI5}P;Yl~bk*+H2S9@u0<^XCpd1riMSc zdv}M3*gyBoZ;x*lwZaf75N0i+PzgxWYB2_J({_BJzGo>I}#h1IvOrh0kwKiM>uux>F3GeS8S}C;q%#6EdyLv zFo|V@B-c$P;cq%@9G@TeOAMc~=yx}ip2I!`e9Gagr)3))HA8GZ$I&Sk4Y0s+LwR=q zJTYvtog{e>^X#d~N&%HGN_MyHPB$XZ$EwHRiZnGlKC?x!=O+pwuGfyHtJzfP;g3Y5 zhXrt}r`zp8KKm%hmvdT?NL|USjj91<5~DiDb(iMOjcJifHM%KQ%uVj@shw1|-F^Al zQP}PeWob5Uce|8IPw%jKGHmBS40a60O^3##-a{;VYda5C)T`s`wqo7~IWdHn>)mdL z4LA>p9i{a`)AEMP>X9r6=8l=`2D1(}PtksE?fz~~v!dHI zvh`fMS_d(od`_fX+P0DhEa^{F!(qJ_u=U)MVoH&+EU)SWi^4TTzvf$B#iYyAx)^4d z-81O|u*f_006=SPb=4!CzcZuULwstZ4$&G%9mWlfq1kN&ITzy=ZtOWC!O;inj)2X@ zm70}do=AXOqD`{N%AgI|&mmxXPlk4h5_K!Xl*cVKFMb4xSJZOXiHPRsZ&_2jGOf$1 zhaY6@;OmPz(0^M8fSpRG4=+wyFNWP>Bp%G2rpmP}tfUCl{dFu(FySC>4b{0s1WKa$ zPmVIO=_xl4#n=co{N|g%;G5s<_q)|rGYw4@Izc!w;0)x-#olRu*griS)XRfXA>J&- zbIoq65l4MYELn$tEgepE+I_IhF(F?e6^`IQ2uh|ZTqpxkzybxdGA`ZaY{6Z@h%9Is zyFV(D$g&{_z1R)zFq_GtLB5oQLB`=xtx#_Fj*s?RrKrjh`Gyb972+MlIN1;8kb44b%)?d(<1bde4etb?zQ@L{qimO z#bZNQICgE_y(?dp!HX*6Cc~l?s}3NBPGFjq5>z=YQJMCZ#4;Nl`1H%XSC%R)fKsQ^ z7OIG;H|ECHgeFojsx>Yt=JigQX=iHUy>X8BZX2gD*e$B8Nz>-SgT?E&M#W;m`r?fyW6`;|(^rOPsY04#l}1wpqjIVA3gSx^;-PSiXGoOk)nY-u*oe^87|g`g zdWAAdQkY(-G}=?_CY)A$>-Sg4PYdHas!eq`STCG^md)jGl@h2d7@8{bWPP6opJz2u zYJw4<)H%rTHn+oNkyt{63oF#)#YUV)WO%x++FPD%SMssSlP`Yv^5E6k>+fI3Ao|>D zTwe4l(0h+(5`**hrE8T+BUjC(7&O|B zcUzq@8H%UCz}bQ#iLs=4u#!}TPiQZAp@pxmc7-=uLmxPYGZ3z;Gt0( z^cOznypz;y&I#tgISc+lq8#NoyAG$RpdGI^APDY7p^+X7MIs=z@)Amc&1qcy;NI$j z%n_txEQEwT^5(>BroZ-x7hsx!-ClgnTELr#S@{SKhq8X5k;c+*l9$S5OaH>h4Kh zR+~iwVCO)QabwYB4tJpCh+ig%)2*@uB}f0$Uy1Z86{TA?>(`d8o2wfh(5EJ&20u## z<*IDCz!$1eQO?J$i!vwXRk*DyOOEo<$>#}c;pL~{`Av(?A==ag6L<6ouifJ#8e>ZT*!irRH6jiH=U) zR)*I{6*>vc#7WP=vtR((G3Z}>qngchNa73(jn~5AW>xW6k<1A-I9nz1~&nB zlXRt8%6iuH367Nu*>1mg@$|Rfe_en1{SSZo``^4eJbisQ`1%NrrL|I;KY#u5ix;O) z9-W`H3fXKT6vNqkx0{7oHvHN~z*nvEaD_^`*Mx@?n&@S-O=x_^VX$Apxr$K^wvzI& zp9!YJoSm*aU0%4>SUheLHBwQxJw$@s3;08g5V+IB!PxNWH=p#H!+w>mTs~@gCf=9| z*B^GB@9+5)1-sHButoVak2@&$()NSbpQkp~2-4xjVFmBzLO7Y!27RL0nIMebIDgQr zj=49CW`jB$4mXRTEEvYA0^-Yu0z}vqN(57mkdq|DYl@Y1)M+c$Njs{R?~0TW!Ob_X zlCvMphU2Ks9o6eqySlBhRbdR<(}86^d78irMr`8!+wZT1Q?Bmgvkn`_Bjw?z=dBJH zW>V#fyGx;;ys8n2AnT%tUtV)B-U2fh=C#CFYEdRx7AZsm=@b@P;mZjI!ip?bX=Wq9 ziqLOQS_ukzTg=kW-rCcxE^72fhZo@Usx8#RRcL#j5Aaa}xMWaItR&*C9-OfE3(;aS zOsIkRS^V;KOC#Qn`2O;(`*wQIi8H6}>*CF=(Unx*eE+)4BBPw2gmRYV++R*0e9G_0 zYA_$+BQ+n6t}5=oe`Um8a*bbkLuyrr%&294ZFgecoKGio70&t8D}{Lqq__#A$hbDAwqu|IP#V)ty9-DOI%lFvfBe%Q|Mj1LIBTV=6+D)LIyTr@zx?hj+dT$h+R1*knS#JE2w{qGlBN>9 zdb1e!$dL$_JmTo6!9-Syl*&hkYL#mL5^{hbsb^{@sNm5Vdn@Q6iejf2w4 z7*sFu(wVp{5GNZ43?Agps_EfxzW=-)^WwGc{-X|fClS;c!R6W&qZJE5WpL1Mf#$E) za~WjgPQ5i5(RtX21aS~W3^9^yz7fT+bqT>`!$g6!dh`yxH`jZ7+BE8po*Pbu^T}sy+4NAf?60i6_d>&9*#w2_d zBOIx01ULm@&SpwM5QM?Y4bYWmyFIY%R(b(%zZNJ|vyT&*C{4N_KlFkX9b3GA^M4!J zl9-e`3YRUgd}nd_`fl%srwQ+y%e0>g#Lu)tE*Oh>e%+ti|DC7s~G>a#qi*4?uZxlYq#PQ*R- zjd|ke3GhXo0xJ=ZYaJ<;Mm_4uX@lOVj`;X~rPQkO=_G>*7W6u?d(casbe}(e{>|_I z@ehCf`yc-9^T#hz5MbwMK)J{_38Q9QM(loQA2-`7Ef51Uh!t^!GhBTDMw#XyNLT8`*7Gwy7sHbn(aFIQ5+ph1>2JWc8c|8GmoWuX^VD8 z!k%wed_vf=zO zUE*e~>$k>@70uN}hefcVQ9u^~P$@A>$lyy9EsH{nQo-cHLF(}JQ?eJGAJ4|6TN=;O z?A+3r+JQr`*Bunh+`cDI*XitjmC&#hE<+5*amQyphTahi1osiFM1`U-^a2lLHxThT zp(v0IphD$A*r|UMCw|dq%XqTH{Nil`H(0^+5s?GgoE!)~>VC%O!4WGJi zVi7T}EJzG$-5%spgW|QjJI?q~ChS7pVdLoJ_{54cMqyz5V8e0Co~#6s5ORADJZVV_ zUP={%&|LvAKIVvK65-@!6AT$-ob|6Ps3OGM z>GkX5<0rrS_Unr*pDMS%`1;dF!_#h=p^LfX0faKr7f+kDaOHHr-t6@&1{ z6~a-_Ch{DijFO>>z!JW z)JJt1RSUWeF*;*B>{S~@f*m89&ULe{PLtJ%b3Ju3V@jZ8o`^!hA?;@17djHGz%V#w z5zNb+Y`_bQfI>AtaH5>cxhb&~%NIjlEZ=d&n+~;B#+^4p$j0s_Sm@%pmgLqwQwgjg zIO-0iVpt~KJxWGm$nNgahG1ohBs;BGKb!h*7iD@bIn*tUj>;68RpF9FU{2fCY%ULl zZH%rgO&dV>W2AhEIaFq;c=k>C;6GMmV9s~y0}_-Q}$ zumzpp)FDTZhb`8q344%G4Dqf`FKV?PUfY^~AhYYY1Wx6(+Y@VM#m26qR=b#;myW&v z_N{wMf*BpRv8qOPw-!Hq>lg3d)a#Y)uy%1;xAmSrtDaocEnYXurrz25=);fifBfEC zIs+k5ENpt@XegBY|KA+deDSQ`DR&MZxAzCoR8Jp$`$d~;)=AlzF;sKLY4f@V6AG6k ziY?XLMheJO^ssbUVSt^Z_biXE=!A%NX*&jJ@)a);G71D6y8%KQI`D%_7(PN0#{z5= zufrNEA9L{pTO4Hlu>STrLp&ES=ATu4{_La6;}^gA?RS6uhkyRp|MlO$`==jX|M2@i zev<&HV5v}e`Rgy9ULIHWo0T@;TR;VQ&;qI8{-YPod;^GuPD3D)wpy5Awpk1Y`>ia0 zT;O7Ur_sjn{sbU|J7ub5mHVU3Mm>(QxEWMk2uWZR9*EH|YxHqJ_?3ixJ%$ zkt%1!cnPXFO0_i=)-LZD!KcW!SQaW;Zd**mw89_lh0~^K^R`{L>tK_*Z3mdiL$_|+ zgby1=7pOOeI54L@+bvy|z+>MyuI?H>gL74wqbKK-wyCL21x4+{jW7lV5v^eXqQ2Aj zrr^`C+SFE&2-}Xd(dyZtjt0{u5cv}39rwD`r*o`qE?rkSWf7H7E>fp5mTS5Vk#_jF zGbrtc41~rk-rEsvttdKW?$hJ*x^+Pkymj^Fdv8urFHS4HR(V)YmR0xss<|r*4@N$o zo1EI!8bR1()#>ki@Mk~K)a(9YqFv4>V{nwu?eBLQOosYt~5ImCrg%QDZFJWhndT&8dl>zk7XY!s=xvjX~eMKmieLgCQ0cjfzz7+%Op@ zr?;t0wPAWc(NtKuw_;oLH9&8ckDeb65BGD~)T3So2VUQ^pQLbyKO@)LEm=Gv zldtW9p26zHv~Ep^kL9T%}ajtMggfj^^PJ-fVF^j~gA~5EQ`c{NaA38LJIEo?b4(qyrFa zh&wC2W-fjFB&|0CLL?pMLR5$kx^!OXc&MeuNP>um9G)F$CY=j^wQZ4aK;zX% zQJFGrnbi_mIF=k73@R`p^suF`E>Eisr`q9ws?UrzV_S=qTU;3A9$Oz=pOrcFAd0K8 zd)v1sRr*jkx=X!)W|f0++X@U<#qHCJlGPhqYxi%x+YMO-o2%<+Jx(kyxudlPfH+9p zr(TabjV>w}u}keRe~6ptq&biXMW<=?PXLp^~Rco zfmNPKasBQsjU@Hlu$p^$(y!nK`ou4Zck6sJS%l396E}PIA#z#+%9Pr!9li?b(%Gh4 zV~Z3YGWOu{<)ObK{pjY6pZsce>%j=3zGFhJXhkj>K!c(QkJgGmIdwO<$MbB zfIvZ^vJoje!0=&(nL2%0_0=C0&}fll9A=$QDV9Y!uf*xtQ8%elqgXkwI7K|?b5;B2 zIT+Hj%FTIAK)9)KmqWP6xT#Q?Pz+La>0%axI0g;uwnmYQrkz%`4chmv1Vc_-QGxxJ zEpj+rEoRE)q01SfhONe@-+%S^@Sy+M5C8T*|McH~{|~?aa*)sG)7f$h6n9~5@G6E8a z$!2L?VOKgJPv)OjCPCmb^A}f^CU39!&S_ zXhqu_o6C|AF+1z=fAar6&6~G06x;eXDRpbMZr%`#Ez319%3)kv4{lsrGlX(S1M$R+ zN-R_V*SmXnt)KkE&@mY(_>A#%A{RC*)#w0dC#8NXPlr7w!~|a76ch9-)ou^0J^gip zgnp@MG}_(Ll5&m4tTsURdrRUrI5(Uau3ZwSaiJi87U}pk@}1?MZK10lzd3$)8ljZJ zD;xURnY$~$`j4|7#QP10tD|d^DjioK{p;Qf!87H9<2OTxr%LX0bV#V)Ia`Hr^PSo!CxT zWDZB9ADX!?gCH5kbUDR(nKqezHE7oNufbZ0ERT#wOUG7>hRVim; z`QFRZ$NN|m(AzYiCsbn9o-vuZ{d196s_;Pn9|NVk%?vx4-m}BgVY_<--1;*_nc|BW z9m>U)Z$8MCQfUfqdLEJt z(+FMJ7a^{>E5DlCU0#@jC`O8JqQxTn^c)vLBr>-BfP z?Tl~kwSM>jf6z6Z6kLe*3}ry&Xp|>Y5RF z!&oAk18WkFI|3;#QW*A=q+gM+^Cw49(juhOHYRJu5UjGFvrw6!td$yE#%;GY3aJ(; z^GdwhHABp{&z8+XSw3u9W*^!*)cP%DTi*9@B*6Jz5en>AvdADytM zY$~VpZS}S=9gpkp$btpEX?@nk@gWQq3B)>s->3qtLy9m(>y)29=oF8WjW{C{Olid6 ztP29{&o%)%hnIxy*IrfH{wg96B<6?jfF4^lwPq={V13o<`R*3t_pXhC%;L0prl0gPeVG5 z(PVD53EqGwTnta4Hmyow*6YyRaQ}Jh;4oON?Ke{7PJ;JE@Kr~I*66DHT>Z3x*ftgM zNV*y^ASir5@whu(W1IanMQ8+ON?4AwUzxAJJsOCn39nV9(masIRHn_H@t=>(uZ(YD zdgu;vwJeByV=gG+B;$!jiuNgi8f1>6P7fIl+ALms^P6w*x!HR*>YC7!I{}F7!mp;} z5;EPdw{m=mb;g4RU7XYSM01+QIrZJmn>RoB;O5%3C6#4;#A~IbBnit6Zx~|GK3|vt z7$~Pw<_3-azJtJWIWLaIqORmCpyhKx720{qAfoHjq+?k)Ay-gdZ#?dspS36`w_EE^ zP;vDK>o;e-tWheS5zgM9UDIRG&HcYr*|nM5YXI+EC6Eo!*lOK3-nK|~5x3lOSECas zZoQ!ZfDfrR>Bq0!de4#2Z;9|!Di>rK5C~=YT-{&=)8E*p+RT8P)92Zfuie?&GWwN) zc*r<1FS9PrFR2Zt9hm~2v91u@tFc7)BBEW|5~5g?_aq(-fGNlN6FC-WK=Byvk2)FB zFd^~fzig+Tmc+qoh6pFQdg;;kpZ)f`hrjvzZ~x{0{(rtd8gxo|$jpSHfto4yn#cPG z{o2Eq-+cG=V>t6Q_6HrHyeA7l)q}G~w#=t^8xc@>ax})q`2YiX?(dY)5UjiVRIVRFw z861J^!QLll`;D_Rz?UQW{O%_8bWoyaEO{Vn^AMVA=HtOeCthgTV~L47yIQe=X~XI+ zTP@JSAPLK^I?yMyF)Qie-DXyARvQ&A=g6-8_MMMDlI-4l^SZ7`~3V{mcveNtl|DibM^UuE{vmVwW`<1kC^I1$O|5 zeD!!HpU8(QflcL_s&bN#Yd(DU!Sz4;$xkPUklN5ZUAQGvt7F=QZM82LM0YmtuV$?!`CWysNEkDj>desu38mI=q1evDezEAY0|f z)hLxPJB!2Tk9xm-_4(g^a{BGxeEp|?|FYg_l|a3lPeNrUlk1g}^?v=}%in+Z?WfPq zj!)0d>IdL>g9AW6&esF}5R-3K3KT|hWeSPc&M*3p4zlf5ry6lsWcHxjS`PYR=3O}! zri*9UrIF3~4GJ?*M~$#<&u6u3r10KKVa+E^Jh>0~7u=ezm>GLQHXYRW>a)? zRcY6&0-=7NDkY+s`rxxKPS3jset~B7t%-n1g9VZo&A}m55sjdz$kv!}67~V89ZJ2a z&RPHP*ZpL(SIM+fdRK|zBvQRS_9I0oUQgatb6E=^XBCD@-L zHJDl#N|kcAeHh``T3c}6T1b?R*WMVD`5L_5DBs+>IU;aqqs;hrI^`RuIs^y0-o{qYa2YOU2sr@H4nQ{6u(MI!lnrT*;ie)pTNpPhC0AD`?W z*7sZGMu9CiU{Fuy7b-LLe=rY7rUW861V9q>FB=)eawnyZpf*687R&3trrB<#S}*4<4&PtkUmg z`OeAHcJJxYi*JAXq#DIU^KzehS=%V%=dX*Uf}XFQq;aj8kD`)2!j{1U>2~wcDcst6 zy#Z%*5oY6t#N-jHG){N4o9DIA5x~odJuhomz{Orvnkrcr?Xhei<{-Q+Mlvt5XWV9G zcKhb8dGfAyGp60r8yfZDfC2U0Fq<+-p%N)zT zDx(ko`ef_Q2375TF?^V7KF(;?kW|bEi3eXK#AXt`M^8_lKYfx-D0b!-%{u$kzVOOh zcMO~U|G7JLcWX!H+8(=q?H9k;GHNVzJQz%~jL&LQx+T#k$CTKJLItUL!kDo0ez}%< z?A%=usDx(O=F<8aV>9mVs3~}3a{ie+zxv6D*l#ti-7?4Gt&-K1Z{ut8BM*WRj*zY6 zLE){jw|+XZVG4ctkv^i-*%k7U+3|Z8SxBv62R;oFTp9Ica;0>k()`iEY0I3{`7-z< zJ9TfRR?nkIbibO37xycN0ku#M$HAJ$<}ZYz;dodtH+kS<7@#Y~4Wn8hymw_p<%*W^ zB@%wVHt>lD6;hv47tp~`yb;ewfyz{kkUl7pRtc$WQRNb;EUlvfkM6-K>&gH6{c+{+ zkKdP?ofkiR{SW{0KR&H>J3Z)=WLuqfYk!c8FkGRr|Mk~je{p#*g!R?M*`w#@E$FE7 z4DT)WLA;wk{OaZ7C&NlQ?4tZS6qHqYCPT&Z?fqo!bUz(oC@hw(cR0nw1BqIM#?LN3 z1=2$W(fFg3&m=T>L38C484w%f8nXe&65}De!x2vQDxm0enw!z6T@6<0crDg_{N$q2 z=c>S7`Rv5xT(Wuf5}zkX2Zj&NkL_rThNq4jtjG?N&Q#%jeEaz)1FsQ*gnB-UiJi4} zhRD=Uq84av#yHZx1KlRKMum{jP_b{$ZSX0VG*(8C#gXffS z-I?U7C&jN{xOVxhQZ8{ssYW@&q+6v_zV`W}0v75%ZCJMFcN3gy?CP5f@BD|!p#F{9 z-jH@_WpVW9Z!c}Vd2LPxG(60MTTK*2Gm!GhXG4jNksX~Ka`x`?PjO}N(j&kfBX`#Y ze>FaX8eGiIh>He|sf{Qu|6+bZR^Oi1D1u?>(wY^nsK|olnx1A2yHc&vW##OC%bmC1 z+%*Na*0*Mj_H{MqM<}ZZfi8^4Zxe63(%F242tZ=qWJCq_22<@Mt0(YqB^=p&`{q?^A2O>yYD-tX76F);j^b- z_w$Wvqr_9igFK*~ONDGc2WYlq=+GXW9UY$yPcH{G`1^P^4XKwFaPR5XC*M9ld-miY z<=9!$C7>N2pffEfULW`13&Ex8Cq+QLL>wlA&Po#jtG}NnhG*yK4QJk`qA;zQjRs8t z&hGLBNRLutVmlG|zB9RUI7&q-0Sg6%Q-sSqU6Ic4pjt4Qvy6}Lm=$J{K#4r9*yIX? zHyrNs_2l}V8v)+3D;V*`hX64R+68@#wIsW z9?S1n=n%`L5rZQaP9D`*;O-qX_S?ODqTqGHP@>V-*z>49w6W^4=N(mDBal_H%s5XZMm>O36nBvzjvOT)TF2VP$mV@kk7O@n`Mu$bRG^*ONHLaehhp>NQ~9_dR-9QmW@)kzs@9UaVKPU9SWUv zZ^vqL>hAerjFbrZ!YN##SpVhKO(hI6L`!0`)`r>5gk3}7)X`Czu9pf)F5T<1Dat~n zLMmO}SF^5)qsfS4|3yOR_J=yX{U#K+q!@z8q`HWmsI?%RO9xZ6QWYY8xiTbL9$ucG zKuWc93N6H9CJ)NdA{-5Jd7c22>e17))-yP%Sv6oDAl=?nyWcx#9bJ@)NzO-;H0>iP zuTx{Qj%;tPD_3yV67^gk(~EXj5H0w{R)upR;6B=1#EzqtYnDQIshT9SY=Lu!vW{() zL4)?6HT)H5e_vGY%!nUs?g&?+{Sa8cxrk93Dg-RXG?XLbxYZcqtTjk2TQiTk!9u?pRzNN9mC2L_u98YTvM&2^;qJN^IG(~lleoRQFr{=)uI(s8 zM!;<>*>T6FgjZY}y}Plrq>*hYcIe>d=$gWXMIz}s;0|CmzsV%C@!avSjS_?Q$uSp+ zHegQJ2wS@emrlCP1@7Lswyj&@BK~x*}?)1&mK$<*E(T zZpGJE=-oH2P2TwM{`T7Ztin?n#FD2Eo#0&w`oy$Ao8)KjI;9e)OgyEmhwK?Z!?p*olgyGK5#-&?pW~mFKEk=a0cMf4R?$zr_=mx{vq0@)G4uzs8{bs5( z=)(y)O=qo+cG&LB7K^1+Dd(d~CIiDl+O1Y*)F#O~!q9fl?5+ZaPf!Z5Q7(4?rQKSo zT(R+BVRqh2hO%LY+v~EYlDR4r?D$CbAnnix00;&W0gpkrE@Ax!#JoRDU>;vQpH3z7 zoKH=e)S}f*xnAP|5Ni^g!VTD-R*I>7tJLf_+MW8ab1*m@)T;Xp2vNZP0yx>FR0{Xu z&BIR*iwDPzP9vY{9#pu>pwW5UE)L4sJlJ%&UOyQzE2P_3|NQ^>FYgywgR7LKm3i8} zZGyLoc4JngwIO;h7F8QL+RIqfI$wwj$UUW2w_uyRJ!aq%<=RoVo_51|grVsoODJ54 zIGE2u3?rP2vV;$X42wTTJ29g^o@b*TPd3dI+-$0u0ySs*y1?Zv*34@}A^>LUT&wIB z*@;vj5T#XKWE%qMAv~R7P+RxNcI}--!RWgqi}O-=xa>+TskmlE?zgWSv?9aK`)_~n z;kI!1x?1GuKRmCui>afs21@0U>AQrw{ySZFdM(Wn<>Oo$(J< zj6F2^!6Z#0a+xgy-|1+auics5{b=&mM>|ZkSyNgf;PnXb9-T%oeSdQK`k#<4U)5 z?r^27g`g%Z^{AZ%&k{^+jruL&JGWLRK+&{3Wp`0JYq^n0SxrWV=*EJ_HRrHj#frHu zE|G2sJ)u~s%LkzvbXe+WLoSldn4piS+nQcm(g-)i8#3M(0%USM>m-d)o_C8xRFw?4{jqc^rt(B{3Ai}( z=?qDhE(TshTn+9-qYD;+7k2NydyRF$ny36<>Rx1<3|@~?R+msXB*{GrhfFWUrO+e>g)4rzSM(51&CLBXN`96#V6-S z#Y`e!Ne%}6(~eKFvoihG&;IvceV|U*sdDF%jwS#v2hO#1rFf5v1;ZX!kp`y~NcRGf za;!iKIFMugh|JwoL$<3l;E0UJj$7%>;b}8q4C8s)srUQ+9;?@hBXR_y&7E>25zyFl z0UAaU!E`K|gM)5@2~)O|A>dx|$GK>dqyzkb+13q*Ph*57t6G_yRWgZ)m**ggO9vxD zsdjhg?%bY0%GmGR+*MdLxRT7*d7hBZT)C#6-P1^xqs&^ql}Ti1E{?d-Y`m2xwsoKd z3nen}N{SA;C8s-wE3rY!&Q!~TZ-3vDh`WSl#aXR|7{ufUIS$0mhl7-UYGZtKS8bqe zNMiuCY%#1ikk#%=$Gx=n{M~yUPQkr1ikF01=)IF zr+o^sH+QsV?U?5guUzBMOV#G3HJicIImqc3R<@*iB^ApaH`oo}ET{Q3y)^ze&3LEM zYNmRyi98!*F@3}@m+187STK-`C$j~Z!LX6tErWEMtdg|Q9OR~Vvx}+`ErSNJ=-h=m2zn?+Gv(2CkHkCT&BTTjd+#KmSC)ffphrL zfDbu?A;!zpkItLW#^O1QA@Ry_Hl8Y0dI!B$^Xx?<+b)9zD_J={es;Ql`0CSV7sc}B z;h^D9gbR;8dvx^Tu-bq2aIjwq5^fVo0bMT2R{N>J017PKVz!YjRcbLn>U{9_fB8Ru zdh_Ncky4W_h76%OCK;I>d2e>s+lmlzBH#h%m4=8@elHmZ{8SXwa{&~rpi!tQCwm7> z8Mns52mv6@QZkB>6d%n11C4N_xN-+Dm2SKYy;Ezv8S>`202vL!!9ADHBu$EK6AdK8 zvfZ5`qEUAi5_(Tr z$=FtWHIH8stLejK0g9ba}ONO#y`sYlF4h0Zy^F*X4~^-j1&CoXffa_Z9M(u9v| zFP?>CQoA`(pu^6%{p=~>k6)Cq!V8M#@O;WB+S%E$96U*4sZtuldA(Tgz49}qPknQA zGVHnW;OfGvp4A(@`Y9C?fVNCDfksKc9{MZlV%!|qnN}hso6Wi1-crTt%{KZ~a^(7h z8}F^oj4)?IFw05x%bR)|5K1Ii5FE4eMVxPC z&d?NJzdZX9A$4A^mRn_D2{+mYhuzbcr_UZARfexG8xa7q9UectxOnw=e{g=54VdhJ zze*PwP`xKACx@AGrGI$%@MOQor7H2L@xj;!Lcyd^?^6~sOr`3x`%snKv3YgDWGC(B zYpcWbP&C;xpcT-Q)3^_z z91^Q;cN&0fImT&JhH10JK$uV%e20&!L0B9C^ev{ACqO%2LyUeqNt$P@DKkx>Ah~gS z^{}lnZ9<%9V{0YAW^EF^WkpSgv@*iJYx286{i0cu$|c>0KKoagM(weCr60itCW|_a z81MU0`|9+@sk@>?rqu18|L%}4JUM9XI~MOQS{PL7)o12DT=OTSn=>%q{-TYF z%?^>~UOXJ-x<>#EizkuG_DbrIHsEqVvU^ zx!>fE2DuK*gi4u0tv~$XF;Rw3PW52bPWt1?00ycmjoE3|8F7nMi{{8uwcmk_!iHSp zw@pcB!RKFp{_H8Atqn6NiVdS)U!z^kx5Jb_?Z(_B99V4b zEX}cbK=An4K?(Zdd_Gw@sZ^j+m22fVw%7n8P#wyi*;)=J+PTJ2F{(r6wXTs}MKc3H#> zV0OuUp->CxWDVhUtG9ho`?8lOd`TBk8B&hb1=Yrm+<~QFPlzZH_2!x;l1yc*JuX?O zz(J1W*lr}kWYZoDsYJC=MkANEQODf*VgeU&CO@u16L3ZiDY&EZBC<`yl{0PBcH5UYJr zi2wyTorBd-;XwbO#Q4g4gZ$?pPO!z%8xtG%SecITrM$Pbn4M3oe=v4qHFTCK)>s#j zE2jPOiA}R6!-S*LYnmN+SUVhM7mJxarLKAPFm*j)NMtM_i-{%9AH`!hDLg@x(P{TWS(!o(!ue)UBz6QGT1XB?y9`f7Gr zK>@1b#G}^(&k0v#VcUb7SP7ZX6MjuBP3Z-1-MszFvBib=Z|WrDQ@aWShuKg#-KW(u z%r>>WzG@L{O};g{x@W*BT4%H=^e~c<+tZ%_9?WZkh}tKY=k4PzkbyF_*8XvyM5Hd8 z*9mvy4Kf`-bCIZrGP4ZplM43Ko~jLM%*6t25IRJ{SimDR?wRugM;U_peigf4a+^b+ z{q^7d4WLTugJ<busBMQ_dButwfS5vBUvfTv;lA z`e;y&<({2nW5ZKWrVo3`Sfz0YfrLh-QD_dknf9PNJUDxJ@#6I4#plBW9jlz5(y{-K zqxWofBt6eGKkpBiZ>x!!(Tofwkxe#RY~Nj7UEUt=Ee^c*-X{{7$V4I&NCTVj9yoBv z`%|{74cm|+MTrunQOrsa8@u}pHew&{AL!~r0h#anJokNF{n5eI`AM%(+PoT8%Pl*9KBaeCn3Ola1)THiPEz^z?SbZx-@CPrlo!C2+sntClah z3EEU`z*b~?aZRovI2KOoJU1+&uwWOP_5F(xo37W|_44T#eGUXJFvM{htU@k_VK%uQ z32Jtv>!4mISm)AKjPtq5Ek13P**LKngH;5Hfy37=S%Z%-;-;$w>^l3 zXl2uJmWi$`D*}Yyk`Fky*Gfl5^X3-XDy0hL`?CbS06k@2)Sd9eL0Mm{r!KIqKY!p3 zGX^l>S>t3%HZQTJd(RFFsCVb~j%?>1M3hrC{f$7U1(;sJ8(C3WtTv@;=kc1Yta&tR zAR7d?OC2;M{*YcgNKC?;`ifujbo$h%X4Qk6Kfn3j zd$)HU-@Ng+_mvB?Dys9FoLd9ISXl^a&F)Ov;WDp%wg9eP+#NwurAXKW6#I1PC_Usl z1#a@<`4@+ma$pO9%7v3hen7&2~;hpHCqBGEnvlZ2nO zS)8tQt=1N@&pBcE844CNfb(tCCoRY1q6lR)pWhfNX4nMbh!_2F3}&eyT9mJbMGkys z?y!wXa`{FSWo+rPAEm;nOhbh8RWqC6fOR>!giQV5)pfgH6dSNA>=ikd&K9%%-O1(i zi?e61Uj6c_m*Xn^PJ6e~?q7cQe9}sJ(ekSX2Xn0ssDeuSCx`nNN8?6*)Q7YO^ijp~ z^ndw4=dRP@JS0tBltf^tcgwm^cBVdG4*8Mk6g zxzsFjX(0(PwcX=Ur~Brr?sDfL2ag(jJQ$`hmcrt=)2KB%)?{o1!ik_YP6(78+rDFL zmG>|D39%SY^QiT)uT5v+)n%ErreZt3B)?}|-wRx9se7^9|QZFjD7au(!h;;|Ft7KdDR$dk0 zZ27Fi7PrWZl*R;_TQQa9c58SrQn~zU&jcIx{iD6%>F{WBF*>-+hX-OQ$3;L+r9Va1 zX@h-H0%%mC|MR3i%$zi%sKfe%& zSmEgTvmC~?zuc>*a(jmZum!+Mj*SVlg-Vz<=BB27Y(V1-DYmsXayMWPgp*mXUKS+n z5pRSRd%GuBBA44(uqljTKAVL;l`-9oU`4u|fLwVJuL8a*tgIage5=#gKYo!jg<~d{ zC0xsw3K1fSZr)o}-MWoZ4u{^8B0Vrf@pwb_wMRmYYVY>pJ`zVXp)ojNNs~_%EYy*F z5o7q6Q)!@2D=DYk;@3)%M6MY0#=JJIaY3S!tL(1T*&Y4r6j~E|$5+&}d~?cUe@E@~ zJ2pMMS2lZl`QuGk41$1+Av#s9D-5wy8yPB+sXmYrVhfEQYD>2`|Wys1|z#jv(^J-&LysphnPDk_z^ zIerYPHND4k(59Zw#3PoaP^`rBB{CMKIMifj$&y$mL~$WShGE~>DwKLS>T-q~dmTDi zI6S(1_WA-=MJIb-wVNn&SZ4xkI^l3z?Vf3KZlC7+yIw^S9gQzuoEBTPdZ)&5oMB6= zTb9i&emWbqub`A6UW3lwa9r-yah%2wA`&U(V758Pp^X{?-zJPeTxc?ecvFeRkM2uD zt~E1ZLjpkp^w-sL^RioNX0mi?*xlXhRj#sl4Ct}pgWvq_|Neje?W?`o$@%H&tDeZP zVr{=)KK=Uq@Z$8@*WWZ+sK7C4cp#r1RZBcpyF4p!)e^*4GGcvn)IK^dSHt093v@m~uP>Ps_+*qtcV>5#pU-aE*|>2732>vx z){a_f-G1~_R4BiElY@G5u`V>pXpX1oFw0>2KVo&WCq>*w!&)O>$HE*@ z6V7|upgZc^SXxsX5JCjPYpovI4%=hq8#BJJLythBkOJYQCd{_0RMH>71;nyr$n91H zK+>OFf3eS8MeyEz0=m-zt#QV5$~sWf;Lwuj%$K!A*Qr#ZEL)ALM{Oz@8ta3i`{I% z>+s+v`_TbQ)$vr3?j%G;r{?bhtB_2SR2Z+0o?l*Fz4~%|cyhEih^l+T{%#E@sTAtd z%o+oF6J3TQdjay#UD8LhLVvh78XfhUnEI3V)mp;?<(5K7bHJCr+&?%nt9PhYy2-*Gft8qx%# zDR90*>NROo+l(%QdV4F#@vyrK0F z<*BoFR%_%PHh(N1^}|TZpXgG{#sydJqyYtar~P2R!y4i@8lu540`*u9B~zqO9+!L@#(?DULj&&g+Sb*Y&lGX%#-GWJA5Pu> z;Jsz5arvfpZWey}Nr3@=Is)tb%JaR8t`dP4Ml1<~K7kTwx0@-8nv&BLK-0kQi1VQ3DVWIM!$V>0SQzl*JZrn6x_695xZw|S+f0?Q)sq!cm~-Kfh!!> zCdb3W^OMWtumAA32f3rHm=0k|4er-$t}d#Kc0VDIUOvImU>-xGq@T^8b2AIe3vzd+(G%+3 z2DpdXuv(474ElEa&Q_+O6Ft=yVNNG7kJgTx#bM^pe$=cr6v7v%sCVF;Ma+9x;l*w3~@rdh{( z@7-FAWC@~~;5@T)i}$2(k+GJ&glu4}Y4(~8R}H5KC; zV|w-Ws?$qkvmw5`drYJ<_mr+w%xHFmz37Bh7q1d{^9lY#r`la=52;VE2H#;3+Z^? zzE(uNkp(-nG@#81=lrE5cc_%ay5rH|L48n+nIj%|I$AmtDr7PNBv%}%cu0@Uhs0g(-|!G>aD`~?64kBEX=A`=anlu zydOhbUB5D1E$J-+MfuDI^~UnH7uej@F;8LEQlpfvLYuz>8;ZEpMwa4cBwn@PXNNJl zyO<5qj7?{SE2k zDVNTf3;S3+0kQo=*l$&C&$zUAl<|A_Bu?GT-S=;;KUvw4dFzFAy+~um`5!+PvfB@1 z@f)gEg>;!VHWYY;a`9lHFZs=I5;-Iiq15#D`?ppf`B7*+;ue$n-skVB3YLw> zYk*dg@90*xJT9%?HRj@TH`bHEpUf4m&nrBa8Xs`^FLJ3O)7fjaTvi31%27;Z)INRD z2l_`qeSa=wkrRkR6NH`~6s2qm+-?ETcje&qKmQ;9@jV%>YlN~^Z6^x=hc)N{!K5w1t@^Qd3D>XRxUeo8XIPw+CqIfnyVCdhrMT_Dd{nIaBrY- z{QO{a_3H}=eI~=6LN6{Rj8xw0HTikCKb=)dfA>WKlKG`V{dm$9S@nBw*&sm*=46H= ztd2wkN#e1fR;FUOAQ7b^nF?QT#B))+J*k~{h+=}N45@e)lLo3oP$qZjRIXxVUf_O0G)1U`%&pDdKWVTYEIV^^tl{foo zcVfd_hqxU(CP$md8zy%5!Nw=;|60iACHn z(RZiG$!QBj7`evz@u)sN>~z4?w7q4uaQ$M`*WR<4?0z>C0mBGECdw67uiIQ+TQ+HJ zMpdMslo_0iQ+?lEL6dy78Y-e&fnY3P)%mm=R)48DaDS$?M}ojH%wyI(t6wsEm3~ho ztKV3CqzozU%uOxH*0vp9J&0E0a5hza`e#zv4TBa&pAqCVYXZeZZcMPNFm>_E9V2eCb{|XTWVw2FsJk>4J*!QBrw0=CFAi@bm`H;%IqAp zbdovL2g%BEc+zdMN?X6tZmoVk*NSJ_gKt_)x=^6WAblK`+?IMRPZc3j?$z8|@)({d z^oaE%Tf2^=_YRC2$^Az%TSjDSSIZC=#3johCBzq6?-HM z*OgZN{2(p{^tpWhynmGO?L7LKyf^@=PCG;U5tldU58J#B%ZA&x`Jn-YW=yYA-OVtx zE{a!pc))rJ6(3e6Qjr?K-VT!*EFK8!9z0s&E8rs#OC2cUAD)b^py>xou|Is(?vCEP zzPz~Xm8!U(iBVYPSxW=$Z7$I)AYzwJko>4OIk~);Kn9DoOiA2!-HtSSHfXhT1+RMq zyg>w@O$;+(BWclv(U^dkRt@eD+2<)T4azYeuuF zGSUse7K8C}ZbN6MBED#z4nj|Le#f)0u>RLS{)?YGku*(YNV8n2DHdo?d2iT?Bzm0O z=*6|ZWG0=akex*vXutCix+@ck$7XLNlMN9&3*JS|a(GTH{d_hUB_p(;Uhr{5)`dS= z+L|$iB%g2ltO}E4X(x!=Dd(!1BJn1dDA~}k4oNpk!->tF4Ck?_n-7-MD>t?bVy6%< zHt=nspj&a}4W{WOIv#v*>*jr9Gv6ImogQ2rrXq)m9DW zzht|UNEU^1*dMb;LIlMAP5w60IvNc6z5ZFdcJ<9KPlfbR9W_$0pTLuNeRTNUQP-z- z7h>@Y+*rng`q9gy!B;2gS|Y*d9?eG~N$iw?b=MW(y*?@tos=2M6K*&6FABjzA-VJR zUE=VhUoCfep2wtUI*VBFV9aB7_;la{fELiO-Au7Td#dDt8=-f}5jR?c+5CjcPRjNz zi7Vp!|6RAJHU>n=N)x80S4ZbxTz~(szkd1US0~SUuU?&BO}c#Mdbd38rup{y_k#i) zIO>&@Ft~X0>j_#B#c>r$j#w0lRFjEJ*pKD7cAI>FxZ=$7)uh3Xo2XJ1AOltFzRIy!+Oi*5T4S-5R{%zu^rdrY(c^ z$&yy>3+DCSz5K<*+ZsX3QL7;Ntl(MHDx{%fS}|i6G8c7K{n#nN+*#E-|LM;j`9fQe zf>TgYQ~%o@y4!H69lmXQn0F=C7PPsDO=4f)UVi-UCu~4U-u?G*6Ko94IbCXZ*Q#_tcu4wC^=w!#Zu5p=HlVC zCxJlRx4it>jC}E(r`pkOw;C{^V@;u>WOMpnXXy8|PCgfnW-mQsMe2&I~~y-AGr4wcTESG8zpByT=!Z z)@h2c^Ij9Gn7MOzh2l-Fpn7@7X$xdqnN)JT*B+*!c0P)Fp$-a~QMOvh;yIqJ!tx76 z{1HFWcX(s@QhKik?ll^XhWXr>-S@qxqFJ}yM^|{SJGHa&WMv~NHj6;NLdA3wmH@-k zz5VNFFJHZS^YzQ?-Q6M}OphjoCSPu+^8L0*!I&`DJ9^XNvzLR(*`&&KvhWk(hH$IE z`d=M3T9eDeJVB?r!@=>W9rrjAEeh6xeuLG^b0J&Er;Spm)O zRCV0zwol4b{pwlDBa_%INDajDsL4c6vi@~YMHQleiLDnw9}AYMJCcp5Rku~4ShMn6 zI;Mw2H{PUt5O#dpy<>{T8CU->xSt$>A7k7QUqTxemkKnjJ|l ztKY=n)Qw8+OY|Oa#jQV>`$%S$OoexY2)DB}6Pi$#fZ?8z^lxa5X4AS&K*qyrmo9L7 zCr1;<$L5tqgT3jV(%oBfr9dwmbwjd6q29W4XH#SGtoxGQY%k;@>nBVgpq4m2A%fvq z!X(J|T=ro)A`^SU&;Q8xcefwKB+4bumy0QNGURTUY^|Wg%S*1v_D-De2v_#(_d@n?G^%;90r=Wg3U2jCxM5&LgLe?M}jw=mABsh*^2LhyuKla8Sm1KyH97e>pxY} z46c_;mLEUBWHM*mruSayZX4!Zwlfe82k+r!K#gaIF^L%_&i9_5|XGQ{E@J7c=#UPI4upDrX zyhG$J;V?;-nckQ-Mj+Ra_DY>OuLYSmrqovZqIu=5hrD$@70dWt0f_X`gQzP#BFHqu zutL2gJdIQVuU_m7yXS)fvtgC4Ia!FHV@yU4xylyPD%G>1rljY>W;W^U8-eT^-5>A}ccDF(4RDb3S_owP|JHfGn&*mC{rp(SRLbdmQ%HAfO;RW%_#ObnUAFZl6UA5` zfba?H)|(ZYa4CG2RVH@(=F}ZS+`N|D%>+_(z$Xytm?J#ON5y!s7F%%CxK%3v2=c^@1^AhE1CTX`Mott{2 z1*hRkZo>Kn`|LJ|h0V6C5I5VRD>r9#(YVEfYTO&!w;r!~8$vacvU;doFIDUryqQJm zQE}(v|8oEFBTH`JdZ=+4>A2DyiITKxjxM2_bL$&YON824TA16|n%3(PMl3;|5XQ~4 zGZ;3LLfmS$7{Nxh^0zjl=7UDsW%~f#r+M^ZkCe-KL2>!r+;alu?^bzoJ}x^*Ch4=!nwXgIUqRp~q6$(^NoNM(*XH7J0oB7~& z6W_*=SR@qn1sy0j%aBYyN4X7N;D4b)rwno0-e`FJ?bVy#|Mr*9uYWTZ84$CQ5g$qC zAcb8mjZZ4c`e1nV-MNq*J!|(4A@38S8M_&pI%bA}hFm=e@`^nAWPW8$R)|Zt9zNNc z_C(x7jx)t_0>)(6QW~hT2#G_gJy2G?Ckb^*-RIwax!+6jpa^IVDXe_ZiG@%Q8pbPC zr!|V|072`7V^xZyLS8jN#_dLl#1uxkWa#$K9`AhaC^0Nu3vWN2yP+7t(YLU-2SC6S z62LR{dX2}r1Js%*vdOxK1ZH@J;R7g!`VA`76}GQ$`6+7ohGp@gJVd92!+NDfr=8x_ z(vAFgde(!aBxj=_E4q}51ao_I-;I{oy2`>UHz?#$eM`g9)LT}#^mk2%ED z!mD~iGqNrJ>?41)5LGNb{`hAzPd{5!VKEbuYjVjhz>y+$l0hvY0?QD-+kg49zkL73 zee3>74h%zCdo(DSeu%|qb)j27|6AG0d}#N)RLB9mg#F^YkoU&w*Jpbo3W9r@#kGzM z2vYauK{*{K?QHdUy13HHJr|v~!qCNzzr6x&}USBrl2qav|!M9%w zI=iJte^}}?OJ2OvnzV(8&xSJ~pYblQJ2oY2kKYcovXk?}PMsm*6d~?s%DCZIq^Wu7I=aM<8&aFX5gnX8mH_W6_74?cj(bgK%g!658jzk50vO@`=`PZTnP*Zke?aSZ&OREM|lDipb{KbROZuNLH)27S50OCKYBX z8Ppjh=~1_uNZC+ZtL)WB%|BmT`1mIuZoW6~v58iTae8&lVp1yCoH5tRw%P*JlEZeZ z(3=cfY>%MzYmTMmX7wjO`gs0SKg{vG%cn0Fzk%MsiU8c(HxJ45tZI=H!F#R-EGB4UYHG+ z-I9$JSF%)06uTT4u+d8e{c^*-;h=ZCK6IwBHSqKz~dO zPJe`2-=BK)C;$78mW=U5rFTVd+6XJ2NCITap;7D*g~p!Nor^V!B}hqU%oK*B=lk2A z-o%l;e?w<5W%gV-v0RGcbuK0{sip1a1duplK0-Viy^yhds;rVu<>NuOmsq#&h>64 zUu}<0qe1hghh)hNkiB}1d_GB`LcXEX^-3`M@c9@T_3;UO=GL@y>o#aO3e{{aJacbb zD~nnkz-q3+S^)ODDf*%_rG~&eQ6MZcn+hQMCaAbqrUH@(T#*X7FR#YU06{TuJ96Og z6{cO_?9G)$fi$g|qN#eSp3O9Y%NHk-YQ6lX%#GRX8ofK;t79P{+Tnu3l3YIXGMTAJysCxe z@Lq+XDz(>RK%+H&NFa>QtTsrbi%-=hF+rXkH;1pU&tDx}UjO?0gT0Hdz9<*d<;yS6 z3j;9iym+}kK0iM^dHLqDpRDb_0j6@unJj@hV6R7FB>_=ub8mj#XiNax&mDNEQs=HkxEFBXkpQVJRH9e}3p)_DP4n~rb^h)D@i9`r zxIXB251@8mPKJ!WHuhNV+)_&JE#6*q^~P!4%15flpQx&ZoGS?Ppy{7a%gn*T^O_SIcvh4MJ`Id!Y-f8( zZ?@2btZ%~wB?r0Fgb;E);ZMS7iWXj^d#~_di4fRg(82b0IcQ9cPA}7$a)T0e;1k~Q zRz_lscWy=H+L%i|cYogM)T-kJ*i$6D+$5VSr6IX(E$x;@yB&tjb0(y~HiSE2%)BD4 zru17NaIam27qew$H>nCnwdxbveM7G7i(q!s0`j$um}J{Jo+dPIQFVW6@2k z=V3UHTFJfZ^VeU0_2T0CxBvLtR~IMWf8G9Kx3k|J9yHJ_Hi{|vnXf#lK_Bc=rnUYQe*h1k@if7W$htBr<%|bSj zEHFs12^8;oDqWfs^F-m`>g;q}&&1LN26hS=OaK)ZWK<73KJ2hDO2*Uh#;}{U?ohrV zf|Mg>-Z4Zx5SXeS(q=SG6#C70RAHw%IGxrG>teA)fkB`P$JQdAW5igLbCs!NuL}!J zwn1+%-?+PId~bC}rnT8@CgV=XyuPDTEKS`r&06Bjosh^GRf;Wy0Mkt-?g@Kbu%v<* zVb+AYb2-b#+DcW@Ra z6LfDcfai9Y6otVa_s8o#jbtby-8eX6#cDi4Dhj8&kTBqwKpC^!12_+8Gvh;v(-MF0KKkI(_jdA~gniK%gHlFl_Qr<+ zi_sX+aBa{uU;ua2`B_yHchcyYM@{QC9T;r_GJ(=!-f9k%NI^H`p`Ut_{Ry>kKUvkdS zFo!yNxb*QS*}>w1I}%<~lg=B{VZwSxu3WsQSN!LhPd71Vfr!IDOHiehsiaP)KNbZA zX^aP%GC=J1b4{u<&)(gzGLskS`Zr)z8YLmbsem#>)aGpkRvv{edIf8k=EG@V zB9uF+5ZjwvHTTC2fP0s+qtR&@m&QD*xO580T20YSMT-#&B3ZY^1b#?p=I8AnzhgfP zR!%OmzxeA<9$TKst)bvUJ-hSH=WFuYw~!_nn8I#7z_9F+Et`&DDV_ib@Yxv$BqKUi zgZ$^o>2AAzaKRt-b~}};*v*CeYpT^59+QS;^N%U^%@+ppfdEWY{vyHc6d zCr7=bVdr>q{^I%h_0@~L-X1(0^Z9gI1m{A&n`XzbWN5a_bULP9n9@We*?fV?yMWQX z*8`PAVetLmzxw(j!YA`Cg3PA`NOfnxlsSRWIn?Ejp1o-Gi&$aQM8ue%gxbwTJztH- zQJd5?=g2o()u4`~i!@9GM#CNyZcDTyjEEUZwGNkCQACE7oJ$9PGmkNBRX0$!B93e0 z+TLD=h*9O;S}MyHkJIsFJmK~xYU5&fVO_PQ)jT$*SijZha|c`!eL^kO=;AB4R&V^` z#yzceb#2v$Vz|laSvSzYRq>W{f&(BJ1G}|hvC9`VkB!5H4_hyco7Q9zACDj3UH2+f zlbY0=RMUjt6DE~beEYNIncQ*O5lc}H&9+2oWgQw^gl{`ycXi?}I-d$6K{0BR_*teN zTv}Rs4C)AHIQl;9G%#hBMx^?<9Sb^1R6=F70a&AC+f|8e4uB3%mV4k3+NQuUCYKZfF6G=hYRyGf@NK%gF@73aiJ72d-}kHhIyu5Re2m-*|k&Fz-S zgIKXCx7n>O81qHAWM^>x=KR?YUw!-4o7Y#@=g-=GDqR5WIl>;k{_6bd&Drsri*B(7 zc<^+R2)mgqS8WW&gTX=1W58MouWISZtWLXb!fb9lT^1_ca(@iB!13AfvtFWrA~u+$ zWBGi&(@X;slcY1l<9@xDEcVaN%U(^yytV~e884haJDgS)0UJg|$Yf)%@fsE&;m!)N zc-^PTx5#4Jpbf{3CBUqgD?=Qt>(tsdC9+4{zR?@`)}R8H>0`8!m<=W-=}RtD9Qg4UcO>=>+h1GFMG%5GoUhWFlPM z;t7WOLc;3t>X)=@T6JvUZn|mF`s13$A+NtP`$#SJlTk|&W4!)kyyrL1Dt(ffyixOu zRr#XBNo-0zd^Mj^D>Y`l)-Sb3V);}I4MvCp4k@%>^<)dPj~>pdZ8jG6a-J+EU743? zBjx0_Hyt9xY=YPWBVP(HKr*Ng@cZFpP^}4r!{|1kno8|`J_?27FascIAeDO**^2JQ z=YIRj_VTn8_pjWJXdPzwlYvs};~F*#3@deN<(%H4Q%E4FUo68Sgahs{eD+-2ZJv>8 zl4h08kt$*7$*?D$3e4_ZQY)*{`KDG{0JkCVyXXuqEcr7{r{3%$%}g*VB9I0XD?paXaI+7Tl3 z$Ky-VXDLFehvgBS#jBl$3#-;9^$0dR5cYZWZexJ3ujmYqrQlE*KKr|itNma9(?9>qj0g=sGJ=1nir>)Xo9v;&X9-Whn;S&kOtg&Wn6;~s@bchf=~{N>g)&& zQ7$^hq$5zhPhtY&N}`#GI3ANesVdpX`7Jgm5JVk8G3cteFi>j7(h&7EuUd@Wm8T!Q zqssu!*@^LO5N&xJe!kF-IGwI!!KZb{ERt=r$CI}kT^1-dg(y!Nv=jrk(-9#(VP}-v zdaLvMCbDL;e@ay$)3%nxw%#J~Drv&oYqBaLF}` zDx1}#_)H!Wz~`OOJbrAasGY4H6ZXmbZaNThJzk06CT-Xf#_X!~HIo&sw0J=G)*3ZD^)KruQIUjk?7u**OubbL21A=8x}TWDYZ>I{1F`$xTgC|bGP zEAEnse8d!5{&->G=7ws;PFkp#Cjcmg_oo*=*#>KxGtH?aA#~-o%js;MFW!CoPp9%> zdi)RHp4Zi$T8dsr>t{(xY%B&O(Uc_|rfD=I`Xu1QIR0v{E7(ji9>AKG^|g{=^N*7I zt;HpiC1$f~U4qLGlQshA-|hrfym$@8?W5oS;k*C&Z@>BbfA~8)VYLPz?=`$0$1p$u zOpbTqw2~8w-QB^c0_ZZak((Uxh7cQXp>t1n7H{2MSbpqR;d>|hVl!t)Ld@pp>%r>D z@$TVnM!Lwv{nlt&d{(NC%OuW9k{ zV70`dKS$tvNk1G5q{Rj<1jh#CT)27#_a+=d!h~3XZ-3WpSts)8ti`n>!6MLpi6+Hf zSYtGEVShvbL{=&b?;f|&7ju~($>F7H_H$M<>5CQywU*ChQ2zZFY41|dZC+S`ShW!a z_;r3#5`ax4zvt5%)O6iur&LO_f^GQr@nRwn(UOFs&~u9EjNLS$SEb5O+#LXu;*=`I z*VkM@W>MdWBrAvkuCEJ9c|2jaN~KQv&Xaf&FwFgc$_{MgWaM=-;Up1 z1dvUeNv?d9N}1G9btJj_Kl#9D35E3Dh*Gv@h#}^Ovv2*p+bm@w)|A@{-rpo3&m%sU z!-e@6kIZe3HN;f0c1S4&%5U?CM@KI%Uc{OG{O~0dL@Uw0N2v}IW)-IkbD{YaCR`dH zI3!rm{^`?Ce)dTOBA6aMq@=Z~wn)Q^n=Oc93Rb%{o^S+x>$;f2NV^>bK3Mx?2SHdb3+)FSu#m&B+y-^O zvsZv!fA;VH^qar?-9P{C-~I&{Tn10He{?iyLA4afAbHqTWt-1moi=)>oq|ZvowL0R zu#CaJYcm?17Nf;smYX#BLA3?kH9NFZG%GXjKXgvMn^cx(zZ8p>su{R(=1HbGIUFC9hp))|xR6S*2$Lp#euGrs zD%DFwOc)D*^@VjS?sE7FmpKRJ=cgXN_c2uxhe@GCCA9LDl^u$$w)YBgv_dHLsfuP< z?bwloecl4xUMtAX1FqB%TlgDR7wsd8GQfo7uH)jnY8c1fj@%z6r#9@u(I^Y=Z; zg!b-_9+2haRgv&(REwMIv$y}|aj_s4BXZQV?k^lMfN zr8J~ByA8$5RUG50Q9b~jY;OwRkTQKaw6pHsZwJw({=-Css~3yTCJ0MxcU!$(F z@%uU`J|ldq-aE;l{L!Q?K=rY>cX{>Vc?;tQXXA3NTB)VQwwO!fXgC^xPlin3(WnEK zOHeroX>4Vvu_`{i=^5`JyPC(4Z+?>gIkhwB%LS|RHl&k>+s2pCT+#;H?PinTs~j{n?sg4O`HlW z&M9rK8=t=Q*2nK@fftU35Hed8H4BnlNNz+4ok?zEN=Nxhb?sx5S8g2z?|!OMFRjC| zg}wXE-FH5BX>Ix-Sx&S#%gj&y`$PQ(tYm>|#Kv-@aZ467Eh$%3W{)=((#~&#J1dIF zw=5hhVVY@BgAma~sawi)1+T>viFk5pE*A56EC{&GS@E>ju20Te2N%0Ns&!R5da>ZnWSlXAybg9 zHOfF&#bQv~z%C+^)p>I@ZYtOF*y4`2#0NdAb~*<_>65Hi!_ZDYY1>q|c2qQ;a~Rz_ z7A47-&-;jvArNn*UZ*Fmm*2ek_P4+J{eS%KyZ`w2fByS#z5-@pakt+U+Rvf>Tr5KO zyBMQ)dwHgo;p)3b*U$F}flgmsj!FapeGP~Uq^T;0;X5j$j)1f{S;<&+w(Z5a>AB1w zetA-lkVuk}GDsv&21?{gWz4AZg`MUQy^XBDcVltu>HQg9D3q96joiMeTc7qm{qsM4aC`dRR=^eu zR`x-oq`ZCiDFwm>!R2 z@CLTx$yAOnLeZlZiv>-n(0Fye8p$SS&}cB9161u(&|**_*Cb#gu3Mfj#{=&+j5ly=;HkSKmWyIyTxS~Hf#$wyju=} z^jjIilY@IF0_Ue>4ceU{qIY@RfE7A*ht3e4ScmcoM5sESq zc+Wsvs&EjRmCS2)R^{z#8ZX$@HkV7fv#pt3w$4u9nZB`N1z`nDZi*akR>23eu9n$S zxCs5LuqRlmp&#D`!Br}4%;gZLH>zC?#uB>Qz;b2dtI?b*hgk^dER!A_s?ZJ}*1Env ze)+=>zy0nX|LtG@=l}Zm-~aAcui-V*5zFaRp%CFjS}YW5Vv0^@#MbdX%k7R@-ThoH zIh@ox8K~SxBKazm0|N!9OX=5T#toq9fQc0>&1=^6CzfHq!*SrWj`%cG2|V-lM&<~n zXh8aO5(Iqzf;NMQY`7b@KCTPzky41|Dw_WlE}P=W#JhM@wy z_81ydxIKnd_k(v=%XaPKxvjfkR-Ku@X;eNrttLV%CZzXp-SYE$$}kp&+*u%%N}-KY zfE<)kwMNSCjWPi;;n&LDcnUYUGaQ)~BBo6r1xoBuuUkF%{XQg?zj!XzTlEb5RZ&!I zygac;14S^6cb@NF9&}E!Lg$Bnnq*qN-Z}A!B2!55Hjm3r1fgTQW5W^IFVvBz%Lz@q zNEqLl0&oq~hZ{w*84Oj1ufJwho9{0r|38Y}tI3TsOV|A;XCh9-j@>(E_Dr`%Ewx(S z&`4ylXo}@6s!)Z3_ueH;dXGc`NO0?WbpM&iz@s(;Y=3f&9L; z-uHPbnG}oo3^9Z>6BYkzJh;RwT)E71GFE92Zlz8|w$dDY-ld&ugObd5wr?Kga?KtZ zSG<)%2-<=9mW;({oNc9prI9%{WFLFW0K3qn)#G)9$h6zEdfu4fysP7*Q=^L!n-gC) zX{0)p+LJ&%iqY!Vtl3Z&vLLk87%GI+Qw|iDBn-6#Of+aW7MQHb1!1~&Yt4;NSqw=r zM75HIw}6NR0WACehYvpf!)G6V@!gkSeEaneUw`>|ue-C+>?VrsWTl>{?R0a3EMtXY zy*b#(#mY=H;+5EB83|^>OG^`LY_$M(9Oxg!xUkMTZ;nuz3}BGAyM*@jmpyX+@y(5n zC@(INg|x$)KPt5aR^m%_HdNdw;GpP2BYq!`+r3NcKGd~rQ3WFT&GOEU3_@)Ha*%!w zHn}8XPx8TNJnXH~K4nK~)a(q;H>((3Z-P^$o@?)?iZN)rW_+Ak9}cSWn{iC%?ia;I z!{^Jz8C*=~S;N$-)iAegT3pxLli1|T7iWWxm4-ZHm@I_X-WVNu_DVkB8Zr3(N2PDp@SD+#l>En4QDpt^NCmDGFW%+&F8s!grIOeRImm z1Swv3byfH4=e4HuufO_sw0P~P6boAII;>EKj*{$ZdY2??&ZCM;Z<2ny-38l(`eO1BSG4qOwX;$>-7NeJfclU;^ zqL;3e6_#fY_r%`aO0>+_*WV%U6~j5l8e}89tk0OGOk%E-!4o2ec$aM-Q4Y`yUrV}x5?nrXEudHQMEKN@t^A>M};*4wX&L2N@^_i(N z?&N0LJnuz*Gsb5&pch4XY0do7vMXY-u8f2&gycsIG+=qja&waz0J0pCcePwGwZ92S z*+jD#5q9p}@AVGA6Tv2xa;H|?9o{$+>132DJ74!FVj^vD_(%&}pfqcX^J-Y4oWF2E zd&TTqTD+pd%xC}YnUPs%WZe@RRS96>3Zjt}=hFB)?Ui_v3^9>u1?O4$IID7rgZ1_wYzx^r4reVgL@x-@P|MA;nBO_d~x%ufBfN( z_p`lj21TSwzEm<4uB@H0gr(gL1*1y6G@lRW+t>K8(}37R z1^>wD*x{{>)-g1*%0ngd7#m143}Y8YU+lbgl20ZDCcHih_QwZfrBqe&h;RsZA18xfr=O*N>0xGtaJC!tr`-*a4fU>{pI5lx|tiP-*z|~7N!Om93 zF?uNw$fl!krU(Y&SfMrzgHB;)eb5=U=9h!d{Kho**4z~*od8vIr#L$a|F{sB)JKXpAmg8J}5P3h+t$es=Su zvA@x4mb%>@RF%@!S)(h?L_I!lBns7x7gp`TGcQcPd1h+l;#tG2(W}DIaP;h&{$D3K zuf`FVNF)?scsjK1i38s;OX)Ol6=lOXUxX@a88sJa%d%gPDu+UcFXtiAtsbV@w5=&X zZODA>9rR$@tPAt5mSFcBdZcP*s*m*-BE<*O{>N!Wpy+8_+ z`baJVq3{e;SOU6;7dXY$t#&?>cFl}g)+db`y}^Q7Bi*H|W7F=)j(;pRx{kW(hIYnD zv`Xpg%_vt%QFs`Jy8)x#i}-|`nCG&!WK0&b$*Gr@BCCF1AOwx|Vqf|7TgzJeijRQk zLA_lo-rhKTZ(t6S&Tt*| z?tE}KC>3j+OeDW?=i0{hwf$5#SyXxzE&(g@!|Nc#$uu9|1`>IzED*b0y2J-?m(L6p z1E*0tsj&sdE-jhVi|eOed3Dybwsv`D-YS4AW_4Qi)-*+jvjWbsNwo(Gj;570<0=GV zjJ9A@V1-trU2S!00S0tp4w4Aa35!K<)~#5*?yGRL$?a`F_~`wIH*R)Xfc_g)_n$od z{JZbI`S!~Xe)#6APd@wq{&fFj8}d$RO3qRue8n4SE|rwwn%dae+TN%r@Fezb?lhXI zOh!4rvDFY3mn=Z*hu~Dbo#I)FgGQ$Sc?y9s0bvqtrn*f6riTU58i`Si1<#$mG`EmM z+0G4U03h~sXd_pp(e^;fcDrRHQ!j9mE7k4|(-vzsc3JD!hB&@KMB)4zTy&)HcCXkT zK#0RSHMj1_6v}vY4MFwA7*z3XEQ1D!UA5%l&aN2z%cT{JEkRf^$=YP3O$5MM5AOBa9w~{ zE8M-Y0mc*Wr2spr7e}Z3fd#c%$i=98*BYxJYYSydXjLnx8BZ{iHV8F}NoEsVD!%T~ ztl$o5L!lx9O>k1R9x5<~B^4g1duF447Q67fvDuL|hJu7fyAHf~QX%B)TU%mKvDyWo zZlS~lRWzC3+)mo{G)QK1Nukm*&z!w7|Av0)oV(GnBE{YQ-DV+#h9)k(;d#}p*GJx5 zS;5e~lUy1L*4xksWr{MGBjY|5616iaRDV&m=yLg6onmwEewHq56$bnJ1^TGm*c=S2 zLUy;kSxXjL>3pS}E8Z$+YxPQIYj2QGR=^4YbyBm>7&W1mX?HDRrqFOQnc@A2*X@E0 z-s)8!?Y0G$3?8HN>H?C8gAbrhqbyF7d_IGQ4IV5;5G}B%?Y(ro-fW@D z`D|_r_y+AuS`7!*k9Y6gx_30Zd9wqJD#}2^X;9z9z#oF zF2_o>o&H8S+v>F%rB<)hhS^BJSMD7Z^7XA@t|ovMpqsP`A_)W_F`eW&Tu~(690c)n zwYuGn*91`UCg@DM+D;-3uh+qF>)HSzB$wvajZAE-C2e8zVlx!YHiq|hv(SsW6285Y z-ft%KxWIP~3!e2;ssQ3M0X3Fox&wY8;PY?Q=xOelih2AQ`BvY-lqFp-L)St2tTlp; z&gwFdTqhs+MH=8+QiUwDGjl~DEan)PqXxnOvuQfSu>q`+npwN@e=p3dRn!0Pvqp`L z$yy=|mj={TIrzdf=G$<%0`?hAlmb3f1xjU%ODFiHgW7?T;pe9OEixB#j+tGjGlwEG zJjokhZWGoARnPn zy*;BFU7epB0r)_vci0O-`Oq@&o$@$*nVG5ehSa}Nb|VCeD5)Y~$b4Fy4)_I;GWmjZ z6oo`n9F}{nA>&Qw(UiZvzg<19c9q=5{(f&rA6=`aDstueNuyZUIXo$Pg;LRP$3qac zmfDS6CSh@grd?jDQqB^_Cw6Y$ zz5nsoUw!}MPe1pYIU~uHek3f)Hd3M z`p#aV0Zr>`+t+UldwD=!zy!pI3B1%`g?zpofHriK32LU6!ydr)dSthhLSblFrUKE? zvvbKZ0O&KqY^XS_`eHF8T`z}(qQF(!98TBJP^VkyG;4L19TMZ0uowzDrtxl?%4A(G zSd&Kt%(qHbc^0c24)5RU(xH&Dx0UiOY7q|jaVv1a%y+w6ZH~y0e!J7KZZqK$%+rc2 zLZ`BM5@2a7SC;TSCC-tjUb;HBW;DE38fZNv?F&cTbU40^`xiL5Dz7h$xygXbVDhmn z=8O6#_!{7+^Y5P|3Nc?pO7MZ|?jWAtNtf>qZXBkg$zq~J#WO?#Rk@V1%kyrNib=RV zSOET>G;Zknq3h0LfIYM8wU}ehpg|cv6!nC4s<|;$)aWTI3WKDfXrIgG;citt7WjnN z>S9cpRkrrK$D7bBE`@}ADr1Q?GdpQ`cA-WVF^sHFpFcfC>25@ zrsBhPH01FyS*IG-8j*!rdqhq*%3%j?W#cRgI)eg3nQXCEK3UL^gH8!2avR$RHxBnA z{Ot}*Bg5X*K|>049u?C=*~Z7ktX3a$h4S6Ht=wXO1`-z6rQpC9Kvn@xgwh$Zu zX*r8U36>58MS$Qbvj0{nMYn{N(HJzyHf4 z_!M5SMNkAoNRAx9q%<8-TD#S4!4HI){T2R8xRI1lwv-m$eCo65JU+i zH4Y|;hgzG30-}25?3me(l5E^+wZ|Av<~fm^f98eD5JGRZNawPO;*$bVpaB^Pez7tP z4T{Y}5ltY_-Iu)wdva2yv!$fPW`a3j-jB0kA8K7%U%ULafkL?`iYzCkgc8+_1ml;z zh{KJil(awt%R~dNm|s7=?D5oOrM7YV=%B=ftaK#AZ}b_TQEzvv+`&y=a7xJ&ZX;7l^6x5G$24++eS0T+#b6{NlMQ z|8f=PtU-_6YYzF`Vt%*Q|8~xcH_98GdZKjF3?%?1aJ`$XbHFrFZa&^sdI#O>Ix%H4 zqz`NUUqqbf>Xd4JUcD5L0f>8|`w(0uh#xfGVei6njFu={?vMyHnT7QLjOG!h(#L#DbL;5a&)E*>0i-D<o7yV*Sj`9x-w=M-h1%g z)5o`u4~5@Z`&gv|PQagf)-}y{HX1W>s$2 zqIYRZg#Mj5_|pIpWOjK^;WBshIA6Gjn|6Mn@%GNtI^tlhwZn&{>-># z{+z)IzY;#Hbs^q>^Ky>lxD4Sm2a6KHR-(b+idNE3xu{sGUn=EcVM@#SWGVr8CGe!* zdHi61^P|u1z{NUh)|us|!1t1tScBuxt6)N}?c9I=@u#1D_UPKv}wQAYxB5*h|6z7(hMUj zA%#*+ym2u@`chJ+P8;o(`6)Dl8g+z^?KSi^Z2pbazzUG*4V=iNnkE0*oCOF(&>B!G zn{_F*TLjb3`f^N+=fq@^uTixPrO<=_r0^Wj5)9*S38$t-L0LlK4CFdw$d4lNI8N=mz9L}SfXhP!_EQdH{hbQThtDCS5ugW z%(6lAoW&P#S*>)^W(fdXqfp?e?B1Zc+gCER{SS9@#}7|#9Nr!9{y>ygP3R4flcu{M zLMkS=5360Ouqkw81Q05@Vn*go?>M6I5#y@b7hcivg0K>BUY=5UY@R;+8*?@wmbv}7 z1h&wMY=5h7xw09VR>Y)0iIaZX8Qh$x3f_`832@7|+tpY99wLDTP{YX@|!E|(O) z>C!4MHwU$i4<3H>tqP1OPK#=2KEaVZk%Y~MJpu`n=@BY{NH8>DlB`K>Eg z&dzf#zsxa^*NoL<&YwX-6~Tfl@O5r?_M1r1k2o&ITZGS_toW#w1W1BZwU4Vm z*rrm|8XAdP{Bh11L3}=jh`qfyyS@RPzqZ^x8rJzr!ADZgHFF6-Ty385yBytK6vTj+ zR-(<_62v+w7IBo5Nmn2oYBy69!6I7t`^5wgLQx5E<@bh6CNXp6;wX9x7NEYuK4*vT zNkHPpr_P@G?WkEdK4}EkP=%#g}8c0=+$p!CLS1ySmG9$9M(9WQZExxw1-|y`8s;S;U8RVCBT0Rj^fVc(? z{{B}Jgv*T@98;GT;q4G6Vye}MH$;aejw4CY<}FHcbOrtllaWbR82GzZs^Or?=$J)C zR0meT&oadEOqVv`yV}i^#0?YzWd^D z-#`80vu|Oj`oU*^`s>$QHb2HS#6SryjF~pfPAR%D*zNA!9d4&-lFeodgbm#a(Ufh;&IH)Zg;O$ zEdi9z6NzLzawvGuxTz50fetbnaT_D-+SKTB6xE?&GG)Aa@%O(!N2=$iydkl|xuNS; zt7{hxXaKeCIhVe9M9dXQDH5h#7bRIRJs$xhn zkE2wLbCCWJ?nFbn-<=KUT$iuT&x|?37)6Awcxz|78jq~YgZ*27XkEW|>+5U%cQYQ8 z%nr+h&lg?(x0e=1M@My(qgj{Q?3lmV0?8?d*U-4vI<0zVt@bW8rPJsxO!>kA0^0d! zFOR9`BeHLG-Rc(%R;SH|#ilQ)=G0&`HM$%qWtcIeFgfzpx-{DcSz_2orqY2)n~MWu zNx24rpjd!RC37iAC3lVsne9&o&4WCZ3YjmGxj+mOIE5NDtyj-zyz6uGmuEso3tX?l z;4F%&v~FNNgi&#?nhl|O`?A&}Z*;{dpf)Ov1Zsuw^(2&~*4$pV)voGJAPV{8d=3uZWn@FXio!+LB?;kXGa~q`5i-G7d-P~i?di7vi zDYfg}aE#665t`Wl@WIW4dN*Ip0%^3GKtVDS;|eU$0US2n!nrrkYb`cZsFqHSws#xJ zT08jm+s{2euL>xt)eED`WI)S#9bQ+qq}V-+YoP!YN1%l5_xQKpd;H)qSLtV|5~-Wf zXip)2Z^<|L#)To&}k9*=+3rJtHtK&vB&iQOSI*B9MUwUt6?YG*Ma#c#R zIYFTsnIR}TD&;b+%xnGY)LKZt@m7(Q(c0|2$>W%3I^Mx7F=A#psOric# zUxYN7fSsMXY{GD`jD~_>f(Rki6ygSFfn^~?QuWU5Cntw@9)HwTFsM8`EFxsQU`ITD z=Cx=467pI?QY!Wv`6d|(^V^`Nl@d4a zY-KywPfGo*U8rSl)!>@n5}8P{n+rK+)&wyYbi2ZQ3Wk-{QXy_s&w344NA$r7laKH9 zpz(c_1Awo<8VlbkpM?_kt!;<_C8-+&Jh1CD1x z3>kn{VUIInX5AW@ThPE~kxm0D0YL>N&zMYop|qdkqa5p^xv<5udiJ-^EPF!QIpg%w z==nF_xUhI-&dfN%X-v#^$%q{Df<}Yx;&ckrxm+9(^O={=ymIPa%{HrjVSa99Nj3Y< zWEc?RVPNiRqMJAGwvUe5+06Edl4K-_l71l(6ht~UjG9+h*UU>6E@08Vtq!dD0!Gr7 z4!K1{BHiaSLX@z_o#+c+PmkcbfBVKD@P=^cycKdxfl%(wb z-D0Yhwzl@Nh2+$^sC#;G-t9=GPo5~c+5pYkN;&YnAHWAZ;vG z_%I&n5|M~rXV7z*xsmBNuA0VI#*J~yoTE_e6ygkn5D3@Zq)|>tk87RkDJ^S@^Du@= z2NESE!$ga9661mxPB*UY=UcZQ@3#~o*HDOMN6^5>tveR?vyd$a=Tvso?aB*U4a>732A$)6I+OCiPf~|%LdCeP0 zgNQePicOl8STxI`yTke(Os2|dWO7zLMU~0%$)&58mM=ed_QJYaZT2WI1`Tjv6OfAQ z4rJMF!C0;b2OeH3q38mhSf-_Db+=gQ#0^N2i}6P1s;V;o`#HO9S~E5B^1sbS0pviD zZNf|*lyZ>Nm#T2GFGrM&YJue;>*=H}ymSc$wp0G4@x|Gz>*hJF#X~}IoWg#2MG(zZwb^ccV{GZtWh9d?E^86@^6Dj%KVS`X6O1nl zW;*VjXD?jVpVw5XhVhH1#~gS{T$%I%*##2oa=i@5WD^fcYML|4bfTBvDH;tdcYwO1 z0yr*%e7YE^yj$FPzm_ehI5-8b7&N_FvDL07GrP6aR_ncYuQ8EQpT<2XXbwoxyJ~dW zRp(Bfj%nxAvy=W*R=~tc&7K7RkK}<_Hpx|JQDdB6hc1ngj(g)mIa_M+ctYmo+%N7N z0^GjvTer6blOq_nV==o=dv$7hcJu?b-R7@-$-M;?WcOSj?>4$&$`EURD`=7u2 z?$hnP61r|QL0TaJ;rl}8!R;Fd`C{wn?ndM8Njiwv27CK=xB9)|=CDvnNAXm(zfs7f z7^&55XX<|SJM(Y~%oYHjrj#%YLp@noVv(74on{aeb;Q?QC}*%NE%TK`r<>l*js@Gm z;IFV?$ZC~KB`LQtING}TQD^7YN&m2(-oFJSvCWd)*lp$Hq7Q9{Oa;mu-X$P$A04&L z1P<#GbI2KS|IFCiGc#{{m*1RPe|b6t;r=K^o2GmX!pyL#6zp$3@mwO;f}LKP57izX z-?{tq0Ro_uv!jc^uw7Zay7KlbbFtyHn*-be5c%n>DAU1mlA{ZyavA#F{&*WP>ln`Y z%jIbz_wE*0MYwvLgZet*aH8f_>$2A5D8v_Ee(u%Ni;Ha#9BmaV0HzcqgilK_DKC*T z#wcIQ1x)IN$;CCb>e4h6+%zj|moz3jLIkKvCK2_r@%2E|Z1M`(f{;lPi4^YD`EVjI zZ!AcAB})72|CoLIl=1a9G$yMP@e`pHe{fd&=Bm-Z2trUOR?{ zN1Lt6q(2^lBAHi8DYy1+=DWgbY1ac3B?N;82Z&H00prl?0tT}|wWRU7yecQeYzg2d z>79vIGS22JJvm>_iQXl33h;e!xw?c45rSZ3zr6 zRr-57-E!C%ReBAmDue6#WT!i9mX*?Qcbf*^Qi z<_;XtpnFJUY7GwC%mvF`$`Oc8?qE}k4j91D-YF!$zTPg8IG#fM_|(L+|MDw4 z7n&QJy}D`$kjWH}u|_=}P`U9;9X@G~&A%3w8_jGxg3D5yDPs9 ze)pd*jUZQC&{g&5twP9a6f0qF0|pEckJl?majhqw&iXA_z|+{cHbAixGAz|=e7qz{ z41-&JZiC0h=-wWizItK06tP?YCv=RqI-ng^>okN`*pB8hh>fY0YKU32=<`pWn)j@P z2)E(#D~mS$vfdYjm@-u>I#j4-(VL<=TZ0X7!KIayPZuM6m`flqArzl|ZB}>b*~xQy zD(v86(7&C)B5QM_5@DIR;_znrn_GHE1}+Ly(@d{A@y451SLJLaPif;@TfJ(Y59koka65OKNGZ#CngT%7<~ zd4wWRN7!Ps3Ed(*2%-}ew3A&CThX?MwOlGwZFCZDe*$HbKEl7g{@kcrXIT3;BIA&I z2ao^oH`Wcfw*S+1_i{x)2#)0{Aa}xB=+c;_ahORqEb+P~Pr0_bU5G*YnMGC$q8HJL$u` z9BwjL*6$)py<(<|Sn#l%jfI8dJ1p(KJoEgeOTSU8my&WK^ZUiV>p6%+*tSC^=^@qT_S}Q;Gl)ULEN(pj;nAYI`QvsPn>z<#U+PYrEvymM+BzCxQyC} za-mr!;vJ#NYvM`?@o9)wm)ZTeYFdO7D^`dB(!N^d+?0|HXspq!=FD%dl1`2sJ4<+c zar25ks8lw338k}>v%1*hZfB<`?(U}w`L2IuX3XbW3&#wIMq>nwC`)oB-0GrNPp^l< zI0Sn9QaGMYfZ%ZP@>;;=^%%AB3QsFRBp8dxK)o`rogTSjbFK(D7FaRay>kw#T5rY{ zB7WpipN1Kg1}&^0st}C_7}viqHXEC}yW9OiB5udh;Cp(g#5`fCA#}Hzof7Bc(n_Jy zRI(gK28_;d?Y(^}0bks3(;R?kHl{XalT5M(rNg>Vg|% zS>N<;e;*;Zv}D&niej_Er#kUaW|-T(MuyVtItA{KsLv*D?(Q|=$HRl`EZQ+^F{=P$ zeY>8^<}$_hMw;{kjvy5_XjEpSlp_|G%wz&!2loK^^ZwJXeugLYzyJBqpFaM4uK{w5 zE2*t$CQW8bl~PK{rt)c_1TZD3)7#zv=u~~9cXZgTuBpwq&7E>sfF9E4%e!1#dT~rwn6u_8h zFu%Q<;rIKw)=|Hk?C;>QY<;h@a|mz$sJKB^(ul>Xf5}!$W$9>LF!31$C!%*hyV=HG zd}cLhKK+JUmnChNuZ#l{FB)6ZEUMOtqAh3)MmZTU#N}32ikSFZ($@mE<$kBJcPL{` z2QGQEFaP@4*Ct+?RK?&JJmW9qYgyEV(?tTO^SyFi!pgZ>6*Mu>RLQ+;GlyCo8eL7u zE8NS!g)1&Ejd~c&Zde8z6w10R0osjb^E;usYkA$J zF$dLetzBGqKwO8L*U$tT~cID!-#)})?{EtbCrrWO+eP%9%(x$PM zInOrq3nIiVZVW3($lw$3<}hxl)Dhclaf^(2gSq2lkx1lweygBy%AGf- zqXx}KAe@PCd13#<$M8(Bq6Wl7o%Y#SfOSF6neQ2u;;Eeod| zM9*>|4`^^R5q}6_&9UUx=B+yw#eYt1(aoQkqrKpWZFf*xsn^a5sdl-U#}y&o=$4Ku zu>R?Zl@`-ZXHgtiO|Q?*f}M+GHaMvTa%I$MKMnU|0ONi61%{(szEUP?u}-lmZ>DH|NW!YLJ&Y_&`!V;Gk;zl9T%2U|Au1F!Kl>IEP*1&P z&jc*?)22X_)Yuj#Mn^{&RP6|*o6zLpV*c0!zXNaMe!r@?;{F&6_co6<6{%Jz=8GwY zrNsg%^%6uho~|5#pM1@o;z6H~mJ6xfA>T;$o0V`T-2?e&xK2|%^b14Us8w@ubZK&B z5%*vExBqzYwJBZf{0yH1zc3tQ>vhh7!78XyWVgxYPR0_#g0$4jx?`Xa&q3!C;KsIflg@PZ_oJ#Aa4KVKAwCSi z6tC^MXCg}0eLhC&>{_FFF}Z<7JO+Ux(_%yuB=iQW-NSa0iA=_c^*e_*Z`}6a6&8gu zW`_Or{x=UJW=kC5OzMzioHmJZ7LNmuwM@)UrYlJ=laXn^fO{RYt1F10b3~mW)Zpva zXaQQ?P+a5bIFXDeQ>@&n`mSO?E%`lN!EW-tx!=90GM)Zk|IcsUnZ0=KKb;BtVxW`h z4PoZR)J2NJ(XMx8EllYH1T+pYQl^< zb8&HfJ-iyu&a2;gBEG7_vC22RySRp(pq6fmMP`JYno63&kSn3Ni~W)seM8|N^ZRWsIOs9jJd6-R9kxa z!j%O+hvV(Ld17WsS4y%aNaPiG_}_;YnpBjcF@HEN-Ofb%RXMX&Q!)ZUMPO|wh&-qV z&(A^we$1Kh(V)Y*fL)y(d*h8)42xsSvlkZvF2Qx9OZQzb^{S zPdbtIgWV5{;xPvd)p9u@4wAg}SRz_uN!Pq{cIx8zbI(6Np)m)rSPNaSy!ra8;}j62j`uo?ejOFeQddAb2es^)r>~fmHdO~Joi*?fPa4qQ-XiUf9t!u@qp(u`p z#q!PV?JgH>?Os28cmfiXDtvoWK`b_S1t;e!gG1wRQaNZAs=x zgE?F&Q(iHkvgl_oyBO}IoN0?h#tm9!+k(L{J@2#-Bo_f#M>zp@ox>6)C_6_rkgW_# zOd8JVGN1xVT?*JQO4O`WnmZ5g3_u4BB8hsd*U6Mw0)AvE7YoU_O&B$uEW}Mzbg?^ zWgB9@BD7Ug1&PKo%|W{j*t9{jtsn#o2Cnz^EDI7)!AcB8#QY&5A@I$1DJf>a?Om43 zaHz{+o+yz!xR#BmU%EIxHuLJ~$%`|Fg>!She7Sk+;P}D4JCB~66bb^NY-A#QGQq>T zt5D6cM$_!fYu1Y|jg0}mlumd>V#Tm<>HMTP@Xfw?A%gjQD|pB>uGVsRqnUsOFl+bH zF)#Gb8x`AHqS35-G)w-tXWe8T(>Hq3>cum&>*7y;FOK;k6KfjR86Ea`d01<$Oj~&+ zMC8`o3PbS{))2K?w0f5+$RtDoUjD{O4%|~=cx5CxwK*lDknSJg?o4QZ#H|~ zqbv)ap~mLJ?LzzZzF*=z4O$fT;e+iL=xXs^zLKHpWljd920`e^{6?8}==Bx+Q2r9W?+L4JX}FEhRDKZj~wbw;|jQjw3)9Q(`U0l=oXG&j#&u4ocyz zX7k1-M~GNqb4NttI&V0RW?;2SyQ3b1J63Kg7{omC<)piqkP=ZNm+~`>worGj%<2)3 z303?^I8q=7SZwdwXT*+UTrATJd{QJN3}Q^7yLbovFz)!Ma^8 zpbP5|4sczavZDleRUJ7b;1WA!jxFXxm8_U6R0>7N$b$Y8A*vk?ddOg%#cM4oLd$XO zvQqZCwJKX^@6%=}WgW3lUeDTw9Ry8E?M}N+ghG*4E1iYxbVjOo zq`1LgN@8qYE;tb>U|SET7nbZR9*WM;&6D!B|NN=Tr(PPnbj263T6Do&04uY2sfk$@ zbp#oRhK*-lnX#LYWC5W`>w*@euz1kIr;lNt0=q)lsnc0PbQX2YY2SWk9;-!zH>G`k z#bH4TsoA$C48Aq^1$T{)+l>WE8(13$?l!w1%OQ()GCqtJi*;b;-@U^pWPcqhBiAd*y_6F6w{m`rEzxp8iVw2g<6Z$C z0-S0zbb?HFIkk;w`NGLV)DRzAUYgSCvOSL@?6LA3#wKvA*;L}*pj(b^ zB#`1>xuz2<+tApqJtzj~IKT~yQgS%V)+@uq-Bw$a3yoa1y1(D7F}b4;Zs5aaid5uy zE?3P$<|7k|rpk{V-hX`i!5=^QSa{R?!S*us7em z1(-bNq9KeiZgV0gr9%$X=$l5wxTAsrzR0pfR0d+rI%_ZyC`Yf%+6A(nD+sktfy*Re z{>}x1(8dqw+zgFTcOOtuk_Pi_O>xHoft1;4ZdZh0Dmbx{tS1_J%yHoz=uE$3lL^F> zh&hNbo}l^%hj;fkV2W-J>tdKG43$%*T9OGB8P`Vv4;prbF|Us?s!X%mRjqXrx!1^t zKnHBM>t6Y-*6@~9W1*>7CgF!@m?&eOV8BiZB5PVwTP$lfH7-;1Dnvvyz&=N-dt2c5 zkVy_+MQP8km_u2y}#Gr+^b}-BYe2e+$jCPw6P{C0DA=k{TN+TE#E#mKem`R-<|s|0hHCTR>TBbedx z7(VAo2GNdX!j^+f9*6M-tg_n#YE%ICP?cg0`g?4>uvMqY&1<)NkRJ6!@Kkg6-cdtn z9`u`#e}#RK(go*HL4tGX=IxIj-5Ca)0U?{tLRW;Pk9WEcAAj`mlgD5E_}(}F_{&d! z{o(1O29vvs#8DWk`{8z3EQvsSDr9qLkcxWUs8ShrDveaS(>($gvh;v=F+OxN;##L}U(3sT;Pp&`AIIXY$?tj1RU^|(ZAEsXk zn2zh5Dch9V0+&=;_A!dG8Mg*Km!>PO)4#uT&VF*BtgUKE*}QXT%6ki2U`_U_r`BfN z%}Qyj&ol~~*Asd;22=>HH>mb9ox?Jdj1UCGe|MUj53h-tjXaSTD_C(KP>Pl8P6<~w zpWdve9`7^hqEdp|XOGZ1HDO6iLk))1|89E8%LEtHNzHGb1wwsUg!PNS=b8|0rXZt@ zNP}MX5OB9bD(v_8K!TR(q(z~YsPAkY$j3Ji zgead~u%JX-rSgh)lX^L(ec|n^{>u|lm);5=8q4|8TN-OK;i>joV7119ZB%Ov_RBTJ z2NhmY)Yws0Nn&zUthTl_(|VsxPqoT9);cod?|e{1S36&3unnbC%9^Ltv$}w)5Yr|QZ%kyXq&ClCYykO)K|2m&NQFlVxI>gwD*L8FmI$&!^V9RxnoJsYUQ(_O>oD$_4B8TgeO)Gn$7`oq8&w$5zqM(eo&$58(;vmXi#M_*HM42< z?0ihp2(;-)DjQGYyv)j3GH0>SlQMAL*DVN&uNymx0wLeC>tD2auE!ufZjmIXX3$+<|GC&>&>Q*?m=8D`tHjRaj%|JgB@ z&mZG|TMkDe?X_lBZrt{+I(^-j4Y90og37%dY4wtt zu;F@>(WO0Le>0NBgOY5f*bb{6f%g1%EOK&J5VFz#P_VNVmWuH*Cm5vChelJ1nQO zkr+g%g9bX03ZqGXh-Sj?PhEGH9<_LH0FAdUe)034xL2397$8y{!%JCjVOWl2D>)>F z#9>dylzCaBVEl(AEk~jCr|df;Rj0}zw^daPs1>n++y)1|H{(6 z^+0mhjU`>C2bR4D21{Qv2a7ZjGH@2yvh1NC zxa{%1#Rt3lqkI_2`kROGMKfC=TjvxBxt>u)q@gU&hy@1AL{KL~(lr3gg-}m|MIuWk z#6Rs>+4i9+j7>)7KU!Wh3A-Qfc-XX+bj_LFwGK+>A58BC41T-kZWKs%k&PRPZc|wD zo0gm|SJKyfl*(qRP?4QozVqS31!goVm7g~+9zE|r{_&Ur`R=eMYI>gm$y=sWVQQsA zDHlr7&UB7D?80*l_<2W9&!0TGeD&p*`-k6qa(>$Glq#p)J{geMm@^ZwtXx~$A!yi1 zDHVqy9#R=Mac@3zvta72f%28J&DusCjHL(rSW z10mMvj~|tI(2>J=wh38IO@}fxRIy9t(qK@RvJr3vgz!>z|I5qacZ{n=L#+|QRxus-*?;Tx+JVu^?mFo*PSnBM#!^AO9c^!0uNz`?cgL8*`fq<^6Uqgp0b zLO>97)DUs!+E!2lZ3@b^Nuy(SdV2P4 zXNBM1^jNZN_0{n>AKINU3kR1NZb^`fQ`v*w$&la>*ZydKBGBiZ;uewW&vxn*~_bD}ITxg-R)SGFi! z5~zU3%RayA^-D~F;+Y(ml}l+l%$z^giG(%o^XKV-@2y#DJUQn~m@Ovb?Kzvx5{TK- zVNbxxbY8Bmm}h3}%Te_DyE~ZeX87CxeP-RoSmrEeM^){>XZB~TP}FR90sOUV_3pSb zruC^M$6M4@{qmD1hbO(!lNX;~4g13hQ#u@+e0S zH-@$Dmp?cLc24p6xIOyu^VUJ5B&Cvy2WklTI}aTCNfo8AlS2W7b#cr3rro=H<85G; zR5Rg>T0ZPay>cGt%Q4Tad38Im@Xl@1YO0sT0ziQ%W$PWJ*i#P*q4bk7WC|wD(!pVW zG#Z?YOVD%4QE7n|X)s>O3|Wv`wZW&KKl%jf(IUNj zyqGe2NgGk-j!s@*^fW=qA+=_$--hDNJ{-ZyWuW-?`U+%!4kSpRlu3eD^`^=d1+k(F zMMdO^c#hBJO1Lk+xiII85X~c9fgOL8RxZvf`TWVJ&zkWN#bdP5!58B;H0gnNVY4nj zJL^)$#Gu3>pCZgbC*bTtGP7QiuVm9JU zk^VRWMT?Tp91U4PeB0^Zt5!7XOHf(R4!raJ>?(He|C-zM$J2IO%H^5$0c3w_Gvp6! zNAAsT-MMpb$xAfD@5!BasErkxS;lBy-#R*%LmFH)J!yi4L zG{1XUN^s=}bJ{KF?K(u(rOC_B+XADv^Vv|m(r#3AJr-Bntru7QI3&A?!R6re^$UUA zzvyH$DF@~zx31myrrbMbn*;8P(eR$xf+W`F7VmCbV|hM{rCy;0 z3v7F}_Hfc|YORJ$C%ti{rF6Tkp+MHZPFbl9K>)U%JFRi~l79F|v)+1p%FStd4YC+S zE=%f%hne`OeezV7nPh}P-6_C0XX!!+-`)rZ0AK?70zg#4fmhRVd|nK?ykQ4g7T78P zgb+AaG%8=S@&B2{Qryf-#?W|rm`f{-0gZeG9rtvlRs(jo+lAxXfOWuS{<4lnDSde51Oy0EW)px0Vx39*K^b3WW3uwfoolx-L704>df zBd%7Hz+s%Q+8w^uC-qVxx@0vtDJB9CQCG20J8Mv6(7Uh)-mb-aDaJ@Vz9=DfLrmg% zKA9F|kVodU_EA&IddUhOcP=f4jE>E8E(K+|Od@O!heIaoqCt%16e)(=U2tY&ac?v( zQ}+4Ag;o3Nd+*QOns%kj%JLQw4U**gGU0NCgc_RhnYNbpM2(zx)fMXhx#cv)!(<{8 zbIqD}b}*Q2uNXFNPQ7Ob6;(@P=0L~x_=i6|Yj!?4h{ClKMa(5-H4%ROf-dXL&i^P zZ+w8Rd^9x!L$IPA#v2)LRLLY@Q3Uo&>t=+=Fv*?GHK*6@ER*U!w4s!4nQWe1)D)Gj zKmw+w_PUon{a~ysy;rZUj-L*JiURzsIz-#5!|(p)x4-)RAO8Kn{_8*f>z7~r@t2?e z;Pqv@2y=SWw>Y(ISe{-soj>hK5F*fuu;MN^#zQ&B0)0uAs@?vi(>-9LM5$Jz3r|0J zayqEjs<@=oia8nR z%h%rpYi+%zbmgem>2`Rs05ME)q5JVN&81UCY%~AjsYH+>Z7(ZnqjP+kpS%S2Ip5WS zJ|B)|YmG+9k?yycu+z>WTc&hLfeVeF1NBs&BYAg%4!JC0@ZrLxCGB>J?Vg%)BPwv~ zndoSKHWrr%ACh-2%`byGoP*8R-u6l~ZSL31>?=p@JM z@A{KgF_ZVSq2yf`Y1K#(|T2C*Y55@f8@s~ZW1H0sOhmKVa zc{qQz6CqWMO|30G*meheej;VT;sBG4&Jxx*fN4!P?iqb)=cWf<0W?JwIi7}+K#(f& zNWxVa6_8Zi!7yAd3{dXT&t6v2>G2bd<*LoYZnfIz9~?YB?2feNq1x6jUyb$s!{Knh z(;au~{qEC0{{Hv>21nJu{`L1?y#CQ|fAQnbKbdG!H4{g$m}_le=EHl(lOiaE+wgts zDpEWNIV2|Gk~{t^ z(FS&OK9o7zuUEAS9uB6tASTvNP7?;JJw{}Fx{#C`Xsum{>K#Cckb|(<>B+&OY@i=Q z^hZ-_d7gGajjUNO(V}7cy${{BJO{B7J(mEV9P1D5#3Ip2-Lzwgf=Qj0()f4(^=F@r zTfA6A1C}(=D1m+~Q>wwH4pp<9FJj;G#r>r7_Ttv=DSm5=1@p-#+{v;nz!rO?1eVqfPwEV0|!tB;`x5&ii5==&PuFpGx zt1AI#-g|9jd%ALanOp#+u9M4~7#t0wI=` zqXBDMzAseuX6D*Ac4;=gd*{whDoX;c0Wjmp9#rSnQ3A`C$XKPGj;!W;0$=S6;dgwf z9qJ9eetdZfeWzOE^6}NPXD^1mal7_dukYuH_yf$x&!5!YZHWl7YP)i@}1pNyu7T=2BXU||*ES>>p zMUuo6%)0!+%pPL(k;=FSHU~v~xM?!Mw>!-e0r{aXAFl!WNTL{wQ&|`pO4*RZW7%Ca zg{1ttIY3oq*d2sXs=r@Kw0%xV^b4WY`Gqx~3-~a1Oea7auzoy)Sxs2fXAUK+;o!!5 z2raih8MI!0_hkiSk)nVgY~%DI=F@5z#z{}x^~Ze`1$vb_9My*3|21&b@=AU3>92nH za#S0?Jm^nGFGk}R&mLdBXtiDf z!MAsCd3v%x>JI9SW>M=LefGsK;G_E2KmFSu|MTB}`@_dy{RBJ>1)56PqjY?CbNl{H zvH;8^0@TgDEF;!Rwbs$7*6i({ADy?w@_C~`L};qarFl(iH1rak<-K;g$fVlc+zC2c=&Ha>=~ZDOy!jZhHVCz1SzqOc`%Y9{n>;qNim7k?!5ro zRI`S4Ar>pNYGjO18VZ||1K}iZyZ>-$Z4s~XY&nMDc+I(lvrzNO(I|MDa>+zW&BE6A z=;V7(df2gJ9Zaepn-|`X``KYj2_j*?x?E|pr?n4pmb%sIhl1iPM`AeMpsB} zgd5B@I`{UJ;mP6V;zL^wTc1wc|C`%j+wq3@pv~j)SRIa#Z7V8nt!_g0uPzfsz0-im zK@y1*@^JU=yn!}m>+NQhYnA~jmGoj}lWS|$U^jU}ap+%H${LkF{{F=Yohly_D7%NJ zE%@M2p1bwlJ&!Zxr`&cQ#RZ)H^!8qwsEga7of~l;!F`912Pe$2J$|Mwz z4w8W|3Em)1d$xam30rtT-IU9P{rwj&jt@uC;pM9zydHqWZPYw^^fZ6gK+FzpQV2*n z#1M#;3@f*0K6J1wpO2d7JnK{6*n0Th(vFW4p^TKP%W44^6&f;(2xc-7Ol~G>@!p;C z)Vg4L|bku{TEBGAMqsfaO z{Q3`n`RjlD^*6u)`2ClUzWPDGQZ3M_q<8hU$!A!1PPg>Qup{EdMiWdxN2deOawv_y zNCCfcB#Nb+)fz~*yWJYJ!;643%bs?!cqISUJ{7A-wJ^aSlkvU@pn}i-d?E@3Mw^sG zP<7eM?Iv)^)Za#@n< znyaW#kccwgefyuL9e~9&?Iy7GB#KoilYb|9iO#RDXY*k!JQt2Edx;Y6kGkSaAsWhUb~dc{p(-`%w)ILyFBK1tdSCtLU;h0sfBC~7KL7N0zy9p` zR~Ma5Q58U?CUZW!$F(w5kUMAf8r1Mgdb`mogv^jlVJfA9P}+xen;Y2uv|4I38of?! zUrIp%3(%p2A&4W9M8LkAien;F8}sN6My9ueJ_~9Ksghi1lmtQ}{d;du?ZE1_Tw{a5 z-8>&(4tg9p7(Un&zTldRsp6(JK-M|<^sZ}m zH?n8iT$@KbF^czCBS9_<FHs*ATs4K}*WZ8l!M0&~CGGcP z;;!AX$fb;Xsrd&F7u0R{-R}fFCT~Pjgd`Y6T16o9vz01_^#;WyclJY^4?eg#J-v4I zOf+JnzP^9;RN%z@=lf;&RMQNcuh{14krI$DpLBb9vRNBk9zDD2lv8T^NE_B3ovR)~ zIX@XyauX=I62zV-_x8uIQC+dF1#f)E>-^dQaBnHJK4rD;*pXl|*MMPW3IFJU9g%Sd zFN9(YXt)v)TOx1s2>I2#sa3h=5vI_P&#yDBhIN%d-2miov0 z-F6$q1fW{fyO&R2{M�OdjMMg$^+x7ri&N!G#9`lA%2Q?-T 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 + + + + 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 + 4802D7420D2EE86D00DD8D4F + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + OpenEditors + + PerspectiveWidths + + 1680 + 1680 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-target-popup + active-buildstyle-popup + action + NSToolbarFlexibleSpaceItem + buildOrClean + build-and-goOrGo + com.apple.ide.PBXToolbarStopButton + get-info + toggle-editor + NSToolbarFlexibleSpaceItem + 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 + + 238 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 48243B060D33ED0A00C29F8F + 483A77D80D2EE8C500CB2E4C + 483A77D90D2EE8D400CB2E4C + 483A77DE0D2EE8FB00CB2E4C + 483A77DA0D2EE8DA00CB2E4C + 483A77DF0D2EE90500CB2E4C + 483A77DD0D2EE8F100CB2E4C + 483A77E00D2EE90B00CB2E4C + 29B97317FDCFA39411CA2CEA + 29B97323FDCFA39411CA2CEA + 1058C7A0FEA54F0111CA2CBB + 002F39F909D0881F00EBEB88 + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 83 + 64 + 15 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 552}, {238, 910}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {255, 928}} + GroupTreeTableConfiguration + + MainColumn + 238 + + RubberWindowFrame + 0 59 1680 969 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 255pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 4802D73D0D2EE86D00DD8D4F + PBXProjectModuleLabel + net_sdlnet.c + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 4802D73E0D2EE86D00DD8D4F + PBXProjectModuleLabel + net_sdlnet.c + _historyCapacity + 0 + bookmark + 4817E0DC0E1FB8A700928DE3 + history + + 4817E0B80E1FA20300928DE3 + 4817E0B90E1FA20300928DE3 + 4817E0C90E1FA71D00928DE3 + 4817E0CA0E1FA71D00928DE3 + 4817E0CB0E1FA71D00928DE3 + 4817E0CC0E1FA71D00928DE3 + 4817E0CD0E1FA71D00928DE3 + + prevStack + + 4817E0830E1F9DA600928DE3 + 4817E0BB0E1FA20300928DE3 + 4817E0BC0E1FA20300928DE3 + 4817E0CE0E1FA71D00928DE3 + 4817E0CF0E1FA71D00928DE3 + 4817E0D00E1FA71D00928DE3 + 4817E0D10E1FA71D00928DE3 + 4817E0D20E1FA71D00928DE3 + 4817E0D30E1FA71D00928DE3 + 4817E0D40E1FA71D00928DE3 + 4817E0D50E1FA71D00928DE3 + 4817E0D60E1FA71D00928DE3 + 4817E0D70E1FA71D00928DE3 + 4817E0D80E1FA71D00928DE3 + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {1420, 565}} + RubberWindowFrame + 0 59 1680 969 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 565pt + + + Proportion + 358pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {1420, 331}} + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 27}, {1420, 331}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 27}, {1180, 131}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{10, 27}, {1420, 331}} + RubberWindowFrame + 0 59 1680 969 0 0 1680 1028 + + Module + PBXBuildResultsModule + + + + + Proportion + 1420pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 4817E0740E1F9B4400928DE3 + 1CA23ED40692098700951B8B + 4817E0750E1F9B4400928DE3 + 4802D73D0D2EE86D00DD8D4F + 4817E0760E1F9B4400928DE3 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + build-and-go + go + NSToolbarFlexibleSpaceItem + debugger-fix-and-continue + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + debugger-step-instruction + NSToolbarFlexibleSpaceItem + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {1680, 258}} + + Module + PBXDebugCLIModule + Proportion + 258pt + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {851, 211}} + {{851, 0}, {829, 211}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {1680, 211}} + {{0, 211}, {1680, 454}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 263}, {1680, 665}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 217 + Value + 85 + Summary + 502 + + Frame + {{851, 0}, {829, 211}} + + + Module + PBXDebugSessionModule + Proportion + 665pt + + + Name + Debug + ServiceClasses + + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + PBXDebugProcessAndThreadModule + PBXDebugProcessViewModule + PBXDebugThreadViewModule + PBXDebugStackFrameViewModule + PBXNavigatorGroup + + TableOfContents + + 4817E0770E1F9B4400928DE3 + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 4817E0780E1F9B4400928DE3 + 4817E0790E1F9B4400928DE3 + 4817E07A0E1F9B4400928DE3 + 4817E07B0E1F9B4400928DE3 + 4817E07C0E1F9B4400928DE3 + + 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 + + 4817E0AF0E1FA02000928DE3 + 4817E0B00E1FA02000928DE3 + 4817E0B10E1FA02000928DE3 + /Users/kristian/Documents/Code/XCode Workspace/Fitzquake/Mac OS X/Fitzquake.xcodeproj + + WindowString + 0 59 1680 969 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, 358}} + RubberWindowFrame + 522 364 440 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 359pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 484585940D2F244600F70AA9 + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 522 364 440 400 0 0 1440 878 + 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 + 21 596 744 409 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 21 596 744 409 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + + TableOfContents + + 48AE002A0D342D20003FCE13 + 48AE002B0D342D20003FCE13 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 21 596 744 409 0 0 1680 1028 + WindowToolGUID + 48AE002A0D342D20003FCE13 + 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 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.bookmarks + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 4876DB3A0D8A973B007D2413 + PBXProjectModuleLabel + Bookmarks + + GeometryConfiguration + + Frame + {{0, 0}, {401, 166}} + RubberWindowFrame + 21 782 401 222 0 0 1680 1028 + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 202pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + + TableOfContents + + 4876DB3B0D8A973B007D2413 + 4876DB3C0D8A973B007D2413 + 4876DB3A0D8A973B007D2413 + + WindowString + 21 782 401 222 0 0 1680 1028 + WindowToolGUID + 4876DB3B0D8A973B007D2413 + WindowToolIsVisible + + + + 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 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 48C85DD30D3ACFA800797678 + + GeometryConfiguration + + Frame + {{0, 0}, {766, 559}} + RubberWindowFrame + 91 215 766 600 0 0 1440 878 + XCRefactoringSplitViewLowerHeight + 235 + XCRefactoringSplitViewTotalHeight + 476 + + Module + XCRefactoringModule + Proportion + 559pt + + + Proportion + 559pt + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + StatusbarIsVisible + + TableOfContents + + 48C85DD40D3ACFA800797678 + 48C85DD50D3ACFA800797678 + 48C85DD30D3ACFA800797678 + + WindowString + 91 215 766 600 0 0 1440 878 + WindowToolGUID + 48C85DD40D3ACFA800797678 + WindowToolIsVisible + + + + + diff --git a/quakespasm/Mac OS X/Fitzquake.xcodeproj/macmini.mode1v3 b/quakespasm/Mac OS X/Fitzquake.xcodeproj/macmini.mode1v3 new file mode 100644 index 00000000..a966ec65 --- /dev/null +++ b/quakespasm/Mac OS X/Fitzquake.xcodeproj/macmini.mode1v3 @@ -0,0 +1,1380 @@ + + + + + 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 + 9ABC4BF70FB733E500F2D53C + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-target-popup + active-buildstyle-popup + action + NSToolbarFlexibleSpaceItem + buildOrClean + build-and-goOrGo + com.apple.ide.PBXToolbarStopButton + get-info + toggle-editor + 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 + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 10 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 451}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 469}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 432 185 1052 510 0 0 1600 878 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + MyNewFile14.java + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + MyNewFile14.java + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {844, 0}} + RubberWindowFrame + 432 185 1052 510 0 0 1600 878 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 5}, {844, 464}} + RubberWindowFrame + 432 185 1052 510 0 0 1600 878 + + Module + XCDetailModule + Proportion + 464pt + + + Proportion + 844pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 9A48FC5A0FB73D4B0005CCF1 + 1CE0B1FE06471DED0097A5F4 + 9A48FC5B0FB73D4B0005CCF1 + 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 + + PinnedNavigatorIdentifier + 9ABC4BD80FB72FDF00F2D53C + 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 + + 9ABC4BF80FB733E500F2D53C + /Users/macmini/Desktop/MacEngine/fitzquake_sdl_20090510_src_beta_1/fitzquake_sdl_20090510/Mac OS X/Fitzquake.xcodeproj + + WindowString + 432 185 1052 510 0 0 1600 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 143 272 500 500 0 0 1600 878 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 143 272 500 500 0 0 1600 878 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 9ABC4BF80FB733E500F2D53C + 9A48FC5C0FB73D4B0005CCF1 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 143 272 500 500 0 0 1600 878 + WindowToolGUID + 9ABC4BF80FB733E500F2D53C + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {316, 185}} + {{316, 0}, {378, 185}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 185}} + {{0, 185}, {694, 196}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 381}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 148 + + Frame + {{316, 0}, {378, 185}} + RubberWindowFrame + 453 250 694 422 0 0 1600 878 + + RubberWindowFrame + 453 250 694 422 0 0 1600 878 + + Module + PBXDebugSessionModule + Proportion + 381pt + + + Proportion + 381pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + 9ABC4BFA0FB733E500F2D53C + 1C162984064C10D400B95A72 + 9ABC4BFB0FB733E500F2D53C + 9ABC4BFC0FB733E500F2D53C + 9ABC4BFD0FB733E500F2D53C + 9ABC4BFE0FB733E500F2D53C + 9ABC4BFF0FB733E500F2D53C + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 453 250 694 422 0 0 1600 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + 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 + MENUSEPARATOR + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 209}} + RubberWindowFrame + 453 422 650 250 0 0 1600 878 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C78EAAD065D492600B07095 + 9ABC4C000FB733E500F2D53C + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 453 422 650 250 0 0 1600 878 + 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.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.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/quakespasm/Mac OS X/Fitzquake.xcodeproj/macmini.pbxuser b/quakespasm/Mac OS X/Fitzquake.xcodeproj/macmini.pbxuser new file mode 100644 index 00000000..e1f7be56 --- /dev/null +++ b/quakespasm/Mac OS X/Fitzquake.xcodeproj/macmini.pbxuser @@ -0,0 +1,149 @@ +// !$*UTF8*$! +{ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + activeArchitecture = i386; + activeBuildConfigurationName = Release; + activeExecutable = 9ABC4B480FB729A900F2D53C /* Fitzquake */; + activeTarget = 8D1107260486CEB800E47090 /* Fitzquake */; + codeSenseManager = 9ABC4B5A0FB729C800F2D53C /* Code sense */; + executables = ( + 9ABC4B480FB729A900F2D53C /* Fitzquake */, + ); + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 380, + 415.20849609375, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXErrorsWarningsDataSource_TypeID, + PBXErrorsWarningsDataSource_MessageID, + PBXErrorsWarningsDataSource_LocationID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID; + PBXFileTableDataSourceColumnWidthsKey = ( + 22, + 300, + 493, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXExecutablesDataSource_ActiveFlagID, + PBXExecutablesDataSource_NameID, + PBXExecutablesDataSource_CommentsID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 605, + 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.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 565, + 60, + 20, + 48.16259765625, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 263667008; + PBXWorkspaceStateSaveDate = 263667008; + }; + sourceControlManager = 9ABC4B590FB729C800F2D53C /* Source Control */; + userBuildSettings = { + }; + }; + 483A77F00D2EE97700CB2E4C /* quakedef.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {691, 4648}}"; + sepNavSelRange = "{6952, 0}"; + sepNavVisRange = "{6466, 510}"; + sepNavWindowFrame = "{{84, 252}, {750, 558}}"; + }; + }; + 483A78050D2EE9F300CB2E4C /* gl_texmgr.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {691, 1386}}"; + sepNavSelRange = "{2686, 16}"; + sepNavVisRange = "{0, 1341}"; + sepNavWindowFrame = "{{61, 273}, {750, 558}}"; + }; + }; + 8D1107260486CEB800E47090 /* Fitzquake */ = { + activeExec = 0; + executables = ( + 9ABC4B480FB729A900F2D53C /* Fitzquake */, + ); + }; + 9ABC4B480FB729A900F2D53C /* Fitzquake */ = { + 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 = Fitzquake; + sourceDirectories = ( + ); + }; + 9ABC4B590FB729C800F2D53C /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + }; + }; + 9ABC4B5A0FB729C800F2D53C /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; +} diff --git a/quakespasm/Mac OS X/Fitzquake.xcodeproj/project.pbxproj b/quakespasm/Mac OS X/Fitzquake.xcodeproj/project.pbxproj new file mode 100644 index 00000000..99c59627 --- /dev/null +++ b/quakespasm/Mac OS X/Fitzquake.xcodeproj/project.pbxproj @@ -0,0 +1,793 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 002F39FA09D0881F00EBEB88 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 002F39F909D0881F00EBEB88 /* SDL.framework */; }; + 002F3A0009D0884600EBEB88 /* SDL.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = 002F39F909D0881F00EBEB88 /* SDL.framework */; }; + 002F3A2E09D0888800EBEB88 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 002F3A2C09D0888800EBEB88 /* SDLMain.m */; }; + 002F3C0109D093BD00EBEB88 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 002F3C0009D093BD00EBEB88 /* OpenGL.framework */; }; + 002F3C6109D0951E00EBEB88 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 002F3C6009D0951E00EBEB88 /* GLUT.framework */; }; + 48243B140D33F01A00C29F8F /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 48243B130D33F01A00C29F8F /* main.c */; }; + 4824B3360DF5542E0001ED2C /* SDL_net.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = 48DA393E0D998BC9007C2A77 /* SDL_net.framework */; }; + 48305B550D8AF90600A29C24 /* net_udp.c in Sources */ = {isa = PBXBuildFile; fileRef = 48305B540D8AF90600A29C24 /* net_udp.c */; }; + 4830B79F0D464CAE00EF4498 /* Changelog.txt in Resources */ = {isa = PBXBuildFile; fileRef = 4830B79D0D464CAE00EF4498 /* Changelog.txt */; }; + 4830B7A00D464CAE00EF4498 /* Todo.txt in Resources */ = {isa = PBXBuildFile; fileRef = 4830B79E0D464CAE00EF4498 /* Todo.txt */; }; + 483A780F0D2EEA0F00CB2E4C /* progdefs.q1 in Resources */ = {isa = PBXBuildFile; fileRef = 483A780E0D2EEA0F00CB2E4C /* progdefs.q1 */; }; + 483A78230D2EEA5400CB2E4C /* chase.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78100D2EEA5400CB2E4C /* chase.c */; }; + 483A78240D2EEA5400CB2E4C /* cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78110D2EEA5400CB2E4C /* cmd.c */; }; + 483A78250D2EEA5400CB2E4C /* common.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78120D2EEA5400CB2E4C /* common.c */; }; + 483A78260D2EEA5400CB2E4C /* console.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78130D2EEA5400CB2E4C /* console.c */; }; + 483A78270D2EEA5400CB2E4C /* crc.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78140D2EEA5400CB2E4C /* crc.c */; }; + 483A78280D2EEA5400CB2E4C /* cvar.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78150D2EEA5400CB2E4C /* cvar.c */; }; + 483A78290D2EEA5400CB2E4C /* host_cmd.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78160D2EEA5400CB2E4C /* host_cmd.c */; }; + 483A782A0D2EEA5400CB2E4C /* host.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78170D2EEA5400CB2E4C /* host.c */; }; + 483A782B0D2EEA5400CB2E4C /* mathlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78180D2EEA5400CB2E4C /* mathlib.c */; }; + 483A782C0D2EEA5400CB2E4C /* menu.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78190D2EEA5400CB2E4C /* menu.c */; }; + 483A782D0D2EEA5400CB2E4C /* pr_cmds.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A781A0D2EEA5400CB2E4C /* pr_cmds.c */; }; + 483A782E0D2EEA5400CB2E4C /* pr_edict.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A781B0D2EEA5400CB2E4C /* pr_edict.c */; }; + 483A782F0D2EEA5400CB2E4C /* pr_exec.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A781C0D2EEA5400CB2E4C /* pr_exec.c */; }; + 483A78300D2EEA5400CB2E4C /* sbar.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A781D0D2EEA5400CB2E4C /* sbar.c */; }; + 483A78310D2EEA5400CB2E4C /* sys_sdl.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A781E0D2EEA5400CB2E4C /* sys_sdl.c */; }; + 483A78320D2EEA5400CB2E4C /* view.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A781F0D2EEA5400CB2E4C /* view.c */; }; + 483A78330D2EEA5400CB2E4C /* wad.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78200D2EEA5400CB2E4C /* wad.c */; }; + 483A78340D2EEA5400CB2E4C /* world.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78210D2EEA5400CB2E4C /* world.c */; }; + 483A78350D2EEA5400CB2E4C /* zone.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78220D2EEA5400CB2E4C /* zone.c */; }; + 483A78380D2EEA6D00CB2E4C /* in_sdl.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78360D2EEA6D00CB2E4C /* in_sdl.c */; }; + 483A78390D2EEA6D00CB2E4C /* keys.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78370D2EEA6D00CB2E4C /* keys.c */; }; + 483A78450D2EEAAB00CB2E4C /* cl_demo.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A783A0D2EEAAB00CB2E4C /* cl_demo.c */; }; + 483A78460D2EEAAB00CB2E4C /* cl_input.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A783B0D2EEAAB00CB2E4C /* cl_input.c */; }; + 483A78470D2EEAAB00CB2E4C /* cl_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A783C0D2EEAAB00CB2E4C /* cl_main.c */; }; + 483A78480D2EEAAB00CB2E4C /* cl_parse.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A783D0D2EEAAB00CB2E4C /* cl_parse.c */; }; + 483A78490D2EEAAB00CB2E4C /* cl_tent.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A783E0D2EEAAB00CB2E4C /* cl_tent.c */; }; + 483A784A0D2EEAAB00CB2E4C /* net_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A783F0D2EEAAB00CB2E4C /* net_main.c */; }; + 483A784B0D2EEAAB00CB2E4C /* net_sdl.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78400D2EEAAB00CB2E4C /* net_sdl.c */; }; + 483A784C0D2EEAAB00CB2E4C /* sv_main.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78410D2EEAAB00CB2E4C /* sv_main.c */; }; + 483A784D0D2EEAAB00CB2E4C /* sv_move.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78420D2EEAAB00CB2E4C /* sv_move.c */; }; + 483A784E0D2EEAAB00CB2E4C /* sv_phys.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78430D2EEAAB00CB2E4C /* sv_phys.c */; }; + 483A784F0D2EEAAB00CB2E4C /* sv_user.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78440D2EEAAB00CB2E4C /* sv_user.c */; }; + 483A78550D2EEAC300CB2E4C /* cd_sdl.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78500D2EEAC300CB2E4C /* cd_sdl.c */; }; + 483A78590D2EEAC300CB2E4C /* snd_sdl.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78540D2EEAC300CB2E4C /* snd_sdl.c */; }; + 483A786E0D2EEAF000CB2E4C /* gl_draw.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A785A0D2EEAF000CB2E4C /* gl_draw.c */; }; + 483A786F0D2EEAF000CB2E4C /* gl_fog.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A785B0D2EEAF000CB2E4C /* gl_fog.c */; }; + 483A78700D2EEAF000CB2E4C /* gl_mesh.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A785C0D2EEAF000CB2E4C /* gl_mesh.c */; }; + 483A78710D2EEAF000CB2E4C /* gl_model.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A785D0D2EEAF000CB2E4C /* gl_model.c */; }; + 483A78720D2EEAF000CB2E4C /* gl_refrag.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A785E0D2EEAF000CB2E4C /* gl_refrag.c */; }; + 483A78730D2EEAF000CB2E4C /* gl_rlight.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A785F0D2EEAF000CB2E4C /* gl_rlight.c */; }; + 483A78740D2EEAF000CB2E4C /* gl_rmain.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78600D2EEAF000CB2E4C /* gl_rmain.c */; }; + 483A78750D2EEAF000CB2E4C /* gl_rmisc.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78610D2EEAF000CB2E4C /* gl_rmisc.c */; }; + 483A78760D2EEAF000CB2E4C /* gl_screen.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78620D2EEAF000CB2E4C /* gl_screen.c */; }; + 483A78770D2EEAF000CB2E4C /* gl_sky.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78630D2EEAF000CB2E4C /* gl_sky.c */; }; + 483A78780D2EEAF000CB2E4C /* gl_test.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78640D2EEAF000CB2E4C /* gl_test.c */; }; + 483A78790D2EEAF000CB2E4C /* gl_texmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78650D2EEAF000CB2E4C /* gl_texmgr.c */; }; + 483A787A0D2EEAF000CB2E4C /* gl_vidsdl.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78660D2EEAF000CB2E4C /* gl_vidsdl.c */; }; + 483A787B0D2EEAF000CB2E4C /* gl_warp.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78670D2EEAF000CB2E4C /* gl_warp.c */; }; + 483A787C0D2EEAF000CB2E4C /* image.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78680D2EEAF000CB2E4C /* image.c */; }; + 483A787D0D2EEAF000CB2E4C /* r_alias.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A78690D2EEAF000CB2E4C /* r_alias.c */; }; + 483A787E0D2EEAF000CB2E4C /* r_brush.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A786A0D2EEAF000CB2E4C /* r_brush.c */; }; + 483A787F0D2EEAF000CB2E4C /* r_part.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A786B0D2EEAF000CB2E4C /* r_part.c */; }; + 483A78800D2EEAF000CB2E4C /* r_sprite.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A786C0D2EEAF000CB2E4C /* r_sprite.c */; }; + 483A78810D2EEAF000CB2E4C /* r_world.c in Sources */ = {isa = PBXBuildFile; fileRef = 483A786D0D2EEAF000CB2E4C /* r_world.c */; }; + 484AA4B40D3FF6C0005D917A /* Fitzquake.icns in Resources */ = {isa = PBXBuildFile; fileRef = 484AA4B30D3FF6C0005D917A /* Fitzquake.icns */; }; + 486577CB0D31A22A00E7920A /* snd_dma.c in Sources */ = {isa = PBXBuildFile; fileRef = 486577C80D31A22A00E7920A /* snd_dma.c */; }; + 486577CC0D31A22A00E7920A /* snd_mem.c in Sources */ = {isa = PBXBuildFile; fileRef = 486577C90D31A22A00E7920A /* snd_mem.c */; }; + 486577CD0D31A22A00E7920A /* snd_mix.c in Sources */ = {isa = PBXBuildFile; fileRef = 486577CA0D31A22A00E7920A /* snd_mix.c */; }; + 48728D2D0D3004A80004D61B /* net_dgrm.c in Sources */ = {isa = PBXBuildFile; fileRef = 48728D280D3004A70004D61B /* net_dgrm.c */; }; + 48728D2E0D3004A80004D61B /* net_loop.c in Sources */ = {isa = PBXBuildFile; fileRef = 48728D2A0D3004A80004D61B /* net_loop.c */; }; + 487C0A5D0DA94A0700A49FF5 /* net_sdlnet.c in Sources */ = {isa = PBXBuildFile; fileRef = 487C0A5B0DA94A0700A49FF5 /* net_sdlnet.c */; }; + 48895DB90D4914A000849ABF /* pl_osx.m in Sources */ = {isa = PBXBuildFile; fileRef = 48895DB80D4914A000849ABF /* pl_osx.m */; }; + 489D8D2F0D3A630D00AA4471 /* ScreenInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 489D8D2E0D3A630D00AA4471 /* ScreenInfo.m */; }; + 48B9E7880D340B1E0001CACF /* Launcher.nib in Resources */ = {isa = PBXBuildFile; fileRef = 48B9E7860D340B1E0001CACF /* Launcher.nib */; }; + 48B9E7A70D340BEA0001CACF /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = 48B9E7A60D340BEA0001CACF /* AppController.m */; }; + 48B9E7C00D340EA80001CACF /* SDLApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 48B9E7BF0D340EA80001CACF /* SDLApplication.m */; }; + 48C85E3B0D3AD10E00797678 /* QuakeArgument.m in Sources */ = {isa = PBXBuildFile; fileRef = 48C85E3A0D3AD10E00797678 /* QuakeArgument.m */; }; + 48DA393F0D998BC9007C2A77 /* SDL_net.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 48DA393E0D998BC9007C2A77 /* SDL_net.framework */; }; + 48FE585B0D3A82C8006BB491 /* QuakeArguments.m in Sources */ = {isa = PBXBuildFile; fileRef = 48FE585A0D3A82C8006BB491 /* QuakeArguments.m */; }; + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 002F39FD09D0883400EBEB88 /* Copy Frameworks into .app bundle */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 002F3A0009D0884600EBEB88 /* SDL.framework in Copy Frameworks into .app bundle */, + 4824B3360DF5542E0001ED2C /* SDL_net.framework in Copy Frameworks into .app bundle */, + ); + name = "Copy Frameworks into .app bundle"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 002F39F909D0881F00EBEB88 /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = ""; }; + 002F3A2B09D0888800EBEB88 /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SDLMain.h; sourceTree = ""; }; + 002F3A2C09D0888800EBEB88 /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SDLMain.m; sourceTree = ""; }; + 002F3C0009D093BD00EBEB88 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; + 002F3C6009D0951E00EBEB88 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../../../../../../../../System/Library/Frameworks/GLUT.framework; sourceTree = SOURCE_ROOT; }; + 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* Fitzquake_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Fitzquake_Prefix.pch; sourceTree = ""; }; + 48243B130D33F01A00C29F8F /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = main.c; path = ../Quake/main.c; sourceTree = SOURCE_ROOT; }; + 48305B530D8AF8EC00A29C24 /* net_udp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = net_udp.h; path = ../Quake/net_udp.h; sourceTree = SOURCE_ROOT; }; + 48305B540D8AF90600A29C24 /* net_udp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = net_udp.c; path = ../Quake/net_udp.c; sourceTree = SOURCE_ROOT; }; + 4830B79D0D464CAE00EF4498 /* Changelog.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Changelog.txt; path = ../Misc/Changelog.txt; sourceTree = SOURCE_ROOT; }; + 4830B79E0D464CAE00EF4498 /* Todo.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Todo.txt; path = ../Misc/Todo.txt; sourceTree = SOURCE_ROOT; }; + 483A77E60D2EE97700CB2E4C /* cmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cmd.h; path = ../Quake/cmd.h; sourceTree = SOURCE_ROOT; }; + 483A77E70D2EE97700CB2E4C /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../Quake/common.h; sourceTree = SOURCE_ROOT; }; + 483A77E80D2EE97700CB2E4C /* console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = console.h; path = ../Quake/console.h; sourceTree = SOURCE_ROOT; }; + 483A77E90D2EE97700CB2E4C /* crc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crc.h; path = ../Quake/crc.h; sourceTree = SOURCE_ROOT; }; + 483A77EA0D2EE97700CB2E4C /* cvar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cvar.h; path = ../Quake/cvar.h; sourceTree = SOURCE_ROOT; }; + 483A77EB0D2EE97700CB2E4C /* mathlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mathlib.h; path = ../Quake/mathlib.h; sourceTree = SOURCE_ROOT; }; + 483A77EC0D2EE97700CB2E4C /* menu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = menu.h; path = ../Quake/menu.h; sourceTree = SOURCE_ROOT; }; + 483A77ED0D2EE97700CB2E4C /* pr_comp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pr_comp.h; path = ../Quake/pr_comp.h; sourceTree = SOURCE_ROOT; }; + 483A77EE0D2EE97700CB2E4C /* progdefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = progdefs.h; path = ../Quake/progdefs.h; sourceTree = SOURCE_ROOT; }; + 483A77EF0D2EE97700CB2E4C /* progs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = progs.h; path = ../Quake/progs.h; sourceTree = SOURCE_ROOT; }; + 483A77F00D2EE97700CB2E4C /* quakedef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = quakedef.h; path = ../Quake/quakedef.h; sourceTree = SOURCE_ROOT; }; + 483A77F10D2EE97700CB2E4C /* sbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sbar.h; path = ../Quake/sbar.h; sourceTree = SOURCE_ROOT; }; + 483A77F20D2EE97700CB2E4C /* sys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sys.h; path = ../Quake/sys.h; sourceTree = SOURCE_ROOT; }; + 483A77F30D2EE97700CB2E4C /* view.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = view.h; path = ../Quake/view.h; sourceTree = SOURCE_ROOT; }; + 483A77F40D2EE97700CB2E4C /* wad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wad.h; path = ../Quake/wad.h; sourceTree = SOURCE_ROOT; }; + 483A77F50D2EE97700CB2E4C /* world.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = world.h; path = ../Quake/world.h; sourceTree = SOURCE_ROOT; }; + 483A77F60D2EE97700CB2E4C /* zone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zone.h; path = ../Quake/zone.h; sourceTree = SOURCE_ROOT; }; + 483A77F70D2EE98D00CB2E4C /* input.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = input.h; path = ../Quake/input.h; sourceTree = SOURCE_ROOT; }; + 483A77F80D2EE98D00CB2E4C /* keys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = keys.h; path = ../Quake/keys.h; sourceTree = SOURCE_ROOT; }; + 483A77F90D2EE9A900CB2E4C /* client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = client.h; path = ../Quake/client.h; sourceTree = SOURCE_ROOT; }; + 483A77FA0D2EE9A900CB2E4C /* net.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = net.h; path = ../Quake/net.h; sourceTree = SOURCE_ROOT; }; + 483A77FB0D2EE9A900CB2E4C /* protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = protocol.h; path = ../Quake/protocol.h; sourceTree = SOURCE_ROOT; }; + 483A77FC0D2EE9A900CB2E4C /* server.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = server.h; path = ../Quake/server.h; sourceTree = SOURCE_ROOT; }; + 483A77FD0D2EE9BD00CB2E4C /* cdaudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cdaudio.h; path = ../Quake/cdaudio.h; sourceTree = SOURCE_ROOT; }; + 483A77FE0D2EE9BD00CB2E4C /* sound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sound.h; path = ../Quake/sound.h; sourceTree = SOURCE_ROOT; }; + 483A77FF0D2EE9F300CB2E4C /* anorm_dots.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = anorm_dots.h; path = ../Quake/anorm_dots.h; sourceTree = SOURCE_ROOT; }; + 483A78000D2EE9F300CB2E4C /* anorms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = anorms.h; path = ../Quake/anorms.h; sourceTree = SOURCE_ROOT; }; + 483A78010D2EE9F300CB2E4C /* bspfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bspfile.h; path = ../Quake/bspfile.h; sourceTree = SOURCE_ROOT; }; + 483A78020D2EE9F300CB2E4C /* d_ifacea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = d_ifacea.h; path = ../Quake/d_ifacea.h; sourceTree = SOURCE_ROOT; }; + 483A78030D2EE9F300CB2E4C /* draw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = draw.h; path = ../Quake/draw.h; sourceTree = SOURCE_ROOT; }; + 483A78040D2EE9F300CB2E4C /* gl_model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl_model.h; path = ../Quake/gl_model.h; sourceTree = SOURCE_ROOT; }; + 483A78050D2EE9F300CB2E4C /* gl_texmgr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl_texmgr.h; path = ../Quake/gl_texmgr.h; sourceTree = SOURCE_ROOT; }; + 483A78060D2EE9F300CB2E4C /* gl_warp_sin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gl_warp_sin.h; path = ../Quake/gl_warp_sin.h; sourceTree = SOURCE_ROOT; }; + 483A78070D2EE9F300CB2E4C /* glquake.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = glquake.h; path = ../Quake/glquake.h; sourceTree = SOURCE_ROOT; }; + 483A78080D2EE9F300CB2E4C /* image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = image.h; path = ../Quake/image.h; sourceTree = SOURCE_ROOT; }; + 483A78090D2EE9F300CB2E4C /* modelgen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = modelgen.h; path = ../Quake/modelgen.h; sourceTree = SOURCE_ROOT; }; + 483A780A0D2EE9F300CB2E4C /* render.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = render.h; path = ../Quake/render.h; sourceTree = SOURCE_ROOT; }; + 483A780B0D2EE9F300CB2E4C /* screen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = screen.h; path = ../Quake/screen.h; sourceTree = SOURCE_ROOT; }; + 483A780C0D2EE9F300CB2E4C /* spritegn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = spritegn.h; path = ../Quake/spritegn.h; sourceTree = SOURCE_ROOT; }; + 483A780D0D2EE9F300CB2E4C /* vid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vid.h; path = ../Quake/vid.h; sourceTree = SOURCE_ROOT; }; + 483A780E0D2EEA0F00CB2E4C /* progdefs.q1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = progdefs.q1; path = ../Quake/progdefs.q1; sourceTree = SOURCE_ROOT; }; + 483A78100D2EEA5400CB2E4C /* chase.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = chase.c; path = ../Quake/chase.c; sourceTree = SOURCE_ROOT; }; + 483A78110D2EEA5400CB2E4C /* cmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cmd.c; path = ../Quake/cmd.c; sourceTree = SOURCE_ROOT; }; + 483A78120D2EEA5400CB2E4C /* common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = common.c; path = ../Quake/common.c; sourceTree = SOURCE_ROOT; }; + 483A78130D2EEA5400CB2E4C /* console.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = console.c; path = ../Quake/console.c; sourceTree = SOURCE_ROOT; }; + 483A78140D2EEA5400CB2E4C /* crc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = crc.c; path = ../Quake/crc.c; sourceTree = SOURCE_ROOT; }; + 483A78150D2EEA5400CB2E4C /* cvar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cvar.c; path = ../Quake/cvar.c; sourceTree = SOURCE_ROOT; }; + 483A78160D2EEA5400CB2E4C /* host_cmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = host_cmd.c; path = ../Quake/host_cmd.c; sourceTree = SOURCE_ROOT; }; + 483A78170D2EEA5400CB2E4C /* host.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = host.c; path = ../Quake/host.c; sourceTree = SOURCE_ROOT; }; + 483A78180D2EEA5400CB2E4C /* mathlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mathlib.c; path = ../Quake/mathlib.c; sourceTree = SOURCE_ROOT; }; + 483A78190D2EEA5400CB2E4C /* menu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = menu.c; path = ../Quake/menu.c; sourceTree = SOURCE_ROOT; }; + 483A781A0D2EEA5400CB2E4C /* pr_cmds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pr_cmds.c; path = ../Quake/pr_cmds.c; sourceTree = SOURCE_ROOT; }; + 483A781B0D2EEA5400CB2E4C /* pr_edict.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pr_edict.c; path = ../Quake/pr_edict.c; sourceTree = SOURCE_ROOT; }; + 483A781C0D2EEA5400CB2E4C /* pr_exec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pr_exec.c; path = ../Quake/pr_exec.c; sourceTree = SOURCE_ROOT; }; + 483A781D0D2EEA5400CB2E4C /* sbar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sbar.c; path = ../Quake/sbar.c; sourceTree = SOURCE_ROOT; }; + 483A781E0D2EEA5400CB2E4C /* sys_sdl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sys_sdl.c; path = ../Quake/sys_sdl.c; sourceTree = SOURCE_ROOT; }; + 483A781F0D2EEA5400CB2E4C /* view.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = view.c; path = ../Quake/view.c; sourceTree = SOURCE_ROOT; }; + 483A78200D2EEA5400CB2E4C /* wad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wad.c; path = ../Quake/wad.c; sourceTree = SOURCE_ROOT; }; + 483A78210D2EEA5400CB2E4C /* world.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = world.c; path = ../Quake/world.c; sourceTree = SOURCE_ROOT; }; + 483A78220D2EEA5400CB2E4C /* zone.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zone.c; path = ../Quake/zone.c; sourceTree = SOURCE_ROOT; }; + 483A78360D2EEA6D00CB2E4C /* in_sdl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = in_sdl.c; path = ../Quake/in_sdl.c; sourceTree = SOURCE_ROOT; }; + 483A78370D2EEA6D00CB2E4C /* keys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = keys.c; path = ../Quake/keys.c; sourceTree = SOURCE_ROOT; }; + 483A783A0D2EEAAB00CB2E4C /* cl_demo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cl_demo.c; path = ../Quake/cl_demo.c; sourceTree = SOURCE_ROOT; }; + 483A783B0D2EEAAB00CB2E4C /* cl_input.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cl_input.c; path = ../Quake/cl_input.c; sourceTree = SOURCE_ROOT; }; + 483A783C0D2EEAAB00CB2E4C /* cl_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cl_main.c; path = ../Quake/cl_main.c; sourceTree = SOURCE_ROOT; }; + 483A783D0D2EEAAB00CB2E4C /* cl_parse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cl_parse.c; path = ../Quake/cl_parse.c; sourceTree = SOURCE_ROOT; }; + 483A783E0D2EEAAB00CB2E4C /* cl_tent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cl_tent.c; path = ../Quake/cl_tent.c; sourceTree = SOURCE_ROOT; }; + 483A783F0D2EEAAB00CB2E4C /* net_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = net_main.c; path = ../Quake/net_main.c; sourceTree = SOURCE_ROOT; }; + 483A78400D2EEAAB00CB2E4C /* net_sdl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = net_sdl.c; path = ../Quake/net_sdl.c; sourceTree = SOURCE_ROOT; }; + 483A78410D2EEAAB00CB2E4C /* sv_main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sv_main.c; path = ../Quake/sv_main.c; sourceTree = SOURCE_ROOT; }; + 483A78420D2EEAAB00CB2E4C /* sv_move.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sv_move.c; path = ../Quake/sv_move.c; sourceTree = SOURCE_ROOT; }; + 483A78430D2EEAAB00CB2E4C /* sv_phys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sv_phys.c; path = ../Quake/sv_phys.c; sourceTree = SOURCE_ROOT; }; + 483A78440D2EEAAB00CB2E4C /* sv_user.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sv_user.c; path = ../Quake/sv_user.c; sourceTree = SOURCE_ROOT; }; + 483A78500D2EEAC300CB2E4C /* cd_sdl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cd_sdl.c; path = ../Quake/cd_sdl.c; sourceTree = SOURCE_ROOT; }; + 483A78540D2EEAC300CB2E4C /* snd_sdl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = snd_sdl.c; path = ../Quake/snd_sdl.c; sourceTree = SOURCE_ROOT; }; + 483A785A0D2EEAF000CB2E4C /* gl_draw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_draw.c; path = ../Quake/gl_draw.c; sourceTree = SOURCE_ROOT; }; + 483A785B0D2EEAF000CB2E4C /* gl_fog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_fog.c; path = ../Quake/gl_fog.c; sourceTree = SOURCE_ROOT; }; + 483A785C0D2EEAF000CB2E4C /* gl_mesh.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_mesh.c; path = ../Quake/gl_mesh.c; sourceTree = SOURCE_ROOT; }; + 483A785D0D2EEAF000CB2E4C /* gl_model.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_model.c; path = ../Quake/gl_model.c; sourceTree = SOURCE_ROOT; }; + 483A785E0D2EEAF000CB2E4C /* gl_refrag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_refrag.c; path = ../Quake/gl_refrag.c; sourceTree = SOURCE_ROOT; }; + 483A785F0D2EEAF000CB2E4C /* gl_rlight.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_rlight.c; path = ../Quake/gl_rlight.c; sourceTree = SOURCE_ROOT; }; + 483A78600D2EEAF000CB2E4C /* gl_rmain.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_rmain.c; path = ../Quake/gl_rmain.c; sourceTree = SOURCE_ROOT; }; + 483A78610D2EEAF000CB2E4C /* gl_rmisc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_rmisc.c; path = ../Quake/gl_rmisc.c; sourceTree = SOURCE_ROOT; }; + 483A78620D2EEAF000CB2E4C /* gl_screen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_screen.c; path = ../Quake/gl_screen.c; sourceTree = SOURCE_ROOT; }; + 483A78630D2EEAF000CB2E4C /* gl_sky.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_sky.c; path = ../Quake/gl_sky.c; sourceTree = SOURCE_ROOT; }; + 483A78640D2EEAF000CB2E4C /* gl_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_test.c; path = ../Quake/gl_test.c; sourceTree = SOURCE_ROOT; }; + 483A78650D2EEAF000CB2E4C /* gl_texmgr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_texmgr.c; path = ../Quake/gl_texmgr.c; sourceTree = SOURCE_ROOT; }; + 483A78660D2EEAF000CB2E4C /* gl_vidsdl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_vidsdl.c; path = ../Quake/gl_vidsdl.c; sourceTree = SOURCE_ROOT; }; + 483A78670D2EEAF000CB2E4C /* gl_warp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gl_warp.c; path = ../Quake/gl_warp.c; sourceTree = SOURCE_ROOT; }; + 483A78680D2EEAF000CB2E4C /* image.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = image.c; path = ../Quake/image.c; sourceTree = SOURCE_ROOT; }; + 483A78690D2EEAF000CB2E4C /* r_alias.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = r_alias.c; path = ../Quake/r_alias.c; sourceTree = SOURCE_ROOT; }; + 483A786A0D2EEAF000CB2E4C /* r_brush.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = r_brush.c; path = ../Quake/r_brush.c; sourceTree = SOURCE_ROOT; }; + 483A786B0D2EEAF000CB2E4C /* r_part.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = r_part.c; path = ../Quake/r_part.c; sourceTree = SOURCE_ROOT; }; + 483A786C0D2EEAF000CB2E4C /* r_sprite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = r_sprite.c; path = ../Quake/r_sprite.c; sourceTree = SOURCE_ROOT; }; + 483A786D0D2EEAF000CB2E4C /* r_world.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = r_world.c; path = ../Quake/r_world.c; sourceTree = SOURCE_ROOT; }; + 4846EB500D329BEB00A108DE /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = platform.h; path = ../Quake/platform.h; sourceTree = SOURCE_ROOT; }; + 484AA4B30D3FF6C0005D917A /* Fitzquake.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Fitzquake.icns; sourceTree = ""; }; + 486577C80D31A22A00E7920A /* snd_dma.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = snd_dma.c; path = ../Quake/snd_dma.c; sourceTree = SOURCE_ROOT; }; + 486577C90D31A22A00E7920A /* snd_mem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = snd_mem.c; path = ../Quake/snd_mem.c; sourceTree = SOURCE_ROOT; }; + 486577CA0D31A22A00E7920A /* snd_mix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = snd_mix.c; path = ../Quake/snd_mix.c; sourceTree = SOURCE_ROOT; }; + 48728D280D3004A70004D61B /* net_dgrm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = net_dgrm.c; path = ../Quake/net_dgrm.c; sourceTree = SOURCE_ROOT; }; + 48728D290D3004A80004D61B /* net_dgrm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = net_dgrm.h; path = ../Quake/net_dgrm.h; sourceTree = SOURCE_ROOT; }; + 48728D2A0D3004A80004D61B /* net_loop.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = net_loop.c; path = ../Quake/net_loop.c; sourceTree = SOURCE_ROOT; }; + 48728D2B0D3004A80004D61B /* net_loop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = net_loop.h; path = ../Quake/net_loop.h; sourceTree = SOURCE_ROOT; }; + 487C0A5B0DA94A0700A49FF5 /* net_sdlnet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = net_sdlnet.c; path = ../Quake/net_sdlnet.c; sourceTree = SOURCE_ROOT; }; + 487C0A5C0DA94A0700A49FF5 /* net_sdlnet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = net_sdlnet.h; path = ../Quake/net_sdlnet.h; sourceTree = SOURCE_ROOT; }; + 48895DB80D4914A000849ABF /* pl_osx.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = pl_osx.m; path = ../Quake/pl_osx.m; sourceTree = SOURCE_ROOT; }; + 489D8D2D0D3A630D00AA4471 /* ScreenInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScreenInfo.h; sourceTree = ""; }; + 489D8D2E0D3A630D00AA4471 /* ScreenInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScreenInfo.m; sourceTree = ""; }; + 48B9E7870D340B1E0001CACF /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Launcher.nib; sourceTree = ""; }; + 48B9E7A50D340BEA0001CACF /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = ""; }; + 48B9E7A60D340BEA0001CACF /* AppController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppController.m; sourceTree = ""; }; + 48B9E7BE0D340EA80001CACF /* SDLApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLApplication.h; sourceTree = ""; }; + 48B9E7BF0D340EA80001CACF /* SDLApplication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLApplication.m; sourceTree = ""; }; + 48C85E390D3AD10E00797678 /* QuakeArgument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuakeArgument.h; sourceTree = ""; }; + 48C85E3A0D3AD10E00797678 /* QuakeArgument.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuakeArgument.m; sourceTree = ""; }; + 48DA393E0D998BC9007C2A77 /* SDL_net.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_net.framework; path = /Library/Frameworks/SDL_net.framework; sourceTree = ""; }; + 48FE58590D3A82C8006BB491 /* QuakeArguments.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QuakeArguments.h; sourceTree = ""; }; + 48FE585A0D3A82C8006BB491 /* QuakeArguments.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QuakeArguments.m; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* Fitzquake.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Fitzquake.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 002F39FA09D0881F00EBEB88 /* SDL.framework in Frameworks */, + 002F3C6109D0951E00EBEB88 /* GLUT.framework in Frameworks */, + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + 002F3C0109D093BD00EBEB88 /* OpenGL.framework in Frameworks */, + 48DA393F0D998BC9007C2A77 /* SDL_net.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 002F39F909D0881F00EBEB88 /* SDL.framework */, + 48DA393E0D998BC9007C2A77 /* SDL_net.framework */, + 002F3C6009D0951E00EBEB88 /* GLUT.framework */, + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + 002F3C0009D093BD00EBEB88 /* OpenGL.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* Fitzquake.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* Fitzquake */ = { + isa = PBXGroup; + children = ( + 48243B060D33ED0A00C29F8F /* Mac OS X */, + 483A77D80D2EE8C500CB2E4C /* Quake */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + 4830B79D0D464CAE00EF4498 /* Changelog.txt */, + 4830B79E0D464CAE00EF4498 /* Todo.txt */, + ); + name = Fitzquake; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 484AA4B30D3FF6C0005D917A /* Fitzquake.icns */, + 48B9E7860D340B1E0001CACF /* Launcher.nib */, + 8D1107310486CEB800E47090 /* Info.plist */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + 48243B060D33ED0A00C29F8F /* Mac OS X */ = { + isa = PBXGroup; + children = ( + 48B9E7A50D340BEA0001CACF /* AppController.h */, + 48B9E7A60D340BEA0001CACF /* AppController.m */, + 32CA4F630368D1EE00C91783 /* Fitzquake_Prefix.pch */, + 48FE58590D3A82C8006BB491 /* QuakeArguments.h */, + 48FE585A0D3A82C8006BB491 /* QuakeArguments.m */, + 489D8D2D0D3A630D00AA4471 /* ScreenInfo.h */, + 489D8D2E0D3A630D00AA4471 /* ScreenInfo.m */, + 48B9E7BE0D340EA80001CACF /* SDLApplication.h */, + 48B9E7BF0D340EA80001CACF /* SDLApplication.m */, + 002F3A2B09D0888800EBEB88 /* SDLMain.h */, + 002F3A2C09D0888800EBEB88 /* SDLMain.m */, + 48C85E390D3AD10E00797678 /* QuakeArgument.h */, + 48C85E3A0D3AD10E00797678 /* QuakeArgument.m */, + ); + name = "Mac OS X"; + sourceTree = ""; + }; + 483A77D80D2EE8C500CB2E4C /* Quake */ = { + isa = PBXGroup; + children = ( + 483A77D90D2EE8D400CB2E4C /* Generic */, + 483A77DA0D2EE8DA00CB2E4C /* Input */, + 483A77DD0D2EE8F100CB2E4C /* Network */, + 483A77DC0D2EE8ED00CB2E4C /* Sound */, + 483A77DB0D2EE8E600CB2E4C /* Video */, + ); + name = Quake; + sourceTree = ""; + }; + 483A77D90D2EE8D400CB2E4C /* Generic */ = { + isa = PBXGroup; + children = ( + 483A77DE0D2EE8FB00CB2E4C /* Headers */, + 483A78100D2EEA5400CB2E4C /* chase.c */, + 483A78110D2EEA5400CB2E4C /* cmd.c */, + 483A78120D2EEA5400CB2E4C /* common.c */, + 483A78130D2EEA5400CB2E4C /* console.c */, + 483A78140D2EEA5400CB2E4C /* crc.c */, + 483A78150D2EEA5400CB2E4C /* cvar.c */, + 483A78170D2EEA5400CB2E4C /* host.c */, + 483A78160D2EEA5400CB2E4C /* host_cmd.c */, + 48243B130D33F01A00C29F8F /* main.c */, + 483A78180D2EEA5400CB2E4C /* mathlib.c */, + 483A78190D2EEA5400CB2E4C /* menu.c */, + 48895DB80D4914A000849ABF /* pl_osx.m */, + 483A781A0D2EEA5400CB2E4C /* pr_cmds.c */, + 483A781B0D2EEA5400CB2E4C /* pr_edict.c */, + 483A781C0D2EEA5400CB2E4C /* pr_exec.c */, + 483A780E0D2EEA0F00CB2E4C /* progdefs.q1 */, + 483A781D0D2EEA5400CB2E4C /* sbar.c */, + 483A781E0D2EEA5400CB2E4C /* sys_sdl.c */, + 483A781F0D2EEA5400CB2E4C /* view.c */, + 483A78200D2EEA5400CB2E4C /* wad.c */, + 483A78210D2EEA5400CB2E4C /* world.c */, + 483A78220D2EEA5400CB2E4C /* zone.c */, + ); + name = Generic; + sourceTree = ""; + }; + 483A77DA0D2EE8DA00CB2E4C /* Input */ = { + isa = PBXGroup; + children = ( + 483A77DF0D2EE90500CB2E4C /* Headers */, + 483A78360D2EEA6D00CB2E4C /* in_sdl.c */, + 483A78370D2EEA6D00CB2E4C /* keys.c */, + ); + name = Input; + sourceTree = ""; + }; + 483A77DB0D2EE8E600CB2E4C /* Video */ = { + isa = PBXGroup; + children = ( + 483A77E20D2EE91500CB2E4C /* Headers */, + 483A785A0D2EEAF000CB2E4C /* gl_draw.c */, + 483A785B0D2EEAF000CB2E4C /* gl_fog.c */, + 483A785C0D2EEAF000CB2E4C /* gl_mesh.c */, + 483A785D0D2EEAF000CB2E4C /* gl_model.c */, + 483A785E0D2EEAF000CB2E4C /* gl_refrag.c */, + 483A785F0D2EEAF000CB2E4C /* gl_rlight.c */, + 483A78600D2EEAF000CB2E4C /* gl_rmain.c */, + 483A78610D2EEAF000CB2E4C /* gl_rmisc.c */, + 483A78620D2EEAF000CB2E4C /* gl_screen.c */, + 483A78630D2EEAF000CB2E4C /* gl_sky.c */, + 483A78640D2EEAF000CB2E4C /* gl_test.c */, + 483A78650D2EEAF000CB2E4C /* gl_texmgr.c */, + 483A78660D2EEAF000CB2E4C /* gl_vidsdl.c */, + 483A78670D2EEAF000CB2E4C /* gl_warp.c */, + 483A78680D2EEAF000CB2E4C /* image.c */, + 483A78690D2EEAF000CB2E4C /* r_alias.c */, + 483A786A0D2EEAF000CB2E4C /* r_brush.c */, + 483A786B0D2EEAF000CB2E4C /* r_part.c */, + 483A786C0D2EEAF000CB2E4C /* r_sprite.c */, + 483A786D0D2EEAF000CB2E4C /* r_world.c */, + ); + name = Video; + sourceTree = ""; + }; + 483A77DC0D2EE8ED00CB2E4C /* Sound */ = { + isa = PBXGroup; + children = ( + 483A77E10D2EE91000CB2E4C /* Headers */, + 483A78500D2EEAC300CB2E4C /* cd_sdl.c */, + 486577C80D31A22A00E7920A /* snd_dma.c */, + 486577C90D31A22A00E7920A /* snd_mem.c */, + 486577CA0D31A22A00E7920A /* snd_mix.c */, + 483A78540D2EEAC300CB2E4C /* snd_sdl.c */, + ); + name = Sound; + sourceTree = ""; + }; + 483A77DD0D2EE8F100CB2E4C /* Network */ = { + isa = PBXGroup; + children = ( + 483A77E00D2EE90B00CB2E4C /* Headers */, + 483A783A0D2EEAAB00CB2E4C /* cl_demo.c */, + 483A783B0D2EEAAB00CB2E4C /* cl_input.c */, + 483A783C0D2EEAAB00CB2E4C /* cl_main.c */, + 483A783D0D2EEAAB00CB2E4C /* cl_parse.c */, + 483A783E0D2EEAAB00CB2E4C /* cl_tent.c */, + 48728D280D3004A70004D61B /* net_dgrm.c */, + 48728D2A0D3004A80004D61B /* net_loop.c */, + 483A783F0D2EEAAB00CB2E4C /* net_main.c */, + 483A78400D2EEAAB00CB2E4C /* net_sdl.c */, + 487C0A5B0DA94A0700A49FF5 /* net_sdlnet.c */, + 48305B540D8AF90600A29C24 /* net_udp.c */, + 483A78410D2EEAAB00CB2E4C /* sv_main.c */, + 483A78420D2EEAAB00CB2E4C /* sv_move.c */, + 483A78430D2EEAAB00CB2E4C /* sv_phys.c */, + 483A78440D2EEAAB00CB2E4C /* sv_user.c */, + ); + name = Network; + sourceTree = ""; + }; + 483A77DE0D2EE8FB00CB2E4C /* Headers */ = { + isa = PBXGroup; + children = ( + 483A77E60D2EE97700CB2E4C /* cmd.h */, + 483A77E70D2EE97700CB2E4C /* common.h */, + 483A77E80D2EE97700CB2E4C /* console.h */, + 483A77E90D2EE97700CB2E4C /* crc.h */, + 483A77EA0D2EE97700CB2E4C /* cvar.h */, + 483A77EB0D2EE97700CB2E4C /* mathlib.h */, + 483A77EC0D2EE97700CB2E4C /* menu.h */, + 4846EB500D329BEB00A108DE /* platform.h */, + 483A77ED0D2EE97700CB2E4C /* pr_comp.h */, + 483A77EE0D2EE97700CB2E4C /* progdefs.h */, + 483A77EF0D2EE97700CB2E4C /* progs.h */, + 483A77F00D2EE97700CB2E4C /* quakedef.h */, + 483A77F10D2EE97700CB2E4C /* sbar.h */, + 483A77F20D2EE97700CB2E4C /* sys.h */, + 483A77F30D2EE97700CB2E4C /* view.h */, + 483A77F40D2EE97700CB2E4C /* wad.h */, + 483A77F50D2EE97700CB2E4C /* world.h */, + 483A77F60D2EE97700CB2E4C /* zone.h */, + ); + name = Headers; + sourceTree = ""; + }; + 483A77DF0D2EE90500CB2E4C /* Headers */ = { + isa = PBXGroup; + children = ( + 483A77F70D2EE98D00CB2E4C /* input.h */, + 483A77F80D2EE98D00CB2E4C /* keys.h */, + ); + name = Headers; + sourceTree = ""; + }; + 483A77E00D2EE90B00CB2E4C /* Headers */ = { + isa = PBXGroup; + children = ( + 483A77F90D2EE9A900CB2E4C /* client.h */, + 483A77FA0D2EE9A900CB2E4C /* net.h */, + 48728D290D3004A80004D61B /* net_dgrm.h */, + 48728D2B0D3004A80004D61B /* net_loop.h */, + 487C0A5C0DA94A0700A49FF5 /* net_sdlnet.h */, + 48305B530D8AF8EC00A29C24 /* net_udp.h */, + 483A77FB0D2EE9A900CB2E4C /* protocol.h */, + 483A77FC0D2EE9A900CB2E4C /* server.h */, + ); + name = Headers; + sourceTree = ""; + }; + 483A77E10D2EE91000CB2E4C /* Headers */ = { + isa = PBXGroup; + children = ( + 483A77FD0D2EE9BD00CB2E4C /* cdaudio.h */, + 483A77FE0D2EE9BD00CB2E4C /* sound.h */, + ); + name = Headers; + sourceTree = ""; + }; + 483A77E20D2EE91500CB2E4C /* Headers */ = { + isa = PBXGroup; + children = ( + 483A77FF0D2EE9F300CB2E4C /* anorm_dots.h */, + 483A78000D2EE9F300CB2E4C /* anorms.h */, + 483A78010D2EE9F300CB2E4C /* bspfile.h */, + 483A78020D2EE9F300CB2E4C /* d_ifacea.h */, + 483A78030D2EE9F300CB2E4C /* draw.h */, + 483A78040D2EE9F300CB2E4C /* gl_model.h */, + 483A78050D2EE9F300CB2E4C /* gl_texmgr.h */, + 483A78060D2EE9F300CB2E4C /* gl_warp_sin.h */, + 483A78070D2EE9F300CB2E4C /* glquake.h */, + 483A78080D2EE9F300CB2E4C /* image.h */, + 483A78090D2EE9F300CB2E4C /* modelgen.h */, + 483A780A0D2EE9F300CB2E4C /* render.h */, + 483A780B0D2EE9F300CB2E4C /* screen.h */, + 483A780C0D2EE9F300CB2E4C /* spritegn.h */, + 483A780D0D2EE9F300CB2E4C /* vid.h */, + ); + name = Headers; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* Fitzquake */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Fitzquake" */; + buildPhases = ( + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + 002F39FD09D0883400EBEB88 /* Copy Frameworks into .app bundle */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Fitzquake; + productInstallPath = "$(HOME)/Applications"; + productName = Fitzquake; + productReference = 8D1107320486CEB800E47090 /* Fitzquake.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 "Fitzquake" */; + compatibilityVersion = "Xcode 2.4"; + hasScannedForEncodings = 1; + mainGroup = 29B97314FDCFA39411CA2CEA /* Fitzquake */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D1107260486CEB800E47090 /* Fitzquake */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, + 483A780F0D2EEA0F00CB2E4C /* progdefs.q1 in Resources */, + 48B9E7880D340B1E0001CACF /* Launcher.nib in Resources */, + 484AA4B40D3FF6C0005D917A /* Fitzquake.icns in Resources */, + 4830B79F0D464CAE00EF4498 /* Changelog.txt in Resources */, + 4830B7A00D464CAE00EF4498 /* Todo.txt in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 002F3A2E09D0888800EBEB88 /* SDLMain.m in Sources */, + 483A78230D2EEA5400CB2E4C /* chase.c in Sources */, + 483A78240D2EEA5400CB2E4C /* cmd.c in Sources */, + 483A78250D2EEA5400CB2E4C /* common.c in Sources */, + 483A78260D2EEA5400CB2E4C /* console.c in Sources */, + 483A78270D2EEA5400CB2E4C /* crc.c in Sources */, + 483A78280D2EEA5400CB2E4C /* cvar.c in Sources */, + 483A78290D2EEA5400CB2E4C /* host_cmd.c in Sources */, + 483A782A0D2EEA5400CB2E4C /* host.c in Sources */, + 483A782B0D2EEA5400CB2E4C /* mathlib.c in Sources */, + 483A782C0D2EEA5400CB2E4C /* menu.c in Sources */, + 483A782D0D2EEA5400CB2E4C /* pr_cmds.c in Sources */, + 483A782E0D2EEA5400CB2E4C /* pr_edict.c in Sources */, + 483A782F0D2EEA5400CB2E4C /* pr_exec.c in Sources */, + 483A78300D2EEA5400CB2E4C /* sbar.c in Sources */, + 483A78310D2EEA5400CB2E4C /* sys_sdl.c in Sources */, + 483A78320D2EEA5400CB2E4C /* view.c in Sources */, + 483A78330D2EEA5400CB2E4C /* wad.c in Sources */, + 483A78340D2EEA5400CB2E4C /* world.c in Sources */, + 483A78350D2EEA5400CB2E4C /* zone.c in Sources */, + 483A78380D2EEA6D00CB2E4C /* in_sdl.c in Sources */, + 483A78390D2EEA6D00CB2E4C /* keys.c in Sources */, + 483A78450D2EEAAB00CB2E4C /* cl_demo.c in Sources */, + 483A78460D2EEAAB00CB2E4C /* cl_input.c in Sources */, + 483A78470D2EEAAB00CB2E4C /* cl_main.c in Sources */, + 483A78480D2EEAAB00CB2E4C /* cl_parse.c in Sources */, + 483A78490D2EEAAB00CB2E4C /* cl_tent.c in Sources */, + 483A784A0D2EEAAB00CB2E4C /* net_main.c in Sources */, + 483A784B0D2EEAAB00CB2E4C /* net_sdl.c in Sources */, + 483A784C0D2EEAAB00CB2E4C /* sv_main.c in Sources */, + 483A784D0D2EEAAB00CB2E4C /* sv_move.c in Sources */, + 483A784E0D2EEAAB00CB2E4C /* sv_phys.c in Sources */, + 483A784F0D2EEAAB00CB2E4C /* sv_user.c in Sources */, + 483A78550D2EEAC300CB2E4C /* cd_sdl.c in Sources */, + 483A78590D2EEAC300CB2E4C /* snd_sdl.c in Sources */, + 483A786E0D2EEAF000CB2E4C /* gl_draw.c in Sources */, + 483A786F0D2EEAF000CB2E4C /* gl_fog.c in Sources */, + 483A78700D2EEAF000CB2E4C /* gl_mesh.c in Sources */, + 483A78710D2EEAF000CB2E4C /* gl_model.c in Sources */, + 483A78720D2EEAF000CB2E4C /* gl_refrag.c in Sources */, + 483A78730D2EEAF000CB2E4C /* gl_rlight.c in Sources */, + 483A78740D2EEAF000CB2E4C /* gl_rmain.c in Sources */, + 483A78750D2EEAF000CB2E4C /* gl_rmisc.c in Sources */, + 483A78760D2EEAF000CB2E4C /* gl_screen.c in Sources */, + 483A78770D2EEAF000CB2E4C /* gl_sky.c in Sources */, + 483A78780D2EEAF000CB2E4C /* gl_test.c in Sources */, + 483A78790D2EEAF000CB2E4C /* gl_texmgr.c in Sources */, + 483A787A0D2EEAF000CB2E4C /* gl_vidsdl.c in Sources */, + 483A787B0D2EEAF000CB2E4C /* gl_warp.c in Sources */, + 483A787C0D2EEAF000CB2E4C /* image.c in Sources */, + 483A787D0D2EEAF000CB2E4C /* r_alias.c in Sources */, + 483A787E0D2EEAF000CB2E4C /* r_brush.c in Sources */, + 483A787F0D2EEAF000CB2E4C /* r_part.c in Sources */, + 483A78800D2EEAF000CB2E4C /* r_sprite.c in Sources */, + 483A78810D2EEAF000CB2E4C /* r_world.c in Sources */, + 48728D2D0D3004A80004D61B /* net_dgrm.c in Sources */, + 48728D2E0D3004A80004D61B /* net_loop.c in Sources */, + 486577CB0D31A22A00E7920A /* snd_dma.c in Sources */, + 486577CC0D31A22A00E7920A /* snd_mem.c in Sources */, + 486577CD0D31A22A00E7920A /* snd_mix.c in Sources */, + 48243B140D33F01A00C29F8F /* main.c in Sources */, + 48B9E7A70D340BEA0001CACF /* AppController.m in Sources */, + 48B9E7C00D340EA80001CACF /* SDLApplication.m in Sources */, + 489D8D2F0D3A630D00AA4471 /* ScreenInfo.m in Sources */, + 48FE585B0D3A82C8006BB491 /* QuakeArguments.m in Sources */, + 48C85E3B0D3AD10E00797678 /* QuakeArgument.m in Sources */, + 48895DB90D4914A000849ABF /* pl_osx.m in Sources */, + 48305B550D8AF90600A29C24 /* net_udp.c in Sources */, + 487C0A5D0DA94A0700A49FF5 /* net_sdlnet.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C165DFE840E0CC02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 48B9E7860D340B1E0001CACF /* Launcher.nib */ = { + isa = PBXVariantGroup; + children = ( + 48B9E7870D340B1E0001CACF /* English */, + ); + name = Launcher.nib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = Fitzquake; + WRAPPER_EXTENSION = app; + ZERO_LINK = YES; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G5; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = Fitzquake; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(HOME)/Library/Frameworks", + /Library/Frameworks, + "$(FRAMEWORK_SEARCH_PATHS)", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(HOME)/Library/Frameworks/SDL.framework/Headers", + /Library/Frameworks/SDL.framework/Headers, + "$(HEADER_SEARCH_PATHS)", + ); + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(HOME)/Library/Frameworks", + /Library/Frameworks, + "$(FRAMEWORK_SEARCH_PATHS)", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(HOME)/Library/Frameworks/SDL.framework/Headers", + /Library/Frameworks/SDL.framework/Headers, + "$(HEADER_SEARCH_PATHS)", + ); + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Fitzquake" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Fitzquake" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/quakespasm/Mac OS X/Fitzquake_Prefix.pch b/quakespasm/Mac OS X/Fitzquake_Prefix.pch new file mode 100644 index 00000000..d4f4148e --- /dev/null +++ b/quakespasm/Mac OS X/Fitzquake_Prefix.pch @@ -0,0 +1,25 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 "SDL.h" + +#ifdef __OBJC__ + #import +#endif diff --git a/quakespasm/Mac OS X/Info.plist b/quakespasm/Mac OS X/Info.plist new file mode 100644 index 00000000..7f76fd1b --- /dev/null +++ b/quakespasm/Mac OS X/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + Fitzquake + CFBundleIdentifier + net.celephais.Fitzquake + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + NSMainNibFile + Launcher + NSPrincipalClass + NSApplication + + diff --git a/quakespasm/Mac OS X/Launcher-Info.plist b/quakespasm/Mac OS X/Launcher-Info.plist new file mode 100644 index 00000000..7b944358 --- /dev/null +++ b/quakespasm/Mac OS X/Launcher-Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.yourcompany.Launcher + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + + diff --git a/quakespasm/Mac OS X/QuakeArgument.h b/quakespasm/Mac OS X/QuakeArgument.h new file mode 100644 index 00000000..604daa26 --- /dev/null +++ b/quakespasm/Mac OS X/QuakeArgument.h @@ -0,0 +1,36 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 + + +@interface QuakeArgument : NSObject { + NSString *name; + NSString *value; +} + +- (id)initWithArgument:(NSString *)n; +- (id)initWithArgument:(NSString *)n andValue:(NSString *)v; + +- (NSString *)name; +- (NSString *)value; + +- (BOOL)hasValue; +@end diff --git a/quakespasm/Mac OS X/QuakeArgument.m b/quakespasm/Mac OS X/QuakeArgument.m new file mode 100644 index 00000000..cdf3d162 --- /dev/null +++ b/quakespasm/Mac OS X/QuakeArgument.m @@ -0,0 +1,80 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 "QuakeArgument.h" + + +@implementation QuakeArgument + +- (id)initWithArgument:(NSString *)n { + + return [self initWithArgument:n andValue:nil]; +} + +- (id)initWithArgument:(NSString *)n andValue:(NSString *)v { + + self = [super init]; + if (self == nil) + return nil; + + name = [n retain]; + if (v != nil) + value = [v retain]; + + return self; +} + +- (NSString *)name { + + return name; +} + +- (NSString *)value { + + return value; +} + +- (BOOL)hasValue { + + return value != nil; +} + +- (NSString *)description { + + NSMutableString *buffer = [[NSMutableString alloc] init]; + + [buffer appendString:name]; + if ([self hasValue]) { + [buffer appendString:@" "]; + [buffer appendString:value]; + } + + return buffer; +} + +- (void) dealloc +{ + [name release]; + [value release]; + + [super dealloc]; +} + +@end diff --git a/quakespasm/Mac OS X/QuakeArguments.h b/quakespasm/Mac OS X/QuakeArguments.h new file mode 100644 index 00000000..999243ed --- /dev/null +++ b/quakespasm/Mac OS X/QuakeArguments.h @@ -0,0 +1,39 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 "QuakeArgument.h" + + +@interface QuakeArguments : NSObject { + NSMutableArray *quakeArgs; +} + +- (id)initWithArguments:(char **)argv count:(int)argc; +- (void)parseArguments:(NSString *)args; + +- (void)addArgument:(NSString *)arg; +- (void)addArgument:(NSString *)arg withValue:(NSString *)value; + +- (QuakeArgument *)argument:(NSString *)name; + +- (int)count; +- (void)setArguments:(char **)args; +@end diff --git a/quakespasm/Mac OS X/QuakeArguments.m b/quakespasm/Mac OS X/QuakeArguments.m new file mode 100644 index 00000000..ee21dd68 --- /dev/null +++ b/quakespasm/Mac OS X/QuakeArguments.m @@ -0,0 +1,231 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 "QuakeArguments.h" +#import "QuakeArgument.h" + +@implementation QuakeArguments + +- (id)init { + + self = [super init]; + if (!self) + return nil; + + quakeArgs = [[NSMutableArray alloc] init]; + return self; +} + +- (id)initWithArguments:(char **)argv count:(int)argc { + + int i; + NSString *next; + NSString *current; + QuakeArgument *argument; + + self = [self init]; + if (!self) + return nil; + + if (argc > 0) { + for (i = 0; argv[i]; i++) { + current = [NSString stringWithCString:argv[i] encoding:NSASCIIStringEncoding]; + if (i < argc-1) { + next = [NSString stringWithCString:argv[i+1] encoding:NSASCIIStringEncoding]; + } else { + next = nil; + } + + if (next != nil && [next characterAtIndex:0] != '-' && [next characterAtIndex:0] != '+') { + argument = [[QuakeArgument alloc] initWithArgument:current andValue:next]; + i++; + } else { + argument = [[QuakeArgument alloc] initWithArgument:current]; + } + [quakeArgs addObject:argument]; + [argument release]; + } + } + + return self; +} + +- (void)parseArguments:(NSString *)args { + + int i; + unichar c; + unichar p = ' '; + NSMutableString *word = nil; + NSMutableArray *words = [[NSMutableArray alloc] init]; + BOOL quoted = FALSE; + + [quakeArgs removeAllObjects]; + + for (i = 0; i < [args length]; i++) { + + c = [args characterAtIndex:i]; + switch (c) { + case ' ': + if (!quoted) { + // ignore whitespace + if (p == ' ') + break; + + if (word != nil) { + [words addObject:word]; + [word release]; + + word = nil; + } + } + break; + case '"': + quoted = !quoted; + break; + default: + if (p == ' ') { + word = [[NSMutableString alloc] init]; + } + [word appendFormat:@"%C", c]; + break; + } + p = c; + } + + if (word != nil) { + [words addObject:word]; + [word release]; + } + + NSString *current; + NSString *next; + QuakeArgument *argument = nil; + + for (i = 0; i < [words count];) { + current = [words objectAtIndex:i++]; + if (i < [words count]) { + next = [words objectAtIndex:i++]; + unichar c = [next characterAtIndex:0]; + if (c != '-' && c != '+') + argument = [[QuakeArgument alloc] initWithArgument:current andValue:next]; + else + i--; + + } + + if (argument == nil) { + argument = [[QuakeArgument alloc] initWithArgument:current]; + } + + [quakeArgs addObject:argument]; + [argument release]; + argument = nil; + } +} + +- (void)addArgument:(NSString *)name { + + QuakeArgument *argument = [[QuakeArgument alloc] initWithArgument:name]; + [quakeArgs addObject:argument]; + + [argument release]; +} + +- (void)addArgument:(NSString *)name withValue:(NSString *)value { + + QuakeArgument *argument = [[QuakeArgument alloc] initWithArgument:name andValue:value]; + [quakeArgs addObject:argument]; + + [argument release]; +} + +- (QuakeArgument *)argument:(NSString *)name { + + NSEnumerator *enumerator = [quakeArgs objectEnumerator]; + QuakeArgument *argument; + + while ((argument = [enumerator nextObject])) { + if ([name isEqualToString:[argument name]]) + return argument; + } + + return nil; +} + +- (int)count { + + int c = 0; + + NSEnumerator *enumerator = [quakeArgs objectEnumerator]; + QuakeArgument *argument; + + while ((argument = [enumerator nextObject])) { + c++; + if ([argument hasValue]) + c++; + } + + return c; +} + +- (void)setArguments:(char **)args { + + int i = 0; + + NSEnumerator *enumerator = [quakeArgs objectEnumerator]; + QuakeArgument *argument; + + while ((argument = [enumerator nextObject])) { + args[i++] = (char *)[[argument name] cStringUsingEncoding:NSASCIIStringEncoding]; + + if ([argument hasValue]) + args[i++] = (char *)[[argument value] cStringUsingEncoding:NSASCIIStringEncoding]; + } +} + +- (NSString *)description { + + int i; + NSMutableString *buffer = [[NSMutableString alloc] init]; + + for (i = 0; i < [quakeArgs count]; i++) { + if (i > 0) + [buffer appendString:@" "]; + + QuakeArgument *argument = [quakeArgs objectAtIndex:i]; + [buffer appendString:[argument name]]; + + if ([argument hasValue]) { + [buffer appendString:@" "]; + [buffer appendString:[argument value]]; + } + } + + return buffer; +} + +- (void) dealloc +{ + [quakeArgs release]; + [super dealloc]; +} + + +@end diff --git a/quakespasm/Mac OS X/SDLApplication.h b/quakespasm/Mac OS X/SDLApplication.h new file mode 100644 index 00000000..abc4b4ed --- /dev/null +++ b/quakespasm/Mac OS X/SDLApplication.h @@ -0,0 +1,28 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 + + +@interface SDLApplication : NSApplication { + +} + +@end diff --git a/quakespasm/Mac OS X/SDLApplication.m b/quakespasm/Mac OS X/SDLApplication.m new file mode 100644 index 00000000..0f9f34db --- /dev/null +++ b/quakespasm/Mac OS X/SDLApplication.m @@ -0,0 +1,34 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 "SDLApplication.h" +#import "SDL.h" + +@implementation SDLApplication +- (void)terminate:(id)sender +{ + /* Post a SDL_QUIT event */ + SDL_Event event; + event.type = SDL_QUIT; + SDL_PushEvent(&event); + + [super terminate:sender]; +} +@end diff --git a/quakespasm/Mac OS X/SDLMain.h b/quakespasm/Mac OS X/SDLMain.h new file mode 100644 index 00000000..7493210e --- /dev/null +++ b/quakespasm/Mac OS X/SDLMain.h @@ -0,0 +1,16 @@ +/* SDLMain.m - main entry point for our Cocoa-ized SDL app + Initial Version: Darrell Walisser + Non-NIB-Code & other changes: Max Horn + + Feel free to customize this file to suit your needs +*/ + +#import + +extern int gArgc; +extern char **gArgv; +extern BOOL gFinderLaunch; +extern BOOL gCalledAppMainline; + +@interface SDLMain : NSObject +@end diff --git a/quakespasm/Mac OS X/SDLMain.m b/quakespasm/Mac OS X/SDLMain.m new file mode 100644 index 00000000..741f3c50 --- /dev/null +++ b/quakespasm/Mac OS X/SDLMain.m @@ -0,0 +1,84 @@ +/* SDLMain.m - main entry point for our Cocoa-ized SDL app + Initial Version: Darrell Walisser + Non-NIB-Code & other changes: Max Horn + + Feel free to customize this file to suit your needs +*/ + +#import "SDL.h" +#import "SDLMain.h" +#import /* for MAXPATHLEN */ +#import +#import "SDLApplication.h" + +int gArgc; +char **gArgv; +BOOL gFinderLaunch; +BOOL gCalledAppMainline = FALSE; + +/* The main class of the application, the application's delegate */ +@implementation SDLMain + +/* Set the working directory to the .app's parent directory */ +- (void) setupWorkingDirectory:(BOOL)shouldChdir +{ + if (shouldChdir) + { + char parentdir[MAXPATHLEN]; + CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle()); + CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url); + if (CFURLGetFileSystemRepresentation(url2, true, (UInt8 *)parentdir, MAXPATHLEN)) { + assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */ + } + CFRelease(url); + CFRelease(url2); + } + +} + +/* Called when the internal event loop has just started running */ +- (void) applicationDidFinishLaunching: (NSNotification *) note +{ + int status; + + /* Set the working directory to the .app's parent directory */ + [self setupWorkingDirectory:gFinderLaunch]; + + /* Hand off to main application code */ + gCalledAppMainline = TRUE; + status = SDL_main (gArgc, gArgv); + + /* We're done, thank you for playing */ + exit(status); +} +@end + + +#ifdef main +# undef main +#endif + +/* Main entry point to executable - should *not* be SDL_main! */ +int main (int argc, char **argv) +{ + /* Copy the arguments into a global variable */ + /* This is passed if we are launched by double-clicking */ + if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) { + gArgv = (char **) SDL_malloc(sizeof (char *) * 2); + gArgv[0] = argv[0]; + gArgv[1] = NULL; + gArgc = 1; + gFinderLaunch = YES; + } else { + int i; + gArgc = argc; + gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1)); + for (i = 0; i <= argc; i++) + gArgv[i] = argv[i]; + gFinderLaunch = NO; + } + + [SDLApplication poseAsClass:[NSApplication class]]; + NSApplicationMain (argc, argv); + return 0; +} diff --git a/quakespasm/Mac OS X/ScreenInfo.h b/quakespasm/Mac OS X/ScreenInfo.h new file mode 100644 index 00000000..fdb2abbd --- /dev/null +++ b/quakespasm/Mac OS X/ScreenInfo.h @@ -0,0 +1,38 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 + + +@interface ScreenInfo : NSObject { + int width; + int height; + int bpp; + NSString *description; +} + +- (id)initWithWidth:(int)w height:(int)h bpp:(int)b; + +- (int)width; +- (int)height; +- (int)bpp; +- (NSString *)description; + +@end diff --git a/quakespasm/Mac OS X/ScreenInfo.m b/quakespasm/Mac OS X/ScreenInfo.m new file mode 100644 index 00000000..783e8a8f --- /dev/null +++ b/quakespasm/Mac OS X/ScreenInfo.m @@ -0,0 +1,61 @@ +/* +Copyright (C) 2007-2008 Kristian Duske + +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 "ScreenInfo.h" + + +@implementation ScreenInfo + +- (id)initWithWidth:(int)w height:(int)h bpp:(int)b { + + self = [super init]; + if (!self) + return nil; + + width = w; + height = h; + bpp = b; + + description = [NSString stringWithFormat:@"%d x %d %d Bit", width, height, bpp]; + + return self; +} + +- (int)width { + + return width; +} + +- (int)height { + + return height; +} + +- (int)bpp { + + return bpp; +} + +- (NSString *)description { + + return description; +} + +@end diff --git a/quakespasm/Misc/Changelog.txt b/quakespasm/Misc/Changelog.txt new file mode 100644 index 00000000..c6a6c563 --- /dev/null +++ b/quakespasm/Misc/Changelog.txt @@ -0,0 +1,41 @@ +01/22/2008 +- release mouse pointer when console is active. +- enable key repeats (doesn't work on OS X, test in Win32).c + +01/23/2008 +- implement Sys_SendKeyEvents +- disable mouse input when console is inactive using SDL_SetEventFilter +- move mouse input processing to main event loop +- add vid.mode to determine window mode +- fixed Sys_printf() +- enable key repeats when console is active only +- return 0 if any of the cl_bob vars is 0 in V_CalcBob + +01/24/2008 +- changed in_deactivate so that it does not always release the mouse cursor +- adapted all calls to in_activate and in_deactive, because they need to be called regardless of the current mode +- added platform dependent messagebox code for fatal errors on OS X and Windows + +02/06/2008 +- fixed numlock acting as caps lock issue +- fixed: input is not activated on map command (hopefull got them all this time) +- center window in windowed modes + +2008/03/14 +- discard mouse movement while input is deactivated +- implement maps and mods commands using POSIX functions and added a POSIX wrapper for Win32 +- activate mouse input when binding a key, otherwise mouse keys cannot be bound through the menu +- fixed shift key behaviour + +2008/06/3 +- fixed numerous bugs in sdl_net.c + +2008/06/4 +- fixed fog command (use fmax instead of max in Fog_FogCommand_f) +- fixed bug that lead to the screen being set to minimum size when the sizedown command is issued multiple times + +2008/07/4 +- LSHIFT + ESC and circomflex always opens the console + +2008/07/5 +- print everything to stdout diff --git a/quakespasm/Misc/Icon.psd b/quakespasm/Misc/Icon.psd new file mode 100644 index 0000000000000000000000000000000000000000..c720c2e3947a984c199342b13d24a99e6f6cc4cd GIT binary patch literal 9990320 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 z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) z1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`; zKmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l z00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck)1V8`;KmY_l00ck) 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