24 Aug 2009

This commit is contained in:
g-cont 2009-08-24 00:00:00 +04:00 committed by Alibek Omarov
parent a75bc7448c
commit 0abdaf964b
18 changed files with 470 additions and 969 deletions

View File

@ -6,128 +6,6 @@
--------------------Configuration: engine - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393A.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "common" /I "server" /I "client" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\engine\!debug/" /Fo"..\temp\engine\!debug/" /Fd"..\temp\engine\!debug/" /FD /c
"D:\Xash3D\src_main\engine\common\cinematic.c"
"D:\Xash3D\src_main\engine\client\cl_cmds.c"
"D:\Xash3D\src_main\engine\client\cl_demo.c"
"D:\Xash3D\src_main\engine\client\cl_effects.c"
"D:\Xash3D\src_main\engine\client\cl_frame.c"
"D:\Xash3D\src_main\engine\client\cl_game.c"
"D:\Xash3D\src_main\engine\client\cl_input.c"
"D:\Xash3D\src_main\engine\client\cl_main.c"
"D:\Xash3D\src_main\engine\client\cl_parse.c"
"D:\Xash3D\src_main\engine\client\cl_phys.c"
"D:\Xash3D\src_main\engine\client\cl_scrn.c"
"D:\Xash3D\src_main\engine\client\cl_view.c"
"D:\Xash3D\src_main\engine\common\con_keys.c"
"D:\Xash3D\src_main\engine\common\con_main.c"
"D:\Xash3D\src_main\engine\common\con_utils.c"
"D:\Xash3D\src_main\engine\common\engfuncs.c"
"D:\Xash3D\src_main\engine\host.c"
"D:\Xash3D\src_main\engine\common\input.c"
"D:\Xash3D\src_main\engine\common\menu.c"
"D:\Xash3D\src_main\engine\common\net_chan.c"
"D:\Xash3D\src_main\engine\common\net_msg.c"
"D:\Xash3D\src_main\engine\server\sv_client.c"
"D:\Xash3D\src_main\engine\server\sv_cmds.c"
"D:\Xash3D\src_main\engine\server\sv_frame.c"
"D:\Xash3D\src_main\engine\server\sv_game.c"
"D:\Xash3D\src_main\engine\server\sv_init.c"
"D:\Xash3D\src_main\engine\server\sv_main.c"
"D:\Xash3D\src_main\engine\server\sv_move.c"
"D:\Xash3D\src_main\engine\server\sv_phys.c"
"D:\Xash3D\src_main\engine\server\sv_save.c"
"D:\Xash3D\src_main\engine\server\sv_world.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393A.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393B.tmp" with contents
[
user32.lib msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\engine\!debug/engine.pdb" /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /out:"..\temp\engine\!debug/engine.dll" /implib:"..\temp\engine\!debug/engine.lib" /pdbtype:sept
"\Xash3D\src_main\temp\engine\!debug\cinematic.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_cmds.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_demo.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_effects.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_frame.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_game.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_input.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_main.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_parse.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_phys.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_scrn.obj"
"\Xash3D\src_main\temp\engine\!debug\cl_view.obj"
"\Xash3D\src_main\temp\engine\!debug\com_library.obj"
"\Xash3D\src_main\temp\engine\!debug\con_keys.obj"
"\Xash3D\src_main\temp\engine\!debug\con_main.obj"
"\Xash3D\src_main\temp\engine\!debug\con_utils.obj"
"\Xash3D\src_main\temp\engine\!debug\engfuncs.obj"
"\Xash3D\src_main\temp\engine\!debug\engine.obj"
"\Xash3D\src_main\temp\engine\!debug\host.obj"
"\Xash3D\src_main\temp\engine\!debug\infostring.obj"
"\Xash3D\src_main\temp\engine\!debug\input.obj"
"\Xash3D\src_main\temp\engine\!debug\menu.obj"
"\Xash3D\src_main\temp\engine\!debug\net_chan.obj"
"\Xash3D\src_main\temp\engine\!debug\net_huff.obj"
"\Xash3D\src_main\temp\engine\!debug\net_msg.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_client.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_cmds.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_frame.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_game.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_init.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_main.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_move.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_phys.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_save.obj"
"\Xash3D\src_main\temp\engine\!debug\sv_world.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393B.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393C.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\engine\!debug\engine.dll "D:\Xash3D\bin\engine.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP393C.bat"
Compiling...
cinematic.c
cl_cmds.c
cl_demo.c
cl_effects.c
cl_frame.c
cl_game.c
cl_input.c
cl_main.c
cl_parse.c
cl_phys.c
cl_scrn.c
cl_view.c
con_keys.c
con_main.c
con_utils.c
engfuncs.c
host.c
input.c
menu.c
net_chan.c
Generating Code...
Compiling...
net_msg.c
sv_client.c
sv_cmds.c
sv_frame.c
sv_game.c
sv_init.c
sv_main.c
sv_move.c
sv_phys.c
sv_save.c
sv_world.c
Generating Code...
Linking...
Creating library ..\temp\engine\!debug/engine.lib and object ..\temp\engine\!debug/engine.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\engine\!debug\engine.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -6,66 +6,6 @@
--------------------Configuration: launch - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3941.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "imagelib" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\launch\!debug/" /Fo"..\temp\launch\!debug/" /Fd"..\temp\launch\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\launch\imagelib\img_dds.c"
"D:\Xash3D\src_main\launch\imagelib\img_main.c"
"D:\Xash3D\src_main\launch\imagelib\img_utils.c"
"D:\Xash3D\src_main\launch\patch.c"
"D:\Xash3D\src_main\launch\stdlib.c"
"D:\Xash3D\src_main\launch\system.c"
"D:\Xash3D\src_main\launch\utils.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3941.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3942.tmp" with contents
[
zlib.lib png.lib jpg.lib user32.lib gdi32.lib advapi32.lib winmm.lib /nologo /dll /incremental:yes /pdb:"..\temp\launch\!debug/launch.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\launch\!debug/launch.dll" /implib:"..\temp\launch\!debug/launch.lib" /pdbtype:sept /libpath:"./imagelib"
"\Xash3D\src_main\temp\launch\!debug\cmd.obj"
"\Xash3D\src_main\temp\launch\!debug\console.obj"
"\Xash3D\src_main\temp\launch\!debug\cpuinfo.obj"
"\Xash3D\src_main\temp\launch\!debug\crclib.obj"
"\Xash3D\src_main\temp\launch\!debug\cvar.obj"
"\Xash3D\src_main\temp\launch\!debug\export.obj"
"\Xash3D\src_main\temp\launch\!debug\filesystem.obj"
"\Xash3D\src_main\temp\launch\!debug\img_bmp.obj"
"\Xash3D\src_main\temp\launch\!debug\img_dds.obj"
"\Xash3D\src_main\temp\launch\!debug\img_jpg.obj"
"\Xash3D\src_main\temp\launch\!debug\img_main.obj"
"\Xash3D\src_main\temp\launch\!debug\img_pcx.obj"
"\Xash3D\src_main\temp\launch\!debug\img_png.obj"
"\Xash3D\src_main\temp\launch\!debug\img_tga.obj"
"\Xash3D\src_main\temp\launch\!debug\img_utils.obj"
"\Xash3D\src_main\temp\launch\!debug\img_vtf.obj"
"\Xash3D\src_main\temp\launch\!debug\img_wad.obj"
"\Xash3D\src_main\temp\launch\!debug\memlib.obj"
"\Xash3D\src_main\temp\launch\!debug\network.obj"
"\Xash3D\src_main\temp\launch\!debug\parselib.obj"
"\Xash3D\src_main\temp\launch\!debug\patch.obj"
"\Xash3D\src_main\temp\launch\!debug\stdlib.obj"
"\Xash3D\src_main\temp\launch\!debug\system.obj"
"\Xash3D\src_main\temp\launch\!debug\utils.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3942.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3943.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\launch\!debug\launch.dll "D:\Xash3D\bin\launch.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3943.bat"
Compiling...
img_dds.c
img_main.c
img_utils.c
patch.c
stdlib.c
system.c
utils.c
Generating Code...
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\launch\!debug\launch.dll
‘Ş®Ż¨ŕ®˘ ­® ä ©«®˘: 1.

View File

@ -6,66 +6,6 @@
--------------------Configuration: physic - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3945.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\physic\!debug/" /Fo"..\temp\physic\!debug/" /Fd"..\temp\physic\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\physic\cm_callback.c"
"D:\Xash3D\src_main\physic\cm_collision.c"
"D:\Xash3D\src_main\physic\cm_debug.c"
"D:\Xash3D\src_main\physic\cm_materials.c"
"D:\Xash3D\src_main\physic\cm_model.c"
"D:\Xash3D\src_main\physic\cm_pmove.c"
"D:\Xash3D\src_main\physic\cm_polygon.c"
"D:\Xash3D\src_main\physic\cm_portals.c"
"D:\Xash3D\src_main\physic\cm_rigidbody.c"
"D:\Xash3D\src_main\physic\cm_test.c"
"D:\Xash3D\src_main\physic\cm_trace.c"
"D:\Xash3D\src_main\physic\physic.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3945.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3946.tmp" with contents
[
user32.lib msvcrtd.lib newton.lib opengl32.lib /nologo /dll /incremental:yes /pdb:"..\temp\physic\!debug/physic.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\physic\!debug/physic.dll" /implib:"..\temp\physic\!debug/physic.lib" /pdbtype:sept
"\Xash3D\src_main\temp\physic\!debug\cm_callback.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_collision.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_debug.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_materials.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_model.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_pmove.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_polygon.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_portals.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_rigidbody.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_test.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_trace.obj"
"\Xash3D\src_main\temp\physic\!debug\cm_utils.obj"
"\Xash3D\src_main\temp\physic\!debug\physic.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3946.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3947.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\physic\!debug\physic.dll "D:\Xash3D\bin\physic.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3947.bat"
Compiling...
cm_callback.c
cm_collision.c
cm_debug.c
cm_materials.c
cm_model.c
cm_pmove.c
cm_polygon.c
cm_portals.c
cm_rigidbody.c
cm_test.c
cm_trace.c
physic.c
Generating Code...
Linking...
Creating library ..\temp\physic\!debug/physic.lib and object ..\temp\physic\!debug/physic.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\physic\!debug\physic.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -1,177 +0,0 @@
/***
*
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
*
* This product contains software technology licensed from Id
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
* All Rights Reserved.
*
* Use, distribution, and modification of this source code and/or resulting
* object code is restricted to non-commercial enhancements to products from
* Valve LLC. All other use, distribution, or modification is prohibited
* without written permission from Valve LLC.
*
****/
{-0.525731, 0.000000, 0.850651},
{-0.442863, 0.238856, 0.864188},
{-0.295242, 0.000000, 0.955423},
{-0.309017, 0.500000, 0.809017},
{-0.162460, 0.262866, 0.951056},
{0.000000, 0.000000, 1.000000},
{0.000000, 0.850651, 0.525731},
{-0.147621, 0.716567, 0.681718},
{0.147621, 0.716567, 0.681718},
{0.000000, 0.525731, 0.850651},
{0.309017, 0.500000, 0.809017},
{0.525731, 0.000000, 0.850651},
{0.295242, 0.000000, 0.955423},
{0.442863, 0.238856, 0.864188},
{0.162460, 0.262866, 0.951056},
{-0.681718, 0.147621, 0.716567},
{-0.809017, 0.309017, 0.500000},
{-0.587785, 0.425325, 0.688191},
{-0.850651, 0.525731, 0.000000},
{-0.864188, 0.442863, 0.238856},
{-0.716567, 0.681718, 0.147621},
{-0.688191, 0.587785, 0.425325},
{-0.500000, 0.809017, 0.309017},
{-0.238856, 0.864188, 0.442863},
{-0.425325, 0.688191, 0.587785},
{-0.716567, 0.681718, -0.147621},
{-0.500000, 0.809017, -0.309017},
{-0.525731, 0.850651, 0.000000},
{0.000000, 0.850651, -0.525731},
{-0.238856, 0.864188, -0.442863},
{0.000000, 0.955423, -0.295242},
{-0.262866, 0.951056, -0.162460},
{0.000000, 1.000000, 0.000000},
{0.000000, 0.955423, 0.295242},
{-0.262866, 0.951056, 0.162460},
{0.238856, 0.864188, 0.442863},
{0.262866, 0.951056, 0.162460},
{0.500000, 0.809017, 0.309017},
{0.238856, 0.864188, -0.442863},
{0.262866, 0.951056, -0.162460},
{0.500000, 0.809017, -0.309017},
{0.850651, 0.525731, 0.000000},
{0.716567, 0.681718, 0.147621},
{0.716567, 0.681718, -0.147621},
{0.525731, 0.850651, 0.000000},
{0.425325, 0.688191, 0.587785},
{0.864188, 0.442863, 0.238856},
{0.688191, 0.587785, 0.425325},
{0.809017, 0.309017, 0.500000},
{0.681718, 0.147621, 0.716567},
{0.587785, 0.425325, 0.688191},
{0.955423, 0.295242, 0.000000},
{1.000000, 0.000000, 0.000000},
{0.951056, 0.162460, 0.262866},
{0.850651, -0.525731, 0.000000},
{0.955423, -0.295242, 0.000000},
{0.864188, -0.442863, 0.238856},
{0.951056, -0.162460, 0.262866},
{0.809017, -0.309017, 0.500000},
{0.681718, -0.147621, 0.716567},
{0.850651, 0.000000, 0.525731},
{0.864188, 0.442863, -0.238856},
{0.809017, 0.309017, -0.500000},
{0.951056, 0.162460, -0.262866},
{0.525731, 0.000000, -0.850651},
{0.681718, 0.147621, -0.716567},
{0.681718, -0.147621, -0.716567},
{0.850651, 0.000000, -0.525731},
{0.809017, -0.309017, -0.500000},
{0.864188, -0.442863, -0.238856},
{0.951056, -0.162460, -0.262866},
{0.147621, 0.716567, -0.681718},
{0.309017, 0.500000, -0.809017},
{0.425325, 0.688191, -0.587785},
{0.442863, 0.238856, -0.864188},
{0.587785, 0.425325, -0.688191},
{0.688191, 0.587785, -0.425325},
{-0.147621, 0.716567, -0.681718},
{-0.309017, 0.500000, -0.809017},
{0.000000, 0.525731, -0.850651},
{-0.525731, 0.000000, -0.850651},
{-0.442863, 0.238856, -0.864188},
{-0.295242, 0.000000, -0.955423},
{-0.162460, 0.262866, -0.951056},
{0.000000, 0.000000, -1.000000},
{0.295242, 0.000000, -0.955423},
{0.162460, 0.262866, -0.951056},
{-0.442863, -0.238856, -0.864188},
{-0.309017, -0.500000, -0.809017},
{-0.162460, -0.262866, -0.951056},
{0.000000, -0.850651, -0.525731},
{-0.147621, -0.716567, -0.681718},
{0.147621, -0.716567, -0.681718},
{0.000000, -0.525731, -0.850651},
{0.309017, -0.500000, -0.809017},
{0.442863, -0.238856, -0.864188},
{0.162460, -0.262866, -0.951056},
{0.238856, -0.864188, -0.442863},
{0.500000, -0.809017, -0.309017},
{0.425325, -0.688191, -0.587785},
{0.716567, -0.681718, -0.147621},
{0.688191, -0.587785, -0.425325},
{0.587785, -0.425325, -0.688191},
{0.000000, -0.955423, -0.295242},
{0.000000, -1.000000, 0.000000},
{0.262866, -0.951056, -0.162460},
{0.000000, -0.850651, 0.525731},
{0.000000, -0.955423, 0.295242},
{0.238856, -0.864188, 0.442863},
{0.262866, -0.951056, 0.162460},
{0.500000, -0.809017, 0.309017},
{0.716567, -0.681718, 0.147621},
{0.525731, -0.850651, 0.000000},
{-0.238856, -0.864188, -0.442863},
{-0.500000, -0.809017, -0.309017},
{-0.262866, -0.951056, -0.162460},
{-0.850651, -0.525731, 0.000000},
{-0.716567, -0.681718, -0.147621},
{-0.716567, -0.681718, 0.147621},
{-0.525731, -0.850651, 0.000000},
{-0.500000, -0.809017, 0.309017},
{-0.238856, -0.864188, 0.442863},
{-0.262866, -0.951056, 0.162460},
{-0.864188, -0.442863, 0.238856},
{-0.809017, -0.309017, 0.500000},
{-0.688191, -0.587785, 0.425325},
{-0.681718, -0.147621, 0.716567},
{-0.442863, -0.238856, 0.864188},
{-0.587785, -0.425325, 0.688191},
{-0.309017, -0.500000, 0.809017},
{-0.147621, -0.716567, 0.681718},
{-0.425325, -0.688191, 0.587785},
{-0.162460, -0.262866, 0.951056},
{0.442863, -0.238856, 0.864188},
{0.162460, -0.262866, 0.951056},
{0.309017, -0.500000, 0.809017},
{0.147621, -0.716567, 0.681718},
{0.000000, -0.525731, 0.850651},
{0.425325, -0.688191, 0.587785},
{0.587785, -0.425325, 0.688191},
{0.688191, -0.587785, 0.425325},
{-0.955423, 0.295242, 0.000000},
{-0.951056, 0.162460, 0.262866},
{-1.000000, 0.000000, 0.000000},
{-0.850651, 0.000000, 0.525731},
{-0.955423, -0.295242, 0.000000},
{-0.951056, -0.162460, 0.262866},
{-0.864188, 0.442863, -0.238856},
{-0.951056, 0.162460, -0.262866},
{-0.809017, 0.309017, -0.500000},
{-0.864188, -0.442863, -0.238856},
{-0.951056, -0.162460, -0.262866},
{-0.809017, -0.309017, -0.500000},
{-0.681718, 0.147621, -0.716567},
{-0.681718, -0.147621, -0.716567},
{-0.850651, 0.000000, -0.525731},
{-0.688191, 0.587785, -0.425325},
{-0.587785, 0.425325, -0.688191},
{-0.425325, 0.688191, -0.587785},
{-0.425325, -0.688191, -0.587785},
{-0.587785, -0.425325, -0.688191},
{-0.688191, -0.587785, -0.425325},

View File

@ -61,9 +61,9 @@ typedef enum
typedef enum
{
SPR_SINGLE = 0,
SPR_GROUP,
SPR_ANGLED // xash ext
FRAME_SINGLE = 0,
FRAME_GROUP,
FRAME_ANGLED // xash ext
} frametype_t;
typedef enum
@ -86,9 +86,8 @@ typedef enum
typedef enum
{
SPR_SINGLE_FACE = 0, // oriented sprite will be draw with one face
SPR_DOUBLE_FACE, // oriented sprite will be draw back face too
SPR_XCROSS_FACE, // same like as flame in UT'99
SPR_CULL_FRONT = 0, // oriented sprite will be draw with one face
SPR_CULL_NONE, // oriented sprite will be draw back face too
} facetype_t;
typedef struct
@ -591,6 +590,13 @@ Alias models are position independent, so the cache manager can move them.
#define DT_FACES_FRONT 0x0010
#define ALIAS_ONSEAM 0x0020
// limits
#define MAXALIASFRAMES 256 // a byte limit ?
#define MAXALIASVERTS 2048
#define MAXALIASTRIS 4096
#define MAX_LBM_WIDTH 640
#define MAX_LBM_HEIGHT 480
// built-in model effects
#define AF_ROCKET BIT(0) // leave a trail
#define AF_GRENADE BIT(1) // leave a trail
@ -603,15 +609,9 @@ Alias models are position independent, so the cache manager can move them.
typedef enum
{
ALIAS_SINGLE = 0,
ALIAS_GROUP
} aliasframetype_t;
typedef enum
{
ALIAS_SKIN_SINGLE = 0,
ALIAS_SKIN_GROUP
} aliasskintype_t;
SKIN_SINGLE = 0,
SKIN_GROUP,
} skintype_t;
typedef struct
{
@ -630,7 +630,7 @@ typedef struct
synctype_t synctype;
int flags;
float size;
} qaliashdr_t;
} daliashdr_t;
typedef struct
{
@ -684,12 +684,12 @@ typedef struct
typedef struct
{
aliasframetype_t type;
frametype_t type;
} daliasframetype_t;
typedef struct
{
aliasskintype_t type;
skintype_t type;
} daliasskintype_t;
/*

View File

@ -10,9 +10,236 @@
static mesh_t alias_mesh;
static vec3_t alias_mins;
static vec3_t alias_maxs;
static byte alias_mins[3];
static byte alias_maxs[3];
static float alias_radius;
maliashdr_t *pheader;
daliastexcoord_t stverts[MAXALIASVERTS];
mtriangle_t triangles[MAXALIASTRIS];
// a pose is a single set of vertexes. a frame may be an animating sequence of poses
daliastrivertx_t *poseverts[MAXALIASFRAMES];
int posenum;
/*
=================
Mod_FloodFillSkin
Fill background pixels so mipmapping doesn't have haloes - Ed
=================
*/
typedef struct
{
short x, y;
} floodfill_t;
// 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]; \
}
/*
=================
Mod_AliasLoadFrame
=================
*/
void *Mod_AliasLoadFrame( void *pin, maliasframedesc_t *frame )
{
daliastrivertx_t *pinframe;
daliasframe_t *pdaliasframe;
int i;
pdaliasframe = (daliasframe_t *)pin;
com.strncpy( frame->name, pdaliasframe->name, sizeof( frame->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->bboxmin.v[i] = pdaliasframe->bboxmax.v[i];
alias_mins[i] = min( alias_mins[i], frame->bboxmin.v[i] );
alias_maxs[i] = max( alias_maxs[i], frame->bboxmax.v[i] );
}
pinframe = (daliastrivertx_t *)(pdaliasframe + 1);
poseverts[posenum++] = pinframe;
pinframe += pheader->numverts;
return (void *)pinframe;
}
/*
=================
Mod_AliasLoadGroup
=================
*/
void *Mod_AliasLoadGroup( 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->bboxmin.v[i] = pingroup->bboxmax.v[i];
alias_mins[i] = min( alias_mins[i], frame->bboxmin.v[i] );
alias_maxs[i] = max( alias_maxs[i], frame->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; i < numframes; i++ )
{
poseverts[posenum++] = (daliastrivertx_t *)((daliasframe_t *)ptemp + 1);
ptemp = (daliastrivertx_t *)((daliasframe_t *)ptemp + 1) + pheader->numverts;
}
return ptemp;
}
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;
rgbdata_t *pal = FS_LoadImage( "#normal.pal", NULL, 768 ); // null buffer force to get Q1 palette
uint *d_8to24table = (uint *)pal->palette;
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 )) 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;
}
FS_FreeImage( pal );
}
/*
===============
Mod_AliasLoadSkins
===============
*/
void *Mod_AliasLoadSkins( ref_model_t *mod, int numskins, daliasskintype_t *pskintype )
{
int i, j, k, s;
string shadername;
byte *skin;
byte *texels;
int groupskins;
daliasskingroup_t *pinskingroup;
daliasskininterval_t *pinskinintervals;
skin = (byte *)(pskintype + 1);
if( numskins < 1 || numskins > MAX_SKINS )
Host_Error( "Mod_LoadAliasModel: Invalid # of skins: %d\n", numskins );
s = pheader->skinwidth * pheader->skinheight;
for( i = 0; i < numskins; i++ )
{
if( pskintype->type == SKIN_SINGLE )
{
Mod_FloodFillSkin( skin, pheader->skinwidth, pheader->skinheight );
// save 8 bit texels for the player model to remap
texels = Mod_Malloc( mod, s );
pheader->texels[i] = texels - (byte *)pheader;
Mem_Copy( texels, (byte *)(pskintype + 1), s );
com.sprintf( shadername, "%s_%i", mod->name, i );
pheader->skins[i][0] = pheader->skins[i][1] = pheader->skins[i][2] =
pheader->skins[i][3] = R_LoadShader( shadername, SHADER_ALIAS, 0, 0, -1 );
pskintype = (daliasskintype_t *)((byte *)(pskintype + 1) + s );
}
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; j < groupskins; j++ )
{
Mod_FloodFillSkin( skin, pheader->skinwidth, pheader->skinheight );
if( j == 0 )
{
texels = Mod_Malloc( mod, s );
pheader->texels[i] = texels - (byte *)pheader;
Mem_Copy( texels, (byte *)(pskintype), s );
}
com.sprintf( shadername, "%s_%i_%i", mod->name, i, j );
pheader->skins[i][j&3] = R_LoadShader( shadername, SHADER_ALIAS, 0, 0, -1 );
pskintype = (daliasskintype_t *)((byte *)(pskintype) + s );
}
for( k = j; j < 4; j++ )
pheader->skins[i][j&3] = pheader->skins[i][j - k];
}
}
return (void *)pskintype;
}
/*
=================
@ -21,191 +248,116 @@ Mod_QAliasLoadModel
*/
void Mod_QAliasLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buffer )
{
int i, j, k;
int version, framesize;
float skinwidth, skinheight;
int numverts, numelems;
int indremap[MD2_MAX_TRIANGLES*3];
elem_t ptempelem[MD2_MAX_TRIANGLES*3], ptempstelem[MD2_MAX_TRIANGLES*3];
dmd2_t *pinmodel;
dstvert_t *pinst;
dtriangle_t *pintri;
daliasframe_t *pinframe;
elem_t *poutelem;
maliasmodel_t *poutmodel;
maliasmesh_t *poutmesh;
vec2_t *poutcoord;
maliasframe_t *poutframe;
maliasvertex_t *poutvertex;
maliasskin_t *poutskin;
int i, j;
daliashdr_t *pinmodel;
daliastexcoord_t *pinstverts;
daliastriangle_t *pintriangles;
int version, numframes;
int size;
daliasframetype_t *pframetype;
daliasskintype_t *pskintype;
pinmodel = (daliashdr_t *)buffer;
pinmodel = ( dmd2_t * )buffer;
version = LittleLong( pinmodel->version );
framesize = LittleLong( pinmodel->framesize );
if( version != MD2_ALIAS_VERSION )
Com_Error( ERR_DROP, "%s has wrong version number (%i should be %i)",
mod->name, version, MD2_ALIAS_VERSION );
if( version != QALIAS_VERSION )
Host_Error( "%s has wrong version number (%i should be %i)\n", mod->name, version, QALIAS_VERSION );
// allocate space for a working header, plus all the data except the frames,
// skin and group info
size = sizeof( maliashdr_t ) + (LittleLong( pinmodel->numframes ) - 1) * sizeof( pheader->frames[0] );
mod->extradata = pheader = Mod_Malloc( mod, size );
mod->type = mod_alias;
mod->aliasmodel = poutmodel = Mod_Malloc( mod, sizeof( maliasmodel_t ) );
mod->radius = 0;
ClearBounds( mod->mins, mod->maxs );
// byte swap the header fields and sanity check
skinwidth = LittleLong( pinmodel->skinwidth );
skinheight = LittleLong( pinmodel->skinheight );
// endian-adjust and copy the data, starting with the alias model header
pheader->flags = LittleLong( pinmodel->flags );
pheader->boundingradius = LittleFloat( pinmodel->boundingradius );
pheader->numskins = LittleLong( pinmodel->numskins );
pheader->skinwidth = LittleLong( pinmodel->skinwidth );
pheader->skinheight = LittleLong( pinmodel->skinheight );
if( skinwidth <= 0 )
Com_Error( ERR_DROP, "model %s has invalid skin width", mod->name );
if( skinheight <= 0 )
Com_Error( ERR_DROP, "model %s has invalid skin height", mod->name );
if( pheader->skinheight > MAX_LBM_HEIGHT || pheader->skinwidth > MAX_LBM_WIDTH )
Host_Error( "model %s has a skin taller than %dx%d\n", mod->name, MAX_LBM_WIDTH, MAX_LBM_HEIGHT );
poutmodel->numframes = LittleLong( pinmodel->num_frames );
poutmodel->numskins = LittleLong( pinmodel->num_skins );
pheader->numverts = LittleLong( pinmodel->numverts );
if( poutmodel->numframes > MD2_MAX_FRAMES )
Com_Error( ERR_DROP, "model %s has too many frames", mod->name );
else if( poutmodel->numframes <= 0 )
Com_Error( ERR_DROP, "model %s has no frames", mod->name );
if( poutmodel->numskins > MD2_MAX_SKINS )
Com_Error( ERR_DROP, "model %s has too many skins", mod->name );
else if( poutmodel->numskins < 0 )
Com_Error( ERR_DROP, "model %s has invalid number of skins", mod->name );
if( pheader->numverts <= 0 ) Host_Error( "model %s has no vertices\n", mod->name );
if( pheader->numverts > MAXALIASVERTS ) Host_Error( "model %s has too many vertices\n", mod->name );
pheader->numtris = LittleLong( pinmodel->numtris );
if( pheader->numtris <= 0 ) Host_Error( "model %s has no triangles\n", mod->name );
poutmodel->numtags = 0;
poutmodel->tags = NULL;
poutmodel->nummeshes = 1;
pheader->numframes = LittleLong( pinmodel->numframes );
numframes = pheader->numframes;
if( numframes < 1 ) Host_Error( "Mod_LoadAliasModel: Invalid # of frames: %d\n", numframes );
poutmesh = poutmodel->meshes = Mod_Malloc( mod, sizeof( maliasmesh_t ) );
Q_strncpyz( poutmesh->name, "default", MD3_MAX_PATH );
pheader->size = LittleFloat( pinmodel->size ) * (1.0f / 11.0f);
pheader->synctype = LittleLong( pinmodel->synctype );
pheader->numframes = pheader->numframes;
poutmesh->numverts = LittleLong( pinmodel->num_xyz );
poutmesh->numtris = LittleLong( pinmodel->num_tris );
if( poutmesh->numverts <= 0 )
Com_Error( ERR_DROP, "model %s has no vertices", mod->name );
else if( poutmesh->numverts > MD2_MAX_VERTS )
Com_Error( ERR_DROP, "model %s has too many vertices", mod->name );
if( poutmesh->numtris > MD2_MAX_TRIANGLES )
Com_Error( ERR_DROP, "model %s has too many triangles", mod->name );
else if( poutmesh->numtris <= 0 )
Com_Error( ERR_DROP, "model %s has no triangles", mod->name );
numelems = poutmesh->numtris * 3;
poutelem = poutmesh->elems = Mod_Malloc( mod, numelems * sizeof( elem_t ) );
//
// load triangle lists
//
pintri = ( dtriangle_t * )( ( qbyte * )pinmodel + LittleLong( pinmodel->ofs_tris ) );
pinst = ( dstvert_t * ) ( ( qbyte * )pinmodel + LittleLong( pinmodel->ofs_st ) );
for( i = 0, k = 0; i < poutmesh->numtris; i++, k += 3 )
for( i = 0; i < 3; i++ )
{
for( j = 0; j < 3; j++ )
{
ptempelem[k+j] = ( elem_t )LittleShort( pintri[i].index_xyz[j] );
ptempstelem[k+j] = ( elem_t )LittleShort( pintri[i].index_st[j] );
}
pheader->scale[i] = LittleFloat( pinmodel->scale[i] );
pheader->scale_origin[i] = LittleFloat( pinmodel->scale_origin[i] );
pheader->eyeposition[i] = LittleFloat( pinmodel->eyeposition[i] );
}
//
// build list of unique vertexes
//
numverts = 0;
memset( indremap, -1, MD2_MAX_TRIANGLES * 3 * sizeof( int ) );
// load the skins
pskintype = (daliasskintype_t *)&pinmodel[1];
pskintype = Mod_AliasLoadSkins( mod, pheader->numskins, pskintype );
for( i = 0; i < numelems; i++ )
{
if( indremap[i] != -1 )
continue;
// remap duplicates
for( j = i + 1; j < numelems; j++ )
{
if( ( ptempelem[j] == ptempelem[i] )
&& ( pinst[ptempstelem[j]].s == pinst[ptempstelem[i]].s )
&& ( pinst[ptempstelem[j]].t == pinst[ptempstelem[i]].t ) )
{
indremap[j] = i;
poutelem[j] = numverts;
}
}
// add unique vertex
indremap[i] = i;
poutelem[i] = numverts++;
}
Com_DPrintf( "%s: remapped %i verts to %i (%i tris)\n", mod->name, poutmesh->numverts, numverts, poutmesh->numtris );
poutmesh->numverts = numverts;
//
// load base s and t vertices
//
poutcoord = poutmesh->stArray = Mod_Malloc( mod, numverts * sizeof( vec2_t ) );
pinstverts = (daliastexcoord_t *)pskintype;
for( i = 0; i < numelems; i++ )
for( i = 0; i < pheader->numverts; i++ )
{
if( indremap[i] == i )
{
poutcoord[poutelem[i]][0] = ( (float)LittleShort( pinst[ptempstelem[i]].s ) + 0.5 ) / skinwidth;
poutcoord[poutelem[i]][1] = ( (float)LittleShort( pinst[ptempstelem[i]].t ) + 0.5 ) / skinheight;
}
stverts[i].onseam = LittleLong( pinstverts[i].onseam );
stverts[i].s = LittleLong( pinstverts[i].s );
stverts[i].t = LittleLong( pinstverts[i].t );
}
//
// load the frames
//
poutframe = poutmodel->frames = Mod_Malloc( mod, poutmodel->numframes * ( sizeof( maliasframe_t ) + numverts * sizeof( maliasvertex_t ) ) );
poutvertex = poutmesh->vertexes = ( maliasvertex_t *)( ( qbyte * )poutframe + poutmodel->numframes * sizeof( maliasframe_t ) );
// load triangle lists
pintriangles = (daliastriangle_t *)&pinstverts[pheader->numverts];
for( i = 0; i < poutmodel->numframes; i++, poutframe++, poutvertex += numverts )
for( i = 0; i < pheader->numtris; i++)
{
pinframe = ( daliasframe_t * )( ( qbyte * )pinmodel + LittleLong( pinmodel->ofs_frames ) + i * framesize );
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];
alias_mins[0] = alias_mins[1] = alias_mins[2] = 0xFF;
alias_maxs[0] = alias_maxs[1] = alias_maxs[2] = 0x00;
for( i = 0; i < numframes; i++ )
{
poutframe->scale[j] = LittleFloat( pinframe->scale[j] );
poutframe->translate[j] = LittleFloat( pinframe->translate[j] );
}
frametype_t frametype;
for( j = 0; j < numelems; j++ )
{ // verts are all 8 bit, so no swapping needed
if( indremap[j] == j )
frametype = LittleLong( pframetype->type );
switch( frametype )
{
poutvertex[poutelem[j]].point[0] = (short)pinframe->verts[ptempelem[j]].v[0];
poutvertex[poutelem[j]].point[1] = (short)pinframe->verts[ptempelem[j]].v[1];
poutvertex[poutelem[j]].point[2] = (short)pinframe->verts[ptempelem[j]].v[2];
case FRAME_SINGLE:
pframetype = (daliasframetype_t *)Mod_AliasLoadFrame( pframetype+1, &pheader->frames[i] );
break;
case FRAME_GROUP:
pframetype = (daliasframetype_t *)Mod_AliasLoadGroup( pframetype+1, &pheader->frames[i] );
break;
}
if( pframetype == NULL ) break; // technically an error
}
Mod_AliasCalculateVertexNormals( numelems, poutelem, numverts, poutvertex );
pheader->numposes = posenum;
VectorCopy( poutframe->translate, poutframe->mins );
VectorMA( poutframe->translate, 255, poutframe->scale, poutframe->maxs );
poutframe->radius = RadiusFromBounds( poutframe->mins, poutframe->maxs );
mod->radius = max( mod->radius, poutframe->radius );
AddPointToBounds( poutframe->mins, mod->mins, mod->maxs );
AddPointToBounds( poutframe->maxs, mod->mins, mod->maxs );
}
//
// build S and T vectors for frame 0
//
Mod_AliasBuildMeshesForFrame0( mod );
// register all skins
poutskin = poutmodel->skins = Mod_Malloc( mod, poutmodel->numskins * sizeof( maliasskin_t ) );
for( i = 0; i < poutmodel->numskins; i++, poutskin++ )
for( i = 0; i < 3; i++ )
{
if( LittleLong( pinmodel->ofs_skins ) == -1 )
continue;
poutskin->shader = R_RegisterSkin( ( char * )pinmodel + LittleLong( pinmodel->ofs_skins ) + i*MD2_MAX_SKINNAME );
mod->mins[i] = alias_mins[i] * pheader->scale[i] + pheader->scale_origin[i];
mod->maxs[i] = alias_maxs[i] * pheader->scale[i] + pheader->scale_origin[i];
}
mod->radius = RadiusFromBounds( mod->mins, mod->maxs );
mod->touchFrame = tr.registration_sequence; // register model
}

