[Français]

NEWS
INTRODUCTION
TERMINOLOGY
THE SOURCE CODE
THE BUGS
TUTORIALS
DOWNLOADS
THE AUTHOR

  BEGINNING WITH THE SOURCES: SELECTING USEFUL AVP FILES

In this short tutorial, I'll help you to clean the AvP source files in your directory. It's made for those of you that are a bit curious about what files are used or not when you compile the application, but the main purpose of this is to let you having an idea of AvP GE's past.

1) The source files

When you'll look at the release source code, you'll find different directories with many files in it: each file has a purpose and was made for specific reviews of AvP, ie the demo versions, the AvP version, the AvP with patch version, the AvP Gold Edition version... During all these steps, the 3D motor sees it's capabilities enhanced, passing from a 3D render written in Assembly language through a DirectX interface in C/C++ language. That's why some files aren't used today in this game, even if they're included in the package. We'll now simply see what you can clean from that...

Note: this tutorial whas made in the expectation that you want to build the application in Windows operating system, with DirectX. For those of you that want to modify the sources for a Unix-based operating system, you may need the asm files and C source code that handles it...

2) Destruction initiated... let's clear !!!

First rule when you make such a manipulation: verify that you've got a backup of the files, before destroying anything:
I AM NOT RESPONSIBLE OF WHAT YOU'LL LOOSE IF YOU MAKE A MISTAKE !
Get it ? If you're okay with that, you can continue this tutorial... Here's a list of the files that you can delete safely, and their purpose:
Directory: 3dc\avp\
  • database.c: functions for an old menu system that stores all options on a database.
  • hud_map.c: seems like there was a map in the game, like the old Doom one.
  • menus.c: functions for another old menu system.
  • smovdata.c: contains hard-coded special movements, probably for Non-Playable Characters (NPCs)
  • avpitems.cpp: items handler for the old menu data system.
  • avppages.cpp: handles the old menu screens system (called "pages").
  • projmenu.cpp: old menu code, specific to AvP.
Directory: 3dc\avp\support\
  • rebitems.cpp: another handling system for menu items.
  • rebmenus.cpp: same thing as previous, but for the menus themselves.
Directory: 3dc\avp\win95\
  • multmenu.c: old multiplayer menu system.
  • pcpause.c: handling code for pausing the game.
  • menuplat.cpp: old platform-specific menu fonctions.
Directory: 3dc\win95\
  • cl_init.h: prototype for client video initialisation in software mode.
  • d3load.c: PPM file support with DirectX functions (unknown format).
  • item.c: support for an old rasterisation method, in software mode.
  • krender.c: same thing as above.
  • zbuffer.c: z-buffer handling functions in software mode & DirectX.
  • chnkimag.hpp: old RIFF file handling structure.
  • d3_image.hpp: old image handling structures with DirectX.
  • chnkimag.cpp: old RIFF file handling functions.
  • cl_init.cpp: client video initialisation functions in software mode.
  • d3_image.cpp: old image handling functions with DirectX.
  • mmx_math.asm: MMX optimisations in Assembly render code for the software mode.
  • scandraw.asm: Assembly render code for the software mode.
As you've seen, Linux porting of AvP should use a large part of these files to avoid DirectX architecture...

Here's the end of this short tutorial: I hope that it teaches you a bit more of AvP's past: this great game wasn't made in one version, but gets evolutions to suits the current technologies. That's why, even if the 3D render code isn't the best now, this game isn't so obsolete: all the concepts were here (3D porting, Asm code optimisations to DirectX, new menu systems...), and that's one reason why I appreciate this game.