SDK 1.0 to SDK 2.0 PORTING TIPS

Converting your MOD from the original SDK v. 1.0 to SDK v. 2.0 should take about 2 hours.

First Step:  Back up all of your source code to a safe spot.

Second Step:

Obtain a good directory/file compare utility, such as 'WinDiff' (which comes with MS Dev Studio) or the shareware application 'BeyondCompare', which you can obtain from http://www.scootersoftware.com/beycomp.zip.

Third Step:

As part of the SDK 2.0, we've included the "old" source code for the original SDK in order to allow you to compare the old and new directories to see what has changed.  You should, for each directory in the old SDK sources ( OldSourceCode ), do a directory compare against the files in the new SDK sources.

Most of the changes are isolated or relatively minor, so hand-merging the SDK changes should go relatively quickly.  In many cases, the changes are included in new source files, so you'll just have to copy in those source files.

For files with substantive changes, brief descriptions have been provided to orient you when looking at the code.

Note:  Make sure, if you don't use the .mak and .dsp/.dsw files we've provided with the new SDK, that you have added all of the necessary files to your build and that your include directory search path includes the common/ and pm_shared/ subdirectories.  Also, there are a couple of files ( const.h and cvardef.h ) that were moved from engine/ to common/.  You must delete the copy in engine ( if you edited either file, you need to merge your changes into the new version ) and use the new version in the common/ directory.  Leaving the old files around will almost certainly cause compile problems.


The following is a general list of the changes.

Porting Summary ( Public SDK ):

I. Client DLL

The following files were added:

camera.h
demo.cpp
demo.h
entity.cpp
ev_hldm.cpp
ev_hldm.h
events.cpp
eventscripts.h
hud_iface.h
in_camera.cpp
in_defs.h
input.cpp
inputw32.cpp
kbutton.h
tri.cpp
view.cpp
view.h
wrect.h

The following files had no substantive changes ( minor changes, e.g., the copyright notice was changed ):

ammo.h
ammo_secondary.cpp
ammo_history.cpp
ammohistory.h
battery.cpp
cl_dll.h
flashlight.cpp
geiger.cpp
health.cpp
health.h
hud_msg.cpp
message.cpp
parsemsg.cpp
parsemsg.h
status_icons.h
statusbar.cpp
text_message.cpp
train.cpp
util_vector.h

The following files had substantive changes and will require hand merging

ammo.cpp
cdll_int.cpp
death.cpp
hud.cpp
hud.h
hud_redraw.cpp
hud_update.cpp
menu.cpp
motd.cpp
saytext.cpp
scoreboard.cpp
util.cpp
util.h

II. Game DLL

The following files were added:

none

The following files had no substantive changes ( minor changes, e.g., the copyright notice was changed ):

activity.h
activitymap.h
airtank.cpp
animating.cpp
animation.h
basemonster.h
bmodels.cpp
buttons.cpp
cdll_dll.h
decals.h
doors.cpp
doors.h
effects.cpp
effects.h
explode.cpp
explode.h
func_break.cpp
func_break.h
func_tank.cpp
gamerules.cpp
gamerules.h
ggrenade.cpp
globals.cpp
healthkit.cpp
hornet.cpp
hornet.h
h_ai.cpp
h_battery.cpp
h_export.cpp
items.h
lights.cpp
maprules.cpp
maprules.h
monsterevent.h
monsters.h
mortar.cpp
mpstubb.cpp
nodes.h
pathcorner.cpp
plane.cpp
plane.h
plats.cpp
saverestore.h
schedule.h
scriptevent.h
singleplay_gamerules.cpp
skill.cpp
skill.h
sound.cpp
soundent.cpp
soundent.h
spectator.cpp
spectator.h
subs.cpp
talkmonster.h
teamplay_gamerules.h
trains.h
triggers.cpp
vector.h
xen.cpp

The following files had substantive changes and will require hand merging