View File

@ -173,6 +173,70 @@ ALIAS MODELS
==============================================================================
*/
#define MAX_SKINS 32
typedef struct
{
int firstpose;
int numposes;
float interval;
daliastrivertx_t bboxmin;
daliastrivertx_t bboxmax;
int frame;
char name[16];
} maliasframedesc_t;
typedef struct
{
daliastrivertx_t bboxmin;
daliastrivertx_t bboxmax;
int frame;
} maliasgroupdesc_t;
typedef struct
{
int numframes;
int intervals;
maliasgroupdesc_t frames[1]; // variable sized
} maliasgroup_t;
typedef struct mtriangle_s
{
int facesfront;
int vertindex[3];
} mtriangle_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;
int numposes;
int poseverts;
int posedata; // numposes*poseverts trivert_t
int commands; // gl command list with embedded s/t
ref_shader_t *skins[MAX_SKINS][4];
int texels[MAX_SKINS]; // only for player skins
maliasframedesc_t frames[1]; // variable sized
} maliashdr_t;
extern maliashdr_t *pheader;
extern daliastexcoord_t stverts[MAXALIASVERTS];
extern mtriangle_t triangles[MAXALIASTRIS];
extern daliastrivertx_t *poseverts[MAXALIASFRAMES];
//
// in memory representation

