==================================================
Open Jedi Project Cooperative Gametype Information
==================================================

========================
0000 - Table of Contents
========================

	0000..................Converting ICARUS scripts to work with MP
	0001..................Map Names
	0002..................Cvars
	0003..................AutoSave/Spawnpoint CoOp Editor



================================================
0000 - Converting ICARUS scripts to work with MP
================================================

Basically, what we're doing here is changing the format for the camera calls so that the MP ICARUS scripting can read it.  Unfortunately, the ability to fix the issue without doing this would require the full engine code, which we are not going to get.

Materials Required:
- JKA SDK (specifically the source ICARUS files and the BehaveED)
- a simple text editor

What To Do:

What we're doing is converting the camera function calls from camera () to set ().  This is very easy.  All you gotta do is copy the first part of a set () onto the first part of a camera ().

For example, this...
camera ( /*@CAMERA_COMMANDS*/ MOVE, $tag( "endcam1", ORIGIN)$, 0 );
Becomes this...
set ( /*@SET_TYPES*/ "MOVE, $tag( "endcam1", ORIGIN)$, 0 );

NOTE:  For you non-programmers out there, the stuff inside /**/ (like /*@CAMERA_COMMANDS*/ or /*@SET_TYPES*/) are just code comments.  They don't matter to the scripting.

The second step is to add quotes to the camera action type (PAN/MOVE/FADE/etc).
set ( /*@SET_TYPES*/ [b]"[/b]MOVE[b]"[/b], $tag( "endcam1", ORIGIN)$, 0 );

The third step is to add quotes around all of the camera settings data.  What this is doing is converting all of it into a single data string to be processed by the game.
set ( /*@SET_TYPES*/ "MOVE", [b]"[/b]$tag( "endcam1", ORIGIN)$, 0[b]"[/b] );

The final step is to remove any internal quotes that are inside your single data string [i]for the camera sets only[/i].  If you don't, you'll have the ICARUS compiler erroring about too many parameters.  In this case, we're removing the quotes about the entity name in the tag.
set ( /*@SET_TYPES*/ "MOVE", "$tag( endcam1, ORIGIN)$, 0" );

NOTE:  Do not alter the tags on sets that aren't camera functions that you converted.  You'll totally break the tag system for everything other than cameras.

NOTE:  ENABLE and DISABLE camera commands do require a value.  I normally just use "1" but it doesn't matter what you use.
set ( /*@SET_TYPES*/ "ENABLE", "1" );

That's all you gotta do in terms of editing.  From there, you need to save the file into .txt format and then use BehavED to compile the script.  If you get compile errors, you screwed something up.  Feel free to post questions if you have troubles but please be sure to include the exact compiler error.



================
0001 - Map Names
================

Jedi Knight Academy Singleplayer Maps:
yavin1b - start level

t1_fatal - bomb mission
t1_danger - Sand Creature mission
t1_inter - intermission cutscene
t1_rail - rail train mission
t1_sour - Chewbacca mission


Jedi Knight Outcast Singleplayer Maps:
kejim_post - start level
kejim_base
artus_mine
artus_detention - Rescue the Miners
artus_topside - Save the Miners
villey - Valley of the Jedi cutscene
yavin_temple - Yavin Temple explore
yavin_trail - Yavin Training/Trail
ns_streets - Start of Nar Shadda mission/First Jedi level
ns_hideout - Nar Shaddaa - Reelo's Hideout



========================
0001 - Special Code Tags
========================

ROQFILES - Support for playing ROQ files ingame.
NPCSandCreature - The SP AI port of all the code related to the Sand Creature NPC.  The Sand Creature NPC doesn't work without this code.



============
0002 - Cvars
============

	ojp_skipcutscenes 0
	Multiplayer, OJP, CoOp

	Description:
		Controls how cutscenes in CoOp mode are skipped.

		0 = not at all
		1 = automatically use skip scripts if possible.  Skip scripts exist for most of the major cutscenes.
		2 = automatically use skip scripts and time acceleration
		3 = toggleable use (player's use key) of skip scripts
		4 = toggleable use of skip scripts and time acceleration



======================================
0003 - AutoSave/Spawnpoint CoOp Editor
======================================

	To resolve some issues with preexisting maps and the multiplayer CoOp enviroment, we're created a handy ingame editor that allows you to create additional spawnpoints and autosave locations.

	To activate the editor, simply start up the map with the bot waypoint editor activated (bot_wp_edit 1).

	While in the editor, manually created spawnpoints look like small vertical tick marks and manually created autosave points look like large diangle lines.  


	/autosave_add [t] <size>
	Description:
		Adds an autosave point at the player's current position.  The 't' flag sets the autosave point to be a teleporting autosave.  IE, this makes all players to be transported to the autosave, like in Halo.  <size> overrides the default size of the autosave area (the default value is 30).  In terms of game scale, 10 game units = 1 foot.  

		Giving a size of -1 will create a spawnpoint at the current location instead of an autosave point.  Additional spawnpoints are useful for maps that don't have enough space for multiple players spawning at the beginning of the level.

		Examples:
			/autosave_add t 70 - This command would create a teleporting autosave that is 7 foot across.
			/autosave_add -1 - This command would create a spawnpoint.


	/autosave_delete
	Description:
		This command will delete all the manually added spawnpoints and autosave positions that the player is currently touching.


	/autosave_save
	Description:
		This command saves all the current custom autosave/spawnpoint data to an .autosp file for this map.  This file will be automatically loaded the next time this map is run.