animation.cpp
cbase.cpp
cbase.h
client.cpp
client.h
combat.cpp
crossbow.cpp
crowbar.cpp
egon.cpp
enginecallback.h
extdll.h
game.cpp
game.h
gauss.cpp
glock.cpp
h_cycler.cpp
handgrenade.cpp
hornetgun.cpp
items.cpp
mp5.cpp
multiplay_gamerules.cpp
player.cpp
player.h
python.cpp
rpg.cpp
satchel.cpp
shotgun.cpp
squeakgrenade.cpp
teamplay_gamerules.cpp
tripmine.cpp
util.cpp
util.h
weapons.cpp
weapons.h
world.cpp

III. Engine shared files

const.h was moved to common/ and had extensive revisions
cvardef.h was moved to common/ and had extensive revisions

The following files were added:

edict.h
keydefs.h

The following files had no substantive changes ( minor changes, e.g., the copyright notice was changed ):

anorms.h
customentity.h
shake.h
studio.h

The following files had substantive changes and will require hand merging

cdll_int.h
custom.h
eiface.h
progdefs.h
progs.h

IV. Other files:

The files in the common and pm_shared directories are all new ( note const.h and cvardef.h were moved though ).

In addition, the only tools files that had revisions are those in qcsg ( we also added light.exe to the build for fun ).  In addition, we added makefont source in order to allow users to generate new fonts for their systems or MODs.

Porting Summary ( Professional SDK ):

I. Client DLL

The following files were added:

camera.h
demo.cpp
demo.h
entity.cpp
ev_hldm.cpp
ev_hldm.h
events.cpp
eventscripts.h
hud_iface.h
in_camera.cpp
in_defs.h
input.cpp
inputw32.cpp
kbutton.h
tri.cpp
view.cpp
view.h
wrect.h

The following files had no substantive changes ( minor changes, e.g., the copyright notice was changed ):

ammo.h
ammo_secondary.cpp
ammo_history.cpp
ammohistory.h
battery.cpp
cl_dll.h
flashlight.cpp
geiger.cpp
health.cpp
health.h
hud_msg.cpp
message.cpp
parsemsg.cpp
parsemsg.h
status_icons.h
statusbar.cpp
text_message.cpp
train.cpp
util_vector.h

The following files had substantive changes and will require hand merging

ammo.cpp	bug fix in fastswitch code, support for client side predicted weapon selection
cdll_int.cpp			new interfaces, initialization changes
death.cpp			team colored death messages
hud.cpp	memory cleanup, cvar optimizations, new method added
hud.h				MOTD fix, minor changes to interfaces
hud_redraw.cpp		cvar opt., client .dll mouse cursor sample code
hud_update.cpp	code streamlined based on input system moving to .dll
menu.cpp			+key to realname conversion callback added
motd.cpp			MOTD not showing fix
saytext.cpp			extensive revisions
scoreboard.cpp		scoreboard keys hooked here now
util.cpp			additional math utilities added
util.h				math utilities and header cleanup

II. Game DLL

The following files were added:

mpstubb.cpp

The following files had no substantive changes ( minor changes, e.g., the copyright notice was changed ):