View File

@ -60,6 +60,7 @@ static texture_t *r_spriteTexture[MAX_STAGE_TEXTURES]; // MAX_FRAMES in sprite
static kRenderMode_t r_spriteRenderMode; // sprite or studiomodel rendermode
static int r_numSpriteTextures; // num textures in group
static float r_spriteFrequency; // sprite group auto-animate
static bool r_spriteTwoSided;
static bool r_shaderNoMipMaps;
static bool r_shaderNoPicMip;
static bool r_shaderNoCompress;
@ -2603,6 +2604,8 @@ void R_InitShaders( void )
// init sprite frames
for( i = 0; i < MAX_STAGE_TEXTURES; i++ )
r_spriteTexture[i] = tr.defaultTexture;
r_spriteTwoSided = 0;
r_spriteFrequency = 0.0f;
r_numSpriteTextures = 0;
r_spriteRenderMode = kRenderNormal;
@ -3438,7 +3441,8 @@ static ref_shader_t *Shader_CreateDefault( ref_shader_t *shader, int type, int a
break;
case SHADER_SPRITE:
shader->type = SHADER_SPRITE;
shader->flags = SHADER_DEPTHWRITE|SHADER_CULL_FRONT|SHADER_RENDERMODE;
shader->flags = SHADER_DEPTHWRITE|SHADER_RENDERMODE;
shader->flags |= (r_spriteTwoSided) ? 0 : SHADER_CULL_FRONT;
shader->features = MF_STCOORDS|MF_COLORS;
shader->num_stages = 1;
shader->name = Shader_Malloc( length + 1 + sizeof( ref_stage_t ) * shader->num_stages );
@ -3757,6 +3761,7 @@ static ref_shader_t *Shader_CreateDefault( ref_shader_t *shader, int type, int a
}
// reset parms
r_spriteTwoSided = 0;
r_numSpriteTextures = 0;
r_spriteFrequency = 0.0f;
r_spriteRenderMode = kRenderNormal;
@ -3904,10 +3909,11 @@ void R_ShaderFreeUnused( void )
}
}
void R_ShaderSetSpriteTexture( texture_t *mipTex )
void R_ShaderSetSpriteTexture( texture_t *mipTex, bool twoSided )
{
if( r_numSpriteTextures >= MAX_STAGE_TEXTURES ) return;
r_spriteTexture[r_numSpriteTextures++] = mipTex;
r_spriteTwoSided = twoSided;
}
void R_ShaderSetRenderMode( kRenderMode_t mode )

View File

@ -354,7 +354,7 @@ void R_ShaderFreeUnused( void );
float R_LookupTable( int tableIndex, float index );
float *R_GetTableByHandle( int tableIndex );
void Shader_TouchImages( ref_shader_t *shader, bool free_unused );
void R_ShaderSetSpriteTexture( texture_t *mipTex );
void R_ShaderSetSpriteTexture( texture_t *mipTex, bool twoSided );
void R_ShaderSetRenderMode( kRenderMode_t mode );
void R_ShaderAddSpriteIntervals( float interval );
void R_UploadCinematicShader( const ref_shader_t *shader );

View File

@ -19,6 +19,7 @@ string frame_prefix;
uint frame_type;
uint group_num;
string sp_name;
bool cull_none = false;
ref_shader_t **frames = NULL;
/*
@ -52,9 +53,9 @@ dframetype_t *R_SpriteLoadFrame( ref_model_t *mod, void *pin, mspriteframe_t **p
tex = R_FindTexture( name, (byte *)pin, pinframe->width * pinframe->height, 0 );
*ppframe = pspriteframe;
R_ShaderSetSpriteTexture( tex );
R_ShaderSetSpriteTexture( tex, cull_none );
if( frame_type == SPR_SINGLE )
if( frame_type == FRAME_SINGLE )
{
com.snprintf( shadername, MAX_STRING, "sprites/%s.spr/%s_%i%i )", sp_name, frame_prefix, framenum/10, framenum%10 );
pspriteframe->shader = R_LoadShader( shadername, SHADER_SPRITE, true, tex->flags, SHADER_INVALID )->shadernum;
@ -91,7 +92,7 @@ dframetype_t *R_SpriteLoadGroup( ref_model_t *mod, void * pin, mspriteframe_t **
{
*poutintervals = LittleFloat( pin_intervals->interval );
if( *poutintervals <= 0.0 ) *poutintervals = 1.0f; // set error value
if( frame_type == SPR_GROUP ) R_ShaderAddSpriteIntervals( *poutintervals );
if( frame_type == FRAME_GROUP ) R_ShaderAddSpriteIntervals( *poutintervals );
poutintervals++;
pin_intervals++;
}
@ -142,6 +143,7 @@ void Mod_SpriteLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buf
psprite->type = LittleLong( pin->type );
psprite->rendermode = LittleLong( pin->texFormat );
psprite->numframes = numframes;
cull_none = (LittleLong( pin->facetype == SPR_CULL_NONE )) ? true : false;
mod->mins[0] = mod->mins[1] = -LittleLong( pin->bounds[0] ) / 2;
mod->maxs[0] = mod->maxs[1] = LittleLong( pin->bounds[0] ) / 2;
mod->mins[2] = -LittleLong( pin->bounds[1] ) / 2;
@ -207,15 +209,15 @@ void Mod_SpriteLoadModel( ref_model_t *mod, ref_model_t *parent, const void *buf
switch( frametype )
{
case SPR_SINGLE:
case FRAME_SINGLE:
com.strncpy( frame_prefix, "one", MAX_STRING );
pframetype = R_SpriteLoadFrame(mod, pframetype + 1, &psprite->frames[i].frameptr, i );
break;
case SPR_GROUP:
case FRAME_GROUP:
com.strncpy( frame_prefix, "grp", MAX_STRING );
pframetype = R_SpriteLoadGroup(mod, pframetype + 1, &psprite->frames[i].frameptr, i );
break;
case SPR_ANGLED:
case FRAME_ANGLED:
com.strncpy( frame_prefix, "ang", MAX_STRING );
pframetype = R_SpriteLoadGroup(mod, pframetype + 1, &psprite->frames[i].frameptr, i );
break;
@ -248,11 +250,11 @@ mspriteframe_t *R_GetSpriteFrame( ref_entity_t *ent )
frame = 0;
}
if( psprite->frames[frame].type == SPR_SINGLE )
if( psprite->frames[frame].type == FRAME_SINGLE )
{
pspriteframe = psprite->frames[frame].frameptr;
}
else if (psprite->frames[frame].type == SPR_GROUP)
else if( psprite->frames[frame].type == FRAME_GROUP )
{
pspritegroup = (mspritegroup_t *)psprite->frames[frame].frameptr;
pintervals = pspritegroup->intervals;
@ -271,7 +273,7 @@ mspriteframe_t *R_GetSpriteFrame( ref_entity_t *ent )
}
pspriteframe = pspritegroup->frames[i];
}
else if( psprite->frames[frame].type == SPR_ANGLED )
else if( psprite->frames[frame].type == FRAME_ANGLED )
{
// e.g. doom-style sprite monsters
int angleframe = (int)((RI.refdef.viewangles[1] - ent->angles[1])/360*8 + 0.5 - 4) & 7;

View File

@ -122,6 +122,10 @@ SOURCE=.\r_alias.c
# End Source File
# Begin Source File
SOURCE=.\r_aliasq.c
# End Source File
# Begin Source File
SOURCE=.\r_backend.c
# End Source File
# Begin Source File

View File

@ -3,100 +3,63 @@
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: render - Win32 Debug--------------------
--------------------Configuration: render - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394C.tmp" with contents
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3B23.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\render\!debug/" /Fo"..\temp\render\!debug/" /Fd"..\temp\render\!debug/" /FD /c
"D:\Xash3D\src_main\render\cin.c"
"D:\Xash3D\src_main\render\r_alias.c"
"D:\Xash3D\src_main\render\r_backend.c"
"D:\Xash3D\src_main\render\r_cull.c"
"D:\Xash3D\src_main\render\r_draw.c"
"D:\Xash3D\src_main\render\r_image.c"
"D:\Xash3D\src_main\render\r_light.c"
"D:\Xash3D\src_main\render\r_main.c"
"D:\Xash3D\src_main\render\r_math.c"
"D:\Xash3D\src_main\render\r_mesh.c"
"D:\Xash3D\src_main\render\r_model.c"
"D:\Xash3D\src_main\render\r_poly.c"
"D:\Xash3D\src_main\render\r_register.c"
"D:\Xash3D\src_main\render\r_shader.c"
"D:\Xash3D\src_main\render\r_shadow.c"
"D:\Xash3D\src_main\render\r_sky.c"
"D:\Xash3D\src_main\render\r_sprite.c"
"D:\Xash3D\src_main\render\r_studio.c"
"D:\Xash3D\src_main\render\r_surf.c"
/nologo /MD /W3 /GX /O2 /I "../public" /I "../common" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fo"..\temp\render\!release/" /Fd"..\temp\render\!release/" /FD /c
"D:\Xash3D\src_main\render\r_aliasq.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394C.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394D.tmp" with contents
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3B23.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3B24.tmp" with contents
[
msvcrtd.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\render\!debug/render.pdb" /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /out:"..\temp\render\!debug/render.dll" /implib:"..\temp\render\!debug/render.lib" /pdbtype:sept
"\Xash3D\src_main\temp\render\!debug\cin.obj"
"\Xash3D\src_main\temp\render\!debug\r_alias.obj"
"\Xash3D\src_main\temp\render\!debug\r_backend.obj"
"\Xash3D\src_main\temp\render\!debug\r_bloom.obj"
"\Xash3D\src_main\temp\render\!debug\r_cin.obj"
"\Xash3D\src_main\temp\render\!debug\r_cull.obj"
"\Xash3D\src_main\temp\render\!debug\r_draw.obj"
"\Xash3D\src_main\temp\render\!debug\r_image.obj"
"\Xash3D\src_main\temp\render\!debug\r_light.obj"
"\Xash3D\src_main\temp\render\!debug\r_main.obj"
"\Xash3D\src_main\temp\render\!debug\r_math.obj"
"\Xash3D\src_main\temp\render\!debug\r_mesh.obj"
"\Xash3D\src_main\temp\render\!debug\r_model.obj"
"\Xash3D\src_main\temp\render\!debug\r_opengl.obj"
"\Xash3D\src_main\temp\render\!debug\r_poly.obj"
"\Xash3D\src_main\temp\render\!debug\r_program.obj"
"\Xash3D\src_main\temp\render\!debug\r_register.obj"
"\Xash3D\src_main\temp\render\!debug\r_shader.obj"
"\Xash3D\src_main\temp\render\!debug\r_shadow.obj"
"\Xash3D\src_main\temp\render\!debug\r_skin.obj"
"\Xash3D\src_main\temp\render\!debug\r_sky.obj"
"\Xash3D\src_main\temp\render\!debug\r_sprite.obj"
"\Xash3D\src_main\temp\render\!debug\r_studio.obj"
"\Xash3D\src_main\temp\render\!debug\r_surf.obj"
msvcrt.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /pdb:none /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\render\!release/render.dll" /implib:"..\temp\render\!release/render.lib" /libpath:"../public/libs/"
"\Xash3D\src_main\temp\render\!release\cin.obj"
"\Xash3D\src_main\temp\render\!release\r_alias.obj"
"\Xash3D\src_main\temp\render\!release\r_backend.obj"
"\Xash3D\src_main\temp\render\!release\r_bloom.obj"
"\Xash3D\src_main\temp\render\!release\r_cin.obj"
"\Xash3D\src_main\temp\render\!release\r_cull.obj"
"\Xash3D\src_main\temp\render\!release\r_draw.obj"
"\Xash3D\src_main\temp\render\!release\r_image.obj"
"\Xash3D\src_main\temp\render\!release\r_light.obj"
"\Xash3D\src_main\temp\render\!release\r_main.obj"
"\Xash3D\src_main\temp\render\!release\r_math.obj"
"\Xash3D\src_main\temp\render\!release\r_mesh.obj"
"\Xash3D\src_main\temp\render\!release\r_model.obj"
"\Xash3D\src_main\temp\render\!release\r_opengl.obj"
"\Xash3D\src_main\temp\render\!release\r_poly.obj"
"\Xash3D\src_main\temp\render\!release\r_program.obj"
"\Xash3D\src_main\temp\render\!release\r_register.obj"
"\Xash3D\src_main\temp\render\!release\r_shader.obj"
"\Xash3D\src_main\temp\render\!release\r_shadow.obj"
"\Xash3D\src_main\temp\render\!release\r_skin.obj"
"\Xash3D\src_main\temp\render\!release\r_sky.obj"
"\Xash3D\src_main\temp\render\!release\r_sprite.obj"
"\Xash3D\src_main\temp\render\!release\r_studio.obj"
"\Xash3D\src_main\temp\render\!release\r_surf.obj"
"\Xash3D\src_main\temp\render\!release\r_aliasq.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394D.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394E.bat" with contents
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3B24.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3B25.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\render\!debug\render.dll "D:\Xash3D\bin\render.dll"
copy \Xash3D\src_main\temp\render\!release\render.dll "D:\Xash3D\bin\render.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP394E.bat"
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3B25.bat"
Compiling...
cin.c
r_alias.c
r_backend.c
r_cull.c
r_draw.c
r_image.c
r_light.c
r_main.c
r_math.c
r_mesh.c
r_model.c
r_poly.c
r_register.c
r_shader.c
r_shadow.c
r_sky.c
r_sprite.c
r_studio.c
r_surf.c
Generating Code...
r_aliasq.c
Linking...
Creating library ..\temp\render\!debug/render.lib and object ..\temp\render\!debug/render.exp
r_model.obj : error LNK2001: unresolved external symbol _Mod_QAliasLoadModel
..\temp\render\!debug/render.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating library ..\temp\render\!release/render.lib and object ..\temp\render\!release/render.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\render\!release\render.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.
<h3>Results</h3>
render.dll - 2 error(s), 0 warning(s)
render.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

View File

@ -16,7 +16,7 @@ fopen
2. ïåðåïèñàòü studiomdl äëÿ èñïîëüçîâàíèÿ VFS
3. èçáàâèòñÿ îò PR_ParseToken\Word â vprogs.dll
Beta 13.12.08
Beta 13.12.09
0. ïîäêëþ÷èòü sv_dll ê ïðîåêòó OK
1. âêëþ÷èòü Think OK
@ -131,3 +131,4 @@ Beta 13.12.08
107. implement shader sorting for rendermodes OK
108. prepare QuArK to Xash-ready OK
109. implement q1 models instead of q3 models
110. loading textures for q1 models

View File

@ -6,39 +6,6 @@
--------------------Configuration: vprogs - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3953.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\vprogs\!debug/" /Fo"..\temp\vprogs\!debug/" /Fd"..\temp\vprogs\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\vprogs\pr_exec.c"
"D:\Xash3D\src_main\vprogs\pr_lex.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3953.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3954.tmp" with contents
[
msvcrtd.lib /nologo /dll /incremental:yes /pdb:"..\temp\vprogs\!debug/vprogs.pdb" /debug /machine:I386 /out:"..\temp\vprogs\!debug/vprogs.dll" /implib:"..\temp\vprogs\!debug/vprogs.lib" /pdbtype:sept
"\Xash3D\src_main\temp\vprogs\!debug\pr_comp.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_edict.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_exec.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_lex.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_main.obj"
"\Xash3D\src_main\temp\vprogs\!debug\pr_utils.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3954.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3955.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\vprogs\!debug\vprogs.dll "D:\Xash3D\bin\vprogs.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3955.bat"
Compiling...
pr_exec.c
pr_lex.c
Generating Code...
Linking...
Creating library ..\temp\vprogs\!debug/vprogs.lib and object ..\temp\vprogs\!debug/vprogs.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\vprogs\!debug\vprogs.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -6,43 +6,6 @@
--------------------Configuration: vsound - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395A.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\vsound\!debug/" /Fo"..\temp\vsound\!debug/" /Fd"..\temp\vsound\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\vsound\s_export.c"
"D:\Xash3D\src_main\vsound\s_load.c"
"D:\Xash3D\src_main\vsound\s_main.c"
"D:\Xash3D\src_main\vsound\s_openal.c"
"D:\Xash3D\src_main\vsound\s_stream.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395A.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395B.tmp" with contents
[
libogg.lib vorbis.lib /nologo /dll /incremental:yes /pdb:"..\temp\vsound\!debug/vsound.pdb" /debug /machine:I386 /nodefaultlib:"libcmt.lib" /out:"..\temp\vsound\!debug/vsound.dll" /implib:"..\temp\vsound\!debug/vsound.lib" /pdbtype:sept
"\Xash3D\src_main\temp\vsound\!debug\s_export.obj"
"\Xash3D\src_main\temp\vsound\!debug\s_load.obj"
"\Xash3D\src_main\temp\vsound\!debug\s_main.obj"
"\Xash3D\src_main\temp\vsound\!debug\s_openal.obj"
"\Xash3D\src_main\temp\vsound\!debug\s_stream.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395B.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395C.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\vsound\!debug\vsound.dll "D:\Xash3D\bin\vsound.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395C.bat"
Compiling...
s_export.c
s_load.c
s_main.c
s_openal.c
s_stream.c
Generating Code...
Linking...
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\vsound\!debug\vsound.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.

View File

@ -446,7 +446,7 @@ bool ConvSPR( const char *name, byte *buffer, size_t filesize, const char *ext )
{
frametype_t frametype = LittleLong( pframetype->type );
if( frametype == SPR_SINGLE )
if( frametype == FRAME_SINGLE )
pframetype = (dframetype_t *)SPR_ConvertFrame( name, ext, (pframetype + 1), i, 0 );
else pframetype = (dframetype_t *)SPR_ConvertGroup( name, ext, (pframetype + 1), i );
}

View File

@ -83,7 +83,7 @@ void WriteSprite( file_t *f )
for (i = 0; i < sprite.numframes; i++)
{
FS_Write( f, &frames[curframe].type, sizeof(frames[curframe].type));
if( frames[curframe].type == SPR_SINGLE )
if( frames[curframe].type == FRAME_SINGLE )
{
// single (non-grouped) frame
WriteFrame( f, curframe );
@ -221,10 +221,9 @@ void Cmd_FaceType( void )
Com_ReadToken( spriteqc, 0, &token );
if( !com.stricmp( token.string, "normal")) sprite.facetype = SPR_SINGLE_FACE;
else if( !com.stricmp( token.string, "twoside")) sprite.facetype = SPR_DOUBLE_FACE;
else if( !com.stricmp( token.string, "xcross")) sprite.facetype = SPR_XCROSS_FACE;
else sprite.facetype = SPR_SINGLE_FACE; // default
if( !com.stricmp( token.string, "normal" )) sprite.facetype = SPR_CULL_FRONT;
else if( !com.stricmp( token.string, "twoside" )) sprite.facetype = SPR_CULL_NONE;
else sprite.facetype = SPR_CULL_FRONT; // default
}
@ -402,7 +401,7 @@ void Cmd_Frame( void )
plump = (byte *)Mem_Alloc( spritepool, sizeof(dspriteframe_t) + (w * h));
pframe = (dspriteframe_t *)plump;
frames[framecount].pdata = plump;
frames[framecount].type = SPR_SINGLE;
frames[framecount].type = FRAME_SINGLE;
pframe->origin[0] = org_x;
pframe->origin[1] = org_y;
@ -464,7 +463,7 @@ void Cmd_Group( bool angled )
groupframe = framecount++;
frames[groupframe].type = angled ? SPR_ANGLED : SPR_GROUP;
frames[groupframe].type = angled ? FRAME_ANGLED : FRAME_GROUP;
need_resample = resample_w = resample_h = 0; // invalidate resample for group
frames[groupframe].numgroupframes = 0;
@ -564,7 +563,7 @@ void ResetSpriteInfo( void )
sprite.ident = IDSPRITEHEADER;
sprite.version = SPRITE_VERSION;
sprite.type = SPR_FWD_PARALLEL;
sprite.facetype = SPR_SINGLE_FACE;
sprite.facetype = SPR_CULL_FRONT;
sprite.synctype = ST_SYNC;
}

View File

@ -6,207 +6,6 @@
--------------------Configuration: xtools - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395E.tmp" with contents
[
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "../public" /I "bsplib" /I "models" /I "ripper" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\xtools\!debug/" /Fo"..\temp\xtools\!debug/" /Fd"..\temp\xtools\!debug/" /FD /GZ /c
"D:\Xash3D\src_main\xtools\bsplib\brush.c"
"D:\Xash3D\src_main\xtools\bsplib\brush_primit.c"
"D:\Xash3D\src_main\xtools\bsplib\bsp.c"
"D:\Xash3D\src_main\xtools\bsplib\bspfile_abstract.c"
"D:\Xash3D\src_main\xtools\bsplib\bspfile_ibsp.c"
"D:\Xash3D\src_main\xtools\bsplib\bspfile_rbsp.c"
"D:\Xash3D\src_main\xtools\bsplib\bsplib.c"
"D:\Xash3D\src_main\xtools\ripper\conv_shader.c"
"D:\Xash3D\src_main\xtools\bsplib\convert_ase.c"
"D:\Xash3D\src_main\xtools\bsplib\convert_map.c"
"D:\Xash3D\src_main\xtools\bsplib\decals.c"
"D:\Xash3D\src_main\xtools\bsplib\facebsp.c"
"D:\Xash3D\src_main\xtools\bsplib\fog.c"
"D:\Xash3D\src_main\xtools\bsplib\image.c"
"D:\Xash3D\src_main\xtools\bsplib\leakfile.c"
"D:\Xash3D\src_main\xtools\bsplib\light.c"
"D:\Xash3D\src_main\xtools\bsplib\light_bounce.c"
"D:\Xash3D\src_main\xtools\bsplib\light_trace.c"
"D:\Xash3D\src_main\xtools\bsplib\light_ydnar.c"
"D:\Xash3D\src_main\xtools\bsplib\lightmaps_ydnar.c"
"D:\Xash3D\src_main\xtools\bsplib\map.c"
"D:\Xash3D\src_main\xtools\bsplib\md5.c"
"D:\Xash3D\src_main\xtools\bsplib\mesh.c"
"D:\Xash3D\src_main\xtools\bsplib\model.c"
"D:\Xash3D\src_main\xtools\bsplib\patch.c"
"D:\Xash3D\src_main\xtools\models\picointernal.c"
"D:\Xash3D\src_main\xtools\models\picomodel.c"
"D:\Xash3D\src_main\xtools\models\picomodules.c"
"D:\Xash3D\src_main\xtools\models\pm_3ds.c"
"D:\Xash3D\src_main\xtools\models\pm_ase.c"
"D:\Xash3D\src_main\xtools\models\pm_fm.c"
"D:\Xash3D\src_main\xtools\models\pm_md2.c"
"D:\Xash3D\src_main\xtools\models\pm_md3.c"
"D:\Xash3D\src_main\xtools\models\pm_mdc.c"
"D:\Xash3D\src_main\xtools\models\pm_ms3d.c"
"D:\Xash3D\src_main\xtools\models\pm_obj.c"
"D:\Xash3D\src_main\xtools\bsplib\polylib.c"
"D:\Xash3D\src_main\xtools\bsplib\portals.c"
"D:\Xash3D\src_main\xtools\bsplib\prtfile.c"
"D:\Xash3D\src_main\xtools\bsplib\shaders.c"
"D:\Xash3D\src_main\xtools\spritegen.c"
"D:\Xash3D\src_main\xtools\studio.c"
"D:\Xash3D\src_main\xtools\studio_utils.c"
"D:\Xash3D\src_main\xtools\bsplib\surface.c"
"D:\Xash3D\src_main\xtools\bsplib\surface_extra.c"
"D:\Xash3D\src_main\xtools\bsplib\surface_foliage.c"
"D:\Xash3D\src_main\xtools\bsplib\surface_fur.c"
"D:\Xash3D\src_main\xtools\bsplib\surface_meta.c"
"D:\Xash3D\src_main\xtools\bsplib\tjunction.c"
"D:\Xash3D\src_main\xtools\bsplib\tree.c"
"D:\Xash3D\src_main\xtools\utils.c"
"D:\Xash3D\src_main\xtools\bsplib\vis.c"
"D:\Xash3D\src_main\xtools\bsplib\visflow.c"
"D:\Xash3D\src_main\xtools\wadlib.c"
"D:\Xash3D\src_main\xtools\bsplib\writebsp.c"
"D:\Xash3D\src_main\xtools\xtools.c"
]
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395E.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395F.tmp" with contents
[
msvcrtd.lib user32.lib /nologo /dll /incremental:yes /pdb:"..\temp\xtools\!debug/xtools.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\xtools\!debug/xtools.dll" /implib:"..\temp\xtools\!debug/xtools.lib" /pdbtype:sept
"\Xash3D\src_main\temp\xtools\!debug\brush.obj"
"\Xash3D\src_main\temp\xtools\!debug\brush_primit.obj"
"\Xash3D\src_main\temp\xtools\!debug\bsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\bspfile_abstract.obj"
"\Xash3D\src_main\temp\xtools\!debug\bspfile_ibsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\bspfile_rbsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\bsplib.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_bsplumps.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_doom.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_image.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_main.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_shader.obj"
"\Xash3D\src_main\temp\xtools\!debug\conv_sprite.obj"
"\Xash3D\src_main\temp\xtools\!debug\convert_ase.obj"
"\Xash3D\src_main\temp\xtools\!debug\convert_map.obj"
"\Xash3D\src_main\temp\xtools\!debug\decals.obj"
"\Xash3D\src_main\temp\xtools\!debug\dpvencoder.obj"
"\Xash3D\src_main\temp\xtools\!debug\facebsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\fog.obj"
"\Xash3D\src_main\temp\xtools\!debug\image.obj"
"\Xash3D\src_main\temp\xtools\!debug\leakfile.obj"
"\Xash3D\src_main\temp\xtools\!debug\light.obj"
"\Xash3D\src_main\temp\xtools\!debug\light_bounce.obj"
"\Xash3D\src_main\temp\xtools\!debug\light_trace.obj"
"\Xash3D\src_main\temp\xtools\!debug\light_ydnar.obj"
"\Xash3D\src_main\temp\xtools\!debug\lightmaps_ydnar.obj"
"\Xash3D\src_main\temp\xtools\!debug\map.obj"
"\Xash3D\src_main\temp\xtools\!debug\md5.obj"
"\Xash3D\src_main\temp\xtools\!debug\mesh.obj"
"\Xash3D\src_main\temp\xtools\!debug\model.obj"
"\Xash3D\src_main\temp\xtools\!debug\patch.obj"
"\Xash3D\src_main\temp\xtools\!debug\picointernal.obj"
"\Xash3D\src_main\temp\xtools\!debug\picomodel.obj"
"\Xash3D\src_main\temp\xtools\!debug\picomodules.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_3ds.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_ase.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_fm.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_md2.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_md3.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_mdc.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_ms3d.obj"
"\Xash3D\src_main\temp\xtools\!debug\pm_obj.obj"
"\Xash3D\src_main\temp\xtools\!debug\polylib.obj"
"\Xash3D\src_main\temp\xtools\!debug\portals.obj"
"\Xash3D\src_main\temp\xtools\!debug\prtfile.obj"
"\Xash3D\src_main\temp\xtools\!debug\shaders.obj"
"\Xash3D\src_main\temp\xtools\!debug\spritegen.obj"
"\Xash3D\src_main\temp\xtools\!debug\studio.obj"
"\Xash3D\src_main\temp\xtools\!debug\studio_utils.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface_extra.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface_foliage.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface_fur.obj"
"\Xash3D\src_main\temp\xtools\!debug\surface_meta.obj"
"\Xash3D\src_main\temp\xtools\!debug\tjunction.obj"
"\Xash3D\src_main\temp\xtools\!debug\tree.obj"
"\Xash3D\src_main\temp\xtools\!debug\utils.obj"
"\Xash3D\src_main\temp\xtools\!debug\vis.obj"
"\Xash3D\src_main\temp\xtools\!debug\visflow.obj"
"\Xash3D\src_main\temp\xtools\!debug\wadlib.obj"
"\Xash3D\src_main\temp\xtools\!debug\writebsp.obj"
"\Xash3D\src_main\temp\xtools\!debug\xtools.obj"
]
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP395F.tmp"
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3960.bat" with contents
[
@echo off
copy \Xash3D\src_main\temp\xtools\!debug\xtools.dll "D:\Xash3D\bin\xtools.dll"
]
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP3960.bat"
Compiling...
brush.c
brush_primit.c
bsp.c
bspfile_abstract.c
bspfile_ibsp.c
bspfile_rbsp.c
bsplib.c
conv_shader.c
convert_ase.c
convert_map.c
decals.c
facebsp.c
fog.c
image.c
leakfile.c
light.c
light_bounce.c
light_trace.c
light_ydnar.c
lightmaps_ydnar.c
Generating Code...
Compiling...
map.c
md5.c
mesh.c
model.c
patch.c
picointernal.c
picomodel.c
picomodules.c
pm_3ds.c
pm_ase.c
pm_fm.c
pm_md2.c
pm_md3.c
pm_mdc.c
pm_ms3d.c
pm_obj.c
polylib.c
portals.c
prtfile.c
shaders.c
Generating Code...
Compiling...
spritegen.c
studio.c
studio_utils.c
surface.c
surface_extra.c
surface_foliage.c
surface_fur.c
surface_meta.c
tjunction.c
tree.c
utils.c
vis.c
visflow.c
wadlib.c
writebsp.c
xtools.c
Generating Code...
Linking...
Creating library ..\temp\xtools\!debug/xtools.lib and object ..\temp\xtools\!debug/xtools.exp
<h3>Output Window</h3>
Performing Custom Build Step on \Xash3D\src_main\temp\xtools\!debug\xtools.dll
‘ª®¯¨à®¢ ­® ä ©«®¢: 1.