activity.h
activitymap.h
aflock.cpp
agrunt.cpp
airtank.cpp
animating.cpp
animation.h
apache.cpp
barnacle.cpp
barney.cpp
basemonster.h
bigmomma.cpp
bloater.cpp
bmodels.cpp
bullsquid.cpp
buttons.cpp
cdll_dll.h
controller.cpp
decals.h
defaultai.cpp
defaultai.h
doors.cpp
doors.h
effects.cpp
effects.h
explode.cpp
explode.h
flyingmonster.cpp
flyingmonster.h
func_break.cpp
func_break.h
func_tank.cpp
gamerules.cpp
gamerules.h
gargantuan.cpp
genericmonster.cpp
ggrenade.cpp
globals.cpp
gman.cpp
healthkit.cpp
hornet.cpp
hornet.h
h_ai.cpp
h_battery.cpp
h_cine.cpp
h_export.cpp
hassasin.cpp
headcrab.cpp
healthkit.cpp
hgrunt.cpp
hornet.cpp
hornet.h
houndeye.cpp
ichthyosaur.cpp
islave.cpp
items.h
leech.cpp
lights.cpp
maprules.cpp
maprules.h
monsterevent.h
monstermaker.cpp
monsters.cpp
monsters.h
mortar.cpp
mpstubb.cpp
nihilanth.cpp
nodes.cpp
nodes.h
osprey.cpp
pathcorner.cpp
plane.cpp
plane.h
plats.cpp
rat.cpp
roach.cpp
saverestore.h
schedule.cpp
schedule.h
scientist.cpp
scripted.cpp
scripted.h
scriptevent.h
singleplay_gamerules.cpp
skill.cpp
skill.h
sound.cpp
soundent.cpp
soundent.h
spectator.cpp
spectator.h
squademonster.cpp
squadmonster.h
subs.cpp
talkmonster.cpp
talkmonster.h
teamplay_gamerules.h
tempmonster.cpp
tentacle.cpp
trains.h
triggers.cpp
turret.cpp
vector.h
xen.cpp
zombie.cpp

The following files had substantive changes and will require hand merging

animation.cpp			header file cleanup
cbase.cpp			new interfaces added
cbase.h				Linux compatibility issue
client.cpp	Sys_Error breakpoint callback added, entity filtering, setup, etc. functionality added at bottom of file
client.h				New interfaces
combat.cpp			Cleanup
crossbow.cpp			prototype changes
crowbar.cpp			prototype changes
egon.cpp			prototype changes
enginecallback.h		new interfaces
extdll.h			headers changed
game.cpp	mp_timeleft and mp_fragsleft cvars added, global cvars setup
game.h				global cvars setup
gauss.cpp			event system changes - good complex example
glock.cpp			event system changes
h_cycler.cpp			prototype changes
handgrenade.cpp		prototype changes
hornetgun.cpp			prototype changes
items.cpp			superlongjump prediction changes
mp5.cpp			event system changes
multiplay_gamerules.cpp	mp_timeleft and mp_fragsleft cvars, more robust mapcycle handlers
player.cpp	physics fixes to ducking, water, crouching, step sounds (all  moved to pm_shared )
player.h			removed CheckWaterJump()
python.cpp			event system changes, prototype changes
rpg.cpp			prototype changes
satchel.cpp			prototype changes
shotgun.cpp			prototype changes
squeakgrenade.cpp		prototype changes
teamplay_gamerules.cpp	mp_timeleft and mp_fragsleft cvars
tripmine.cpp			prototype changes
util.cpp			parametric rocket util function, trace group setup
util.h				event system macros, trace group prototypes
weapons.cpp	prototype changes, fix for weapon data spamming, predicted weapon message filtering
weapons.h			prototypes changed
world.cpp	precache ricochet sounds (since they are in the client .dll now)

III. Engine shared files

const.h was moved to common/ and had extensive revisions
cvardef.h was moved to common/ and had extensive revisions

The following files were added:

edict.h
keydefs.h
anorms.h

The following files had no substantive changes ( minor changes, e.g., the copyright notice was changed ):

customentity.h
shake.h
studio.h

The following files had substantive changes and will require hand merging

cdll_int.h			New interfaces added, starts after pfnCenterPrint )
custom.h			header cleanup
eiface.h			new interfaces added
progdefs.h			entvars_t extended
progs.h	event system additions, entity_state_t etc. moved to common/*.h

IV. Other files:

The files in the common and pm_shared directories are all new ( note const.h and cvardef.h were moved though ).

In addition, the only tools files that had revisions are those in qcsg ( we also added light.exe to the build for fun ).  In addition, we added makefont source in order to allow users to generate new fonts for their systems or MODs.
