diff -uwr source/AntiSpawnKill/AntiSpawnKill.cpp 4.0/source/AntiSpawnKill/AntiSpawnKill.cpp
--- source/AntiSpawnKill/AntiSpawnKill.cpp	2011-05-16 06:52:10.000000000 +0800
+++ 4.0/source/AntiSpawnKill/AntiSpawnKill.cpp	2011-10-11 21:31:00.611328100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "AntiSpawnKill.h"
 #include "gmgame.h"
diff -uwr source/AntiSpawnKill/AntiSpawnKill.h 4.0/source/AntiSpawnKill/AntiSpawnKill.h
--- source/AntiSpawnKill/AntiSpawnKill.h	2011-05-16 06:52:10.000000000 +0800
+++ 4.0/source/AntiSpawnKill/AntiSpawnKill.h	2011-10-11 21:30:50.349609300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/AntiSpawnKill/General.cpp 4.0/source/AntiSpawnKill/General.cpp
--- source/AntiSpawnKill/General.cpp	2011-05-16 06:52:10.000000000 +0800
+++ 4.0/source/AntiSpawnKill/General.cpp	2011-10-11 21:30:57.386718700 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/AntiSpawnKill/General.h 4.0/source/AntiSpawnKill/General.h
--- source/AntiSpawnKill/General.h	2011-05-16 06:52:10.000000000 +0800
+++ 4.0/source/AntiSpawnKill/General.h	2011-10-11 21:30:53.005859300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef ANTISPAWNKILL_INCLUDE__GENERAL_H
 #define ANTISPAWNKILL_INCLUDE__GENERAL_H
 
diff -uwr source/CTF/CTF.cpp 4.0/source/CTF/CTF.cpp
--- source/CTF/CTF.cpp	2011-04-30 09:22:40.000000000 +0800
+++ 4.0/source/CTF/CTF.cpp	2011-10-11 21:33:14.455078100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "engine_tt.h"
 #include "gmplugin.h"
@@ -9,11 +20,6 @@
 #include "PowerupGameObjDef.h"
 GameObject *CTFController = 0;
 
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
-{
-	return HookupAT3(a,b,c,patch_start,patch_end,version_selector);
-}
-
 char *CTFIcons[4][2] = {
 	//{Model,Animation},
 	{"",""},
diff -uwr source/CTF/General.cpp 4.0/source/CTF/General.cpp
--- source/CTF/General.cpp	2009-04-12 11:51:52.000000000 +0800
+++ 4.0/source/CTF/General.cpp	2011-10-11 21:33:17.512695300 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/CTF/General.h 4.0/source/CTF/General.h
--- source/CTF/General.h	2011-03-08 09:52:50.000000000 +0800
+++ 4.0/source/CTF/General.h	2011-10-11 21:33:19.672851500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef CTF_INCLUDE__GENERAL_H
 #define CTF_INCLUDE__GENERAL_H
 
diff -uwr source/CharacterRefund/CharacterRefund.cpp 4.0/source/CharacterRefund/CharacterRefund.cpp
--- source/CharacterRefund/CharacterRefund.cpp	2011-05-16 06:52:12.000000000 +0800
+++ 4.0/source/CharacterRefund/CharacterRefund.cpp	2011-10-11 21:32:22.065429600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "CharacterRefund.h"
 #include "gmgame.h"
diff -uwr source/CharacterRefund/CharacterRefund.h 4.0/source/CharacterRefund/CharacterRefund.h
--- source/CharacterRefund/CharacterRefund.h	2011-05-16 06:52:12.000000000 +0800
+++ 4.0/source/CharacterRefund/CharacterRefund.h	2011-10-11 21:32:24.538085900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/CharacterRefund/General.cpp 4.0/source/CharacterRefund/General.cpp
--- source/CharacterRefund/General.cpp	2011-05-16 06:52:12.000000000 +0800
+++ 4.0/source/CharacterRefund/General.cpp	2011-10-11 21:32:30.015625000 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/CharacterRefund/General.h 4.0/source/CharacterRefund/General.h
--- source/CharacterRefund/General.h	2011-05-16 06:52:12.000000000 +0800
+++ 4.0/source/CharacterRefund/General.h	2011-10-11 21:32:39.133789000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef CHARACTERREFUND_INCLUDE__GENERAL_H
 #define CHARACTERREFUND_INCLUDE__GENERAL_H
 
diff -uwr source/ExtraConsoleCommands/ExtraConsoleCommands.cpp 4.0/source/ExtraConsoleCommands/ExtraConsoleCommands.cpp
--- source/ExtraConsoleCommands/ExtraConsoleCommands.cpp	2011-09-03 08:29:28.000000000 +0800
+++ 4.0/source/ExtraConsoleCommands/ExtraConsoleCommands.cpp	2011-10-11 21:33:41.248046800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "ExtraConsoleCommands.h"
 #include "gmgame.h"
@@ -7,11 +18,6 @@
 #include "gmlog.h"
 #include "engine_tt.h"
 
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
-{
-	return HookupAT3(a,b,c,patch_start,patch_end,version_selector);
-}
-
 static int getClientIdByIdentifier(const char* clientIdentifier)
 {
 	assert(clientIdentifier);
diff -uwr source/ExtraConsoleCommands/ExtraConsoleCommands.h 4.0/source/ExtraConsoleCommands/ExtraConsoleCommands.h
--- source/ExtraConsoleCommands/ExtraConsoleCommands.h	2011-05-05 12:16:32.000000000 +0800
+++ 4.0/source/ExtraConsoleCommands/ExtraConsoleCommands.h	2011-10-11 21:33:43.795898400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/ExtraConsoleCommands/General.cpp 4.0/source/ExtraConsoleCommands/General.cpp
--- source/ExtraConsoleCommands/General.cpp	2011-05-05 12:16:32.000000000 +0800
+++ 4.0/source/ExtraConsoleCommands/General.cpp	2011-10-11 21:33:48.186523400 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/ExtraConsoleCommands/General.h 4.0/source/ExtraConsoleCommands/General.h
--- source/ExtraConsoleCommands/General.h	2011-05-05 12:16:32.000000000 +0800
+++ 4.0/source/ExtraConsoleCommands/General.h	2011-10-11 21:33:51.072265600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef EXTRACONSOLECOMMANDS_INCLUDE__GENERAL_H
 #define EXTRACONSOLECOMMANDS_INCLUDE__GENERAL_H
 
diff -uwr source/FirstBlood/FirstBlood.cpp 4.0/source/FirstBlood/FirstBlood.cpp
--- source/FirstBlood/FirstBlood.cpp	2011-08-14 12:11:24.000000000 +0800
+++ 4.0/source/FirstBlood/FirstBlood.cpp	2011-10-11 21:34:04.078125000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "FirstBlood.h"
 #include "gmgame.h"
diff -uwr source/FirstBlood/FirstBlood.h 4.0/source/FirstBlood/FirstBlood.h
--- source/FirstBlood/FirstBlood.h	2011-05-01 09:07:06.000000000 +0800
+++ 4.0/source/FirstBlood/FirstBlood.h	2011-10-11 21:34:06.557617100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/FirstBlood/General.cpp 4.0/source/FirstBlood/General.cpp
--- source/FirstBlood/General.cpp	2011-05-01 09:07:06.000000000 +0800
+++ 4.0/source/FirstBlood/General.cpp	2011-10-11 21:34:10.270507800 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/FirstBlood/General.h 4.0/source/FirstBlood/General.h
--- source/FirstBlood/General.h	2011-05-01 09:07:06.000000000 +0800
+++ 4.0/source/FirstBlood/General.h	2011-10-11 21:34:13.104492100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef FIRSTBLOOD_INCLUDE__GENERAL_H
 #define FIRSTBLOOD_INCLUDE__GENERAL_H
 
diff -uwr source/MemoryManager/DList.h 4.0/source/MemoryManager/DList.h
--- source/MemoryManager/DList.h	2009-02-22 13:46:56.000000000 +0800
+++ 4.0/source/MemoryManager/DList.h	2011-10-11 21:34:30.287109300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _DLIST_H_
 #define _DLIST_H_
 
diff -uwr source/MemoryManager/FastAllocator.cpp 4.0/source/MemoryManager/FastAllocator.cpp
--- source/MemoryManager/FastAllocator.cpp	2009-02-23 06:13:50.000000000 +0800
+++ 4.0/source/MemoryManager/FastAllocator.cpp	2011-10-11 21:34:45.250976500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "FastAllocator.h"
 
 #pragma warning(push)
diff -uwr source/MemoryManager/FastAllocator.h 4.0/source/MemoryManager/FastAllocator.h
--- source/MemoryManager/FastAllocator.h	2009-11-28 16:45:24.000000000 +0800
+++ 4.0/source/MemoryManager/FastAllocator.h	2011-10-11 21:34:48.965820300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 // Do you know what you are doing?
 // No? Then don't touch this file.
 #ifndef _FASTALLOCATOR_H_
diff -uwr source/MemoryManager/FastCriticalSection.h 4.0/source/MemoryManager/FastCriticalSection.h
--- source/MemoryManager/FastCriticalSection.h	2009-02-22 13:46:56.000000000 +0800
+++ 4.0/source/MemoryManager/FastCriticalSection.h	2011-10-11 21:34:52.241210900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _FASTCRITICALSECTION_H_
 #define _FASTCRITICALSECTION_H_
 #include "platform.h"
diff -uwr source/MemoryManager/MemTracker.cpp 4.0/source/MemoryManager/MemTracker.cpp
--- source/MemoryManager/MemTracker.cpp	2010-07-03 21:14:58.000000000 +0800
+++ 4.0/source/MemoryManager/MemTracker.cpp	2011-10-11 21:35:07.162109300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #define _CRT_SECURE_NO_WARNINGS
 #include <string.h>
 #define WIN32_LEAN_AND_MEAN
diff -uwr source/MemoryManager/MemTracker.h 4.0/source/MemoryManager/MemTracker.h
--- source/MemoryManager/MemTracker.h	2010-07-04 10:26:08.000000000 +0800
+++ 4.0/source/MemoryManager/MemTracker.h	2011-10-11 21:35:09.731445300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _MEMTRACKER_H_
 #define _MEMTRACKER_H_
 
diff -uwr source/MemoryManager/MemoryManager.h 4.0/source/MemoryManager/MemoryManager.h
--- source/MemoryManager/MemoryManager.h	2009-11-09 18:57:16.000000000 +0800
+++ 4.0/source/MemoryManager/MemoryManager.h	2011-10-11 21:34:54.516601500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _MEMORYMANAGER_H_
 #define _MEMORYMANAGER_H_
 
diff -uwr source/MemoryManager/MemoryManager_debug.cpp 4.0/source/MemoryManager/MemoryManager_debug.cpp
--- source/MemoryManager/MemoryManager_debug.cpp	2009-11-09 18:57:16.000000000 +0800
+++ 4.0/source/MemoryManager/MemoryManager_debug.cpp	2011-10-14 22:25:11.906250000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "platform.h"
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
@@ -11,10 +22,7 @@
 
 void CheckMemoryManagerConfiguration(int32 config)
 {
-	if (config != MEMORYMANAGER_DEBUGCONFIGURATION)
-	{
-		MessageBoxW(NULL, L"This is a friendly warning to remind you that running the debug-mode memory manager with release-mode executables is not recommended and may cause unexpected results.", L"MemoryManager.dll", MB_OK | MB_ICONWARNING);
-	};
+	UNUSED_VARIABLE(config);
 };
 
 void SetThreadTrackingInformation(const char* file, unsigned int line, const char* function)
diff -uwr source/MemoryManager/MemoryManager_release.cpp 4.0/source/MemoryManager/MemoryManager_release.cpp
--- source/MemoryManager/MemoryManager_release.cpp	2009-11-09 18:57:16.000000000 +0800
+++ 4.0/source/MemoryManager/MemoryManager_release.cpp	2011-10-13 07:20:31.701171800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "platform.h"
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
@@ -21,21 +32,15 @@
 	UNUSED_VARIABLE(file);
 	UNUSED_VARIABLE(line);
 	UNUSED_VARIABLE(function);
-	// If you reach this breakpoint, you have a DLL that's expecting a debug version of this DLL. 
-	Breakpoint();
 };
 
 void PushAllocationTag(const char* tag)
 {
 	UNUSED_VARIABLE(tag);
-	// If you reach this breakpoint, you have a DLL that's expecting a debug version of this DLL. 
-	Breakpoint();
 };
 
 void PopAllocationTag()
 {
-	// If you reach this breakpoint, you have a DLL that's expecting a debug version of this DLL. 
-	Breakpoint();
 };
 
 DECLSPEC_RESTRICT void* AllocateMemory(size_t size)
@@ -49,8 +54,6 @@
 	UNUSED_VARIABLE(file);
 	UNUSED_VARIABLE(line);
 	UNUSED_VARIABLE(function);
-	// If you reach this breakpoint, you have a DLL that's expecting a debug version of this DLL. 
-	Breakpoint();
 	return FastAllocatorGeneral::Get_Allocator()->Allocate(size);
 };
 
@@ -64,8 +67,6 @@
 	UNUSED_VARIABLE(file);
 	UNUSED_VARIABLE(line);
 	UNUSED_VARIABLE(function);
-	// If you reach this breakpoint, you have a DLL that's expecting a debug version of this DLL. 
-	Breakpoint();
 	return FastAllocatorGeneral::Get_Allocator()->Reallocate(memory, new_size);
 };
 
@@ -80,8 +81,6 @@
 	UNUSED_VARIABLE(file);
 	UNUSED_VARIABLE(line);
 	UNUSED_VARIABLE(function);
-	// If you reach this breakpoint, you have a DLL that's expecting a debug version of this DLL. 
-	Breakpoint();
 	FastAllocatorGeneral::Get_Allocator()->Free(memory);
 };
 
@@ -99,7 +98,6 @@
 {
 	UNUSED_VARIABLE(file);
 	UNUSED_VARIABLE(line);
-	// If you reach this breakpoint, you have a DLL that's expecting a debug version of this DLL. 
 	return FastAllocatorGeneral::Get_Allocator()->Allocate(size);
 };
 
diff -uwr source/MemoryManager/TSList.h 4.0/source/MemoryManager/TSList.h
--- source/MemoryManager/TSList.h	2009-02-22 13:46:56.000000000 +0800
+++ 4.0/source/MemoryManager/TSList.h	2011-10-11 21:35:16.153320300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _TSLIST_H_
 #define _TSLIST_H_
 
diff -uwr source/MemoryManager/dllmain_debug.cpp 4.0/source/MemoryManager/dllmain_debug.cpp
--- source/MemoryManager/dllmain_debug.cpp	2009-02-22 13:46:56.000000000 +0800
+++ 4.0/source/MemoryManager/dllmain_debug.cpp	2011-10-11 21:34:39.789062500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "platform.h"
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
diff -uwr source/MemoryManager/dllmain_release.cpp 4.0/source/MemoryManager/dllmain_release.cpp
--- source/MemoryManager/dllmain_release.cpp	2009-02-22 13:46:56.000000000 +0800
+++ 4.0/source/MemoryManager/dllmain_release.cpp	2011-10-11 21:34:42.166015600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "platform.h"
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
diff -uwr source/MemoryManager/platform.h 4.0/source/MemoryManager/platform.h
--- source/MemoryManager/platform.h	2009-02-22 13:46:56.000000000 +0800
+++ 4.0/source/MemoryManager/platform.h	2011-10-13 07:20:31.724609300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _PLATFORM_WIN32_H_
 #define _PLATFORM_WIN32_H_
 
@@ -26,7 +37,6 @@
 #endif
 
 inline void YieldThread() { _mm_pause(); };
-inline void Breakpoint() { __debugbreak(); };
 #define DECLSPEC_ALIGN(alignment)	__declspec(align(alignment))
 #define DECLSPEC_RESTRICT			__declspec(restrict)
 
diff -uwr source/Mute/General.cpp 4.0/source/Mute/General.cpp
--- source/Mute/General.cpp	2009-04-12 11:51:52.000000000 +0800
+++ 4.0/source/Mute/General.cpp	2011-10-11 21:35:29.833984300 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/Mute/General.h 4.0/source/Mute/General.h
--- source/Mute/General.h	2011-04-19 12:25:00.000000000 +0800
+++ 4.0/source/Mute/General.h	2011-10-11 21:35:32.416015600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef MUTE_INCLUDE__GENERAL_H
 #define MUTE_INCLUDE__GENERAL_H
 
diff -uwr source/Mute/Mute.cpp 4.0/source/Mute/Mute.cpp
--- source/Mute/Mute.cpp	2011-09-03 08:29:30.000000000 +0800
+++ 4.0/source/Mute/Mute.cpp	2011-10-11 21:35:34.633789000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "Mute.h"
 #include "gmgame.h"
@@ -7,11 +18,6 @@
 
 bool MutedPlayers[128];
 
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
-{
-	return HookupAT3(a,b,c,patch_start,patch_end,version_selector);
-}
-
 static int getClientIdByIdentifier(const char* clientIdentifier)
 {
 	assert(clientIdentifier);
diff -uwr source/Mute/Mute.h 4.0/source/Mute/Mute.h
--- source/Mute/Mute.h	2011-04-19 12:23:28.000000000 +0800
+++ 4.0/source/Mute/Mute.h	2011-10-11 21:35:37.324218700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/NoPoints/General.cpp 4.0/source/NoPoints/General.cpp
--- source/NoPoints/General.cpp	2011-05-15 21:11:06.000000000 +0800
+++ 4.0/source/NoPoints/General.cpp	2011-10-11 21:35:42.979492100 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/NoPoints/General.h 4.0/source/NoPoints/General.h
--- source/NoPoints/General.h	2011-05-15 21:11:06.000000000 +0800
+++ 4.0/source/NoPoints/General.h	2011-10-11 21:35:47.187500000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef NOPOINTS_INCLUDE__GENERAL_H
 #define NOPOINTS_INCLUDE__GENERAL_H
 
diff -uwr source/NoPoints/NoPoints.cpp 4.0/source/NoPoints/NoPoints.cpp
--- source/NoPoints/NoPoints.cpp	2011-05-15 21:11:06.000000000 +0800
+++ 4.0/source/NoPoints/NoPoints.cpp	2011-10-11 21:35:52.521484300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "NoPoints.h"
 #include "gmgame.h"
diff -uwr source/NoPoints/NoPoints.h 4.0/source/NoPoints/NoPoints.h
--- source/NoPoints/NoPoints.h	2011-05-15 21:11:06.000000000 +0800
+++ 4.0/source/NoPoints/NoPoints.h	2011-10-11 21:35:55.698242100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/PointsDistribution/DamagePoints.cpp 4.0/source/PointsDistribution/DamagePoints.cpp
--- source/PointsDistribution/DamagePoints.cpp	2011-05-29 07:19:48.000000000 +0800
+++ 4.0/source/PointsDistribution/DamagePoints.cpp	2011-10-11 21:36:03.346679600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "DamagePoints.h"
 
diff -uwr source/PointsDistribution/DamagePoints.h 4.0/source/PointsDistribution/DamagePoints.h
--- source/PointsDistribution/DamagePoints.h	2011-04-30 20:39:10.000000000 +0800
+++ 4.0/source/PointsDistribution/DamagePoints.h	2011-10-11 21:36:05.802734300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/PointsDistribution/General.cpp 4.0/source/PointsDistribution/General.cpp
--- source/PointsDistribution/General.cpp	2011-04-30 20:39:10.000000000 +0800
+++ 4.0/source/PointsDistribution/General.cpp	2011-10-11 21:36:08.245117100 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/PointsDistribution/General.h 4.0/source/PointsDistribution/General.h
--- source/PointsDistribution/General.h	2011-04-30 20:39:10.000000000 +0800
+++ 4.0/source/PointsDistribution/General.h	2011-10-11 21:36:10.525390600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef POINTSDISTRIBUTION_INCLUDE__GENERAL_H
 #define POINTSDISTRIBUTION_INCLUDE__GENERAL_H
 
diff -uwr source/PointsDistribution/PointsDistribution.cpp 4.0/source/PointsDistribution/PointsDistribution.cpp
--- source/PointsDistribution/PointsDistribution.cpp	2011-05-29 07:19:48.000000000 +0800
+++ 4.0/source/PointsDistribution/PointsDistribution.cpp	2011-10-11 21:36:13.567382800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "PointsDistribution.h"
 #include "DamagePoints.h"
diff -uwr source/PointsDistribution/PointsDistribution.h 4.0/source/PointsDistribution/PointsDistribution.h
--- source/PointsDistribution/PointsDistribution.h	2011-04-30 20:41:00.000000000 +0800
+++ 4.0/source/PointsDistribution/PointsDistribution.h	2011-10-11 21:36:16.415039000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/Spectate/General.cpp 4.0/source/Spectate/General.cpp
--- source/Spectate/General.cpp	2011-04-30 07:44:54.000000000 +0800
+++ 4.0/source/Spectate/General.cpp	2011-10-11 22:59:30.343750000 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/Spectate/General.h 4.0/source/Spectate/General.h
--- source/Spectate/General.h	2011-04-30 07:44:54.000000000 +0800
+++ 4.0/source/Spectate/General.h	2011-10-11 23:03:07.676757800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef SPECTATE_INCLUDE__GENERAL_H
 #define SPECTATE_INCLUDE__GENERAL_H
 
diff -uwr source/Spectate/Spectate.cpp 4.0/source/Spectate/Spectate.cpp
--- source/Spectate/Spectate.cpp	2011-09-03 08:34:54.000000000 +0800
+++ 4.0/source/Spectate/Spectate.cpp	2011-10-11 23:03:06.380859300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "Spectate.h"
 #include "gmgame.h"
@@ -6,11 +17,8 @@
 #include "engine_tt.h"
 #include "SoldierGameObj.h"
 #include "WeaponBagClass.h"
-
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
-{
-	return HookupAT3(a,b,c,patch_start,patch_end,version_selector);
-}
+#include "engine_weap.h"
+#include "engine_obj2.h"
 
 static int getClientIdByIdentifier(const char* clientIdentifier)
 {
@@ -93,7 +101,12 @@
 			else
 			{
 				double speed = arguments.getDouble();
-				Get_GameObj(clientId)->As_SoldierGameObj()->Set_Max_Speed((float)speed);
+				GameObject *obj = Get_GameObj(clientId);
+				int team = Get_Team(Get_Player_ID(obj));
+				if(team == -4)
+				{
+					obj->As_SoldierGameObj()->Set_Max_Speed((float)speed);
+				}
 			}
 		}
 	}
@@ -152,6 +165,11 @@
 		Commands->Set_Is_Visible(soldier,false);
 		Commands->Set_Is_Rendered(soldier,false);
 		Commands->Set_Shield_Type(soldier,"Blamo");
+		Disarm_All_C4_Beacons(id);
+		if (soldier->Get_Vehicle())
+		{
+			Soldier_Transition_Vehicle(soldier);
+		}
 		for (SLNode<cPlayer>* PlayerIter = Get_Player_List()->Head(); (PlayerIter != NULL); PlayerIter = PlayerIter->Next())
 		{
 			cPlayer *p = PlayerIter->Data();
diff -uwr source/Spectate/Spectate.h 4.0/source/Spectate/Spectate.h
--- source/Spectate/Spectate.h	2011-08-30 17:14:06.000000000 +0800
+++ 4.0/source/Spectate/Spectate.h	2011-10-11 23:03:04.958007800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/SuddenDeath/General.cpp 4.0/source/SuddenDeath/General.cpp
--- source/SuddenDeath/General.cpp	2011-05-22 10:13:38.000000000 +0800
+++ 4.0/source/SuddenDeath/General.cpp	2011-10-11 23:03:03.414062500 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/SuddenDeath/General.h 4.0/source/SuddenDeath/General.h
--- source/SuddenDeath/General.h	2011-08-12 06:53:48.000000000 +0800
+++ 4.0/source/SuddenDeath/General.h	2011-10-11 23:03:02.121093700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef SUDDENDEATH_INCLUDE__GENERAL_H
 #define SUDDENDEATH_INCLUDE__GENERAL_H
 
diff -uwr source/SuddenDeath/SuddenDeath.cpp 4.0/source/SuddenDeath/SuddenDeath.cpp
--- source/SuddenDeath/SuddenDeath.cpp	2011-09-03 08:29:28.000000000 +0800
+++ 4.0/source/SuddenDeath/SuddenDeath.cpp	2011-10-11 23:03:00.555664000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "SuddenDeath.h"
 #include "gmgame.h"
@@ -7,11 +18,6 @@
 #include "VehicleGameObj.h"
 #include "engine_tt.h"
 
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
-{
-	return HookupAT3(a,b,c,patch_start,patch_end,version_selector);
-}
-
 static int getClientIdByIdentifier(const char* clientIdentifier)
 {
 	assert(clientIdentifier);
diff -uwr source/SuddenDeath/SuddenDeath.h 4.0/source/SuddenDeath/SuddenDeath.h
--- source/SuddenDeath/SuddenDeath.h	2011-05-24 19:05:46.000000000 +0800
+++ 4.0/source/SuddenDeath/SuddenDeath.h	2011-10-11 23:02:56.741210900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/bansystem/BanList.cpp 4.0/source/bansystem/BanList.cpp
--- source/bansystem/BanList.cpp	2010-07-09 18:38:52.000000000 +0800
+++ 4.0/source/bansystem/BanList.cpp	2011-10-11 21:31:10.989257800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "BanList.h"
 
diff -uwr source/bansystem/BanList.h 4.0/source/bansystem/BanList.h
--- source/bansystem/BanList.h	2010-07-09 18:38:52.000000000 +0800
+++ 4.0/source/bansystem/BanList.h	2011-10-11 21:31:13.936523400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "engine_string.h"
diff -uwr source/bansystem/BanListStore.cpp 4.0/source/bansystem/BanListStore.cpp
--- source/bansystem/BanListStore.cpp	2011-04-11 15:36:20.000000000 +0800
+++ 4.0/source/bansystem/BanListStore.cpp	2011-10-11 21:31:21.316406200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "BanListStore.h"
 
diff -uwr source/bansystem/BanListStore.h 4.0/source/bansystem/BanListStore.h
--- source/bansystem/BanListStore.h	2010-07-09 18:38:52.000000000 +0800
+++ 4.0/source/bansystem/BanListStore.h	2011-10-11 21:31:24.902343700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "BanList.h"
diff -uwr source/bansystem/BanSystem.h 4.0/source/bansystem/BanSystem.h
--- source/bansystem/BanSystem.h	2010-12-08 05:52:08.000000000 +0800
+++ 4.0/source/bansystem/BanSystem.h	2011-10-11 21:31:30.105468700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/bansystem/General.cpp 4.0/source/bansystem/General.cpp
--- source/bansystem/General.cpp	2009-04-12 11:51:52.000000000 +0800
+++ 4.0/source/bansystem/General.cpp	2011-10-11 21:31:35.141601500 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/bansystem/General.h 4.0/source/bansystem/General.h
--- source/bansystem/General.h	2011-03-08 09:51:40.000000000 +0800
+++ 4.0/source/bansystem/General.h	2011-10-11 21:31:44.972656200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef BANSYSTEM_INCLUDE__GENERAL_H
 #define BANSYSTEM_INCLUDE__GENERAL_H
 
diff -uwr source/bansystem/IpAddress.cpp 4.0/source/bansystem/IpAddress.cpp
--- source/bansystem/IpAddress.cpp	2010-07-09 18:38:52.000000000 +0800
+++ 4.0/source/bansystem/IpAddress.cpp	2011-10-11 21:31:48.376953100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "IpAddress.h"
 
diff -uwr source/bansystem/IpAddress.h 4.0/source/bansystem/IpAddress.h
--- source/bansystem/IpAddress.h	2010-07-09 18:38:52.000000000 +0800
+++ 4.0/source/bansystem/IpAddress.h	2011-10-11 21:31:50.869140600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 class StringClass;
diff -uwr source/bansystem/bansystem.cpp 4.0/source/bansystem/bansystem.cpp
--- source/bansystem/bansystem.cpp	2011-09-03 08:29:34.000000000 +0800
+++ 4.0/source/bansystem/bansystem.cpp	2011-10-11 21:31:27.529296800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "BanSystem.h"
 #include "CommandLineParser.h"
@@ -6,11 +17,6 @@
 #include "engine_tt.h"
 #include "gmgame.h"
 
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
-{
-	return HookupAT3(a,b,c,patch_start,patch_end,version_selector);
-}
-
 static int getClientIdByIdentifier(const char* clientIdentifier)
 {
 	assert(clientIdentifier);
Only in 4.0/source/bin: Debug
Only in 4.0/source/bin: Release
Only in source/bin: release
diff -uwr source/crates/General.cpp 4.0/source/crates/General.cpp
--- source/crates/General.cpp	2009-04-12 11:51:52.000000000 +0800
+++ 4.0/source/crates/General.cpp	2011-10-11 21:32:51.656250000 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/crates/General.h 4.0/source/crates/General.h
--- source/crates/General.h	2011-03-08 09:52:30.000000000 +0800
+++ 4.0/source/crates/General.h	2011-10-11 21:33:04.559570300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef CRATES_INCLUDE__GENERAL_H
 #define CRATES_INCLUDE__GENERAL_H
 
diff -uwr source/crates/crates.cpp 4.0/source/crates/crates.cpp
--- source/crates/crates.cpp	2011-08-17 19:55:54.000000000 +0800
+++ 4.0/source/crates/crates.cpp	2011-10-11 21:32:46.643554600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "engine_tt.h"
 #include "gmplugin.h"
@@ -7,10 +18,6 @@
 #include "PurchaseSettingsDefClass.h"
 #include "PowerupGameObj.h"
 #include "PowerupGameObjDef.h"
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
-{
-	return HookupAT3(a,b,c,patch_start,patch_end,version_selector);
-}
 
 class Crate : public Plugin
 {
diff -uwr source/example-plugin/ExamplePlugin.cpp 4.0/source/example-plugin/ExamplePlugin.cpp
--- source/example-plugin/ExamplePlugin.cpp	2011-04-28 08:45:42.000000000 +0800
+++ 4.0/source/example-plugin/ExamplePlugin.cpp	2011-10-11 21:33:27.709960900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "ExamplePlugin.h"
 #include "engine_tt.h"
diff -uwr source/example-plugin/ExamplePlugin.h 4.0/source/example-plugin/ExamplePlugin.h
--- source/example-plugin/ExamplePlugin.h	2011-04-28 08:41:42.000000000 +0800
+++ 4.0/source/example-plugin/ExamplePlugin.h	2011-10-11 21:33:30.496093700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/example-plugin/General.cpp 4.0/source/example-plugin/General.cpp
--- source/example-plugin/General.cpp	2009-04-12 11:51:52.000000000 +0800
+++ 4.0/source/example-plugin/General.cpp	2011-10-11 21:33:33.573242100 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/example-plugin/General.h 4.0/source/example-plugin/General.h
--- source/example-plugin/General.h	2011-04-28 07:58:30.000000000 +0800
+++ 4.0/source/example-plugin/General.h	2011-10-11 21:33:35.815429600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef EXAMPLEPLUGIN_INCLUDE__GENERAL_H
 #define EXAMPLEPLUGIN_INCLUDE__GENERAL_H
 
Only in 4.0/source: makemix
diff -uwr source/randomstartingcredits/General.cpp 4.0/source/randomstartingcredits/General.cpp
--- source/randomstartingcredits/General.cpp	2011-04-30 07:44:54.000000000 +0800
+++ 4.0/source/randomstartingcredits/General.cpp	2011-10-11 21:36:23.619140600 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/randomstartingcredits/General.h 4.0/source/randomstartingcredits/General.h
--- source/randomstartingcredits/General.h	2011-04-30 07:44:54.000000000 +0800
+++ 4.0/source/randomstartingcredits/General.h	2011-10-11 21:36:26.301757800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef RANDOMSTARTINGCREDITS_INCLUDE__GENERAL_H
 #define RANDOMSTARTINGCREDITS_INCLUDE__GENERAL_H
 
diff -uwr source/randomstartingcredits/RandomStartingCredits.cpp 4.0/source/randomstartingcredits/RandomStartingCredits.cpp
--- source/randomstartingcredits/RandomStartingCredits.cpp	2011-04-30 07:44:54.000000000 +0800
+++ 4.0/source/randomstartingcredits/RandomStartingCredits.cpp	2011-10-11 21:36:29.291015600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "RandomStartingCredits.h"
 #include "gmgame.h"
diff -uwr source/randomstartingcredits/RandomStartingCredits.h 4.0/source/randomstartingcredits/RandomStartingCredits.h
--- source/randomstartingcredits/RandomStartingCredits.h	2011-04-30 07:49:06.000000000 +0800
+++ 4.0/source/randomstartingcredits/RandomStartingCredits.h	2011-10-11 21:36:31.619140600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
diff -uwr source/scripts/AABTreeCull.h 4.0/source/scripts/AABTreeCull.h
--- source/scripts/AABTreeCull.h	2011-02-25 09:39:28.000000000 +0800
+++ 4.0/source/scripts/AABTreeCull.h	2011-10-11 21:36:51.353515600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_AABTREECULL_H
 #define TT_INCLUDE_AABTREECULL_H
 #include "cullsystemclass.h"
diff -uwr source/scripts/AABoxClass.h 4.0/source/scripts/AABoxClass.h
--- source/scripts/AABoxClass.h	2011-05-30 11:01:48.000000000 +0800
+++ 4.0/source/scripts/AABoxClass.h	2011-10-11 21:36:48.701171800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__AABOXCLASS_H
 #define TT_INCLUDE__AABOXCLASS_H
 
diff -uwr source/scripts/AAPlaneClass.h 4.0/source/scripts/AAPlaneClass.h
--- source/scripts/AAPlaneClass.h	2009-11-09 18:47:58.000000000 +0800
+++ 4.0/source/scripts/AAPlaneClass.h	2011-10-11 21:36:53.529296800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_AAPLANECLASS_H
 #define TT_INCLUDE_AAPLANECLASS_H
 
diff -uwr source/scripts/AirFactoryGameObj.h 4.0/source/scripts/AirFactoryGameObj.h
--- source/scripts/AirFactoryGameObj.h	2011-06-14 19:04:26.000000000 +0800
+++ 4.0/source/scripts/AirFactoryGameObj.h	2011-10-21 09:32:28.004882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__AIRFACTORYGAMEOBJ_H
 #define TT_INCLUDE__AIRFACTORYGAMEOBJ_H
 #include "BuildingGameObj.h"
@@ -18,9 +29,11 @@
 	void					CnC_Initialize (BaseControllerClass *base);
 	void					On_Destroyed (void);
 	void					Think (void);
-	bool					Is_Available (void) const	{ return (IsBusy == false) && (IsDestroyed == false); }
+	bool					Is_Available (void) const	{ return (IsBusy == false) && (IsDestroyed == false) && (IsDisabled == false); }
 	bool					Is_Available_For_Purchase (void) const;
 	bool					Is_Busy (void) const			{ return IsBusy; }
+	bool					Is_Disabled (void) const			{ return IsDisabled; }
+	void					Set_Disabled(bool disabled)         { IsDisabled = disabled; Set_Object_Dirty_Bit (BIT_RARE, true);}
 	int					Get_Team_Vehicle_Count(void) const; 
 	static void			Set_Max_Vehicles_Per_Team(int max)		{ MaxVehiclesPerTeam = max; }
 	static int			Get_Max_Vehicles_Per_Team(void)			{ return MaxVehiclesPerTeam; }
@@ -35,6 +48,7 @@
 	ReferencerClass	Purchaser;
 	DynamicVectorClass<PhysicalGameObj *> LandingPositions;
 	int CurrentLandingPosition;
+	int IsDisabled;
 	static int MaxVehiclesPerTeam;
 };
 
diff -uwr source/scripts/AirFactoryGameObjDef.h 4.0/source/scripts/AirFactoryGameObjDef.h
--- source/scripts/AirFactoryGameObjDef.h	2011-06-14 17:00:00.000000000 +0800
+++ 4.0/source/scripts/AirFactoryGameObjDef.h	2011-10-11 21:37:09.316406200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__AIRFACTORYGAMEOBJDEF_H
 #define TT_INCLUDE__AIRFACTORYGAMEOBJDEF_H
 #include "BuildingGameObjDef.h"
diff -uwr source/scripts/AirStripGameObj.h 4.0/source/scripts/AirStripGameObj.h
--- source/scripts/AirStripGameObj.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/AirStripGameObj.h	2011-10-11 21:37:11.875976500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__AIRSTRIPGAMEOBJ_H
 #define TT_INCLUDE__AIRSTRIPGAMEOBJ_H
 
diff -uwr source/scripts/AirStripGameObjDef.h 4.0/source/scripts/AirStripGameObjDef.h
--- source/scripts/AirStripGameObjDef.h	2010-06-14 15:32:48.000000000 +0800
+++ 4.0/source/scripts/AirStripGameObjDef.h	2011-10-11 21:37:14.416992100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__AIRSTRIPGAMEOBJDEF_H
 #define TT_INCLUDE__AIRSTRIPGAMEOBJDEF_H
 
diff -uwr source/scripts/AnimCollisionManagerClass.h 4.0/source/scripts/AnimCollisionManagerClass.h
--- source/scripts/AnimCollisionManagerClass.h	2011-05-21 16:58:52.000000000 +0800
+++ 4.0/source/scripts/AnimCollisionManagerClass.h	2011-10-11 21:37:17.276367100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__ANIMCOLLISIONMANAGERCLASS_H
 #define TT_INCLUDE__ANIMCOLLISIONMANAGERCLASS_H
 
diff -uwr source/scripts/AnimControlClass.h 4.0/source/scripts/AnimControlClass.h
--- source/scripts/AnimControlClass.h	2009-06-07 15:47:12.000000000 +0800
+++ 4.0/source/scripts/AnimControlClass.h	2011-10-11 21:37:20.073242100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__ANIMCONTROLCLASS_H
 #define TT_INCLUDE__ANIMCONTROLCLASS_H
 
diff -uwr source/scripts/ArmedGameObj.h 4.0/source/scripts/ArmedGameObj.h
--- source/scripts/ArmedGameObj.h	2010-04-10 14:55:26.000000000 +0800
+++ 4.0/source/scripts/ArmedGameObj.h	2011-10-11 21:37:23.454101500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_ARMEDGAMEOBJ_H
 #define TT_INCLUDE_ARMEDGAMEOBJ_H
 #include "PhysicalGameObj.h"
diff -uwr source/scripts/ArmedGameObjDef.h 4.0/source/scripts/ArmedGameObjDef.h
--- source/scripts/ArmedGameObjDef.h	2011-05-22 02:48:46.000000000 +0800
+++ 4.0/source/scripts/ArmedGameObjDef.h	2011-10-11 21:37:26.043945300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_ARMEDGAMEOBJDEF_H
 #define TT_INCLUDE_ARMEDGAMEOBJDEF_H
 #include "PhysicalGameObjDef.h"
diff -uwr source/scripts/ArmorWarheadManager.h 4.0/source/scripts/ArmorWarheadManager.h
--- source/scripts/ArmorWarheadManager.h	2011-08-25 16:17:14.000000000 +0800
+++ 4.0/source/scripts/ArmorWarheadManager.h	2011-10-11 21:57:50.799804600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__ARMORWARHEADMANAGER_H
 #define TT_INCLUDE__ARMORWARHEADMANAGER_H
 #include "engine_string.h"
diff -uwr source/scripts/AudibleSoundClass.h 4.0/source/scripts/AudibleSoundClass.h
--- source/scripts/AudibleSoundClass.h	2011-05-24 09:46:02.000000000 +0800
+++ 4.0/source/scripts/AudibleSoundClass.h	2011-10-11 21:57:47.343750000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__AUDIBLESOUNDCLASS_H
 #define TT_INCLUDE__AUDIBLESOUNDCLASS_H
 
@@ -145,7 +156,7 @@
   virtual void                Allocate_Miles_Handle   ();
   virtual SoundBufferClass*   Get_Buffer              () const;
   virtual SoundBufferClass*   Peek_Buffer             () const;
-  virtual void                Set_Buffer              (SoundBufferClass* buffer);
+  SHADERS_API virtual void                Set_Buffer              (SoundBufferClass* buffer);
   virtual void                Restart_Loop            ();
   virtual void                Update_Play_Position    ();
   virtual void                On_Loop_End             ();
diff -uwr source/scripts/AudibleSoundDefinitionClass.cpp 4.0/source/scripts/AudibleSoundDefinitionClass.cpp
--- source/scripts/AudibleSoundDefinitionClass.cpp	2011-05-24 09:57:26.000000000 +0800
+++ 4.0/source/scripts/AudibleSoundDefinitionClass.cpp	2011-10-11 23:04:16.190429600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "AudibleSoundDefinitionClass.h"
 #include "SimpleDefinitionFactoryClass.h"
diff -uwr source/scripts/AudibleSoundDefinitionClass.h 4.0/source/scripts/AudibleSoundDefinitionClass.h
--- source/scripts/AudibleSoundDefinitionClass.h	2011-05-22 02:18:50.000000000 +0800
+++ 4.0/source/scripts/AudibleSoundDefinitionClass.h	2011-10-11 21:57:45.827148400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__AUDIBLESOUNDDEFINITIONCLASS_H
 #define TT_INCLUDE__AUDIBLESOUNDDEFINITIONCLASS_H
 
diff -uwr source/scripts/AudioCallbackListClass.h 4.0/source/scripts/AudioCallbackListClass.h
--- source/scripts/AudioCallbackListClass.h	2008-12-07 21:51:00.000000000 +0800
+++ 4.0/source/scripts/AudioCallbackListClass.h	2011-10-11 21:57:43.373046800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__AUDIOCALLBACKLISTCLASS_H
 #define TT_INCLUDE__AUDIOCALLBACKLISTCLASS_H
 
diff -uwr source/scripts/BaseControllerClass.h 4.0/source/scripts/BaseControllerClass.h
--- source/scripts/BaseControllerClass.h	2011-06-13 22:29:48.000000000 +0800
+++ 4.0/source/scripts/BaseControllerClass.h	2011-10-11 21:57:41.484375000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_BASECONTROLLERCLASS_H
 #define TT_INCLUDE_BASECONTROLLERCLASS_H
 #include "NetworkObjectClass.h"
diff -uwr source/scripts/BaseGameObj.h 4.0/source/scripts/BaseGameObj.h
--- source/scripts/BaseGameObj.h	2011-07-30 16:49:44.000000000 +0800
+++ 4.0/source/scripts/BaseGameObj.h	2011-10-11 21:57:39.558593700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_BASEGAMEOBJ_H
 #define TT_INCLUDE_BASEGAMEOBJ_H
 #include "NetworkObjectClass.h"
diff -uwr source/scripts/BaseGameObjDef.h 4.0/source/scripts/BaseGameObjDef.h
--- source/scripts/BaseGameObjDef.h	2009-12-24 19:48:10.000000000 +0800
+++ 4.0/source/scripts/BaseGameObjDef.h	2011-10-11 21:57:37.723632800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_BASEGAMEOBJDEF_H
 #define TT_INCLUDE_BASEGAMEOBJDEF_H
 #include "Definition.h"
diff -uwr source/scripts/BeaconGameObj.h 4.0/source/scripts/BeaconGameObj.h
--- source/scripts/BeaconGameObj.h	2011-09-04 13:49:10.000000000 +0800
+++ 4.0/source/scripts/BeaconGameObj.h	2011-10-11 21:57:36.038085900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_BEACONGAMEOBJ_H
 #define TT_INCLUDE_BEACONGAMEOBJ_H
 #include "SimpleGameObj.h"
diff -uwr source/scripts/BeaconGameObjDef.h 4.0/source/scripts/BeaconGameObjDef.h
--- source/scripts/BeaconGameObjDef.h	2011-09-04 17:08:20.000000000 +0800
+++ 4.0/source/scripts/BeaconGameObjDef.h	2011-10-11 21:57:34.518554600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_BEACONGAMEOBJDEF_H
 #define TT_INCLUDE_BEACONGAMEOBJDEF_H
 #include "SimpleGameObjDef.h"
diff -uwr source/scripts/BufferedFileClass.h 4.0/source/scripts/BufferedFileClass.h
--- source/scripts/BufferedFileClass.h	2009-03-06 08:12:10.000000000 +0800
+++ 4.0/source/scripts/BufferedFileClass.h	2011-10-11 21:57:32.974609300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_BUFFEREDFILECLASS_H
 #define TT_INCLUDE_BUFFEREDFILECLASS_H
 
diff -uwr source/scripts/BuildingAggregateClass.h 4.0/source/scripts/BuildingAggregateClass.h
--- source/scripts/BuildingAggregateClass.h	2010-06-29 23:05:56.000000000 +0800
+++ 4.0/source/scripts/BuildingAggregateClass.h	2011-10-11 21:57:31.206054600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "StaticAnimPhysClass.h"
diff -uwr source/scripts/BuildingGameObj.h 4.0/source/scripts/BuildingGameObj.h
--- source/scripts/BuildingGameObj.h	2011-06-12 18:40:48.000000000 +0800
+++ 4.0/source/scripts/BuildingGameObj.h	2011-10-11 21:57:29.629882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__BUILDINGGAMEOBJ_H
 #define TT_INCLUDE__BUILDINGGAMEOBJ_H
 
diff -uwr source/scripts/BuildingGameObjDef.h 4.0/source/scripts/BuildingGameObjDef.h
--- source/scripts/BuildingGameObjDef.h	2011-06-12 18:50:44.000000000 +0800
+++ 4.0/source/scripts/BuildingGameObjDef.h	2011-10-11 21:57:27.790039000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__BUILDINGGAMEOBJDEF_H
 #define TT_INCLUDE__BUILDINGGAMEOBJDEF_H
 
diff -uwr source/scripts/C4GameObj.h 4.0/source/scripts/C4GameObj.h
--- source/scripts/C4GameObj.h	2011-05-10 16:30:22.000000000 +0800
+++ 4.0/source/scripts/C4GameObj.h	2011-10-11 21:57:26.085937500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_C4GAMEOBJ_H
 #define TT_INCLUDE_C4GAMEOBJ_H
 #include "SimpleGameObj.h"
diff -uwr source/scripts/C4GameObjDef.h 4.0/source/scripts/C4GameObjDef.h
--- source/scripts/C4GameObjDef.h	2009-12-24 19:46:48.000000000 +0800
+++ 4.0/source/scripts/C4GameObjDef.h	2011-10-11 21:57:24.221679600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_C4GAMEOBJDEF_H
 #define TT_INCLUDE_C4GAMEOBJDEF_H
 #include "SimpleGameObjDef.h"
diff -uwr source/scripts/CastResultStruct.h 4.0/source/scripts/CastResultStruct.h
--- source/scripts/CastResultStruct.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/CastResultStruct.h	2011-10-11 21:57:16.009765600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__CASTRESULTSTRUCT_H
 #define TT_INCLUDE__CASTRESULTSTRUCT_H
 #include "Vector3.h"
diff -uwr source/scripts/ChunkClass.h 4.0/source/scripts/ChunkClass.h
--- source/scripts/ChunkClass.h	2010-05-31 13:27:28.000000000 +0800
+++ 4.0/source/scripts/ChunkClass.h	2011-10-11 21:57:12.363281200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_CHUNKCLASS_H
 #define TT_INCLUDE_CHUNKCLASS_H
 #include "engine_string.h"
diff -uwr source/scripts/ChunkClasses.cpp 4.0/source/scripts/ChunkClasses.cpp
--- source/scripts/ChunkClasses.cpp	2010-08-25 19:02:46.000000000 +0800
+++ 4.0/source/scripts/ChunkClasses.cpp	2011-10-11 23:04:11.090820300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "ChunkClass.h"
 #include "engine_io.h"
diff -uwr source/scripts/CinematicGameObj.h 4.0/source/scripts/CinematicGameObj.h
--- source/scripts/CinematicGameObj.h	2010-08-18 20:47:44.000000000 +0800
+++ 4.0/source/scripts/CinematicGameObj.h	2011-10-11 21:57:10.641601500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_CINEMATICGAMEOBJ_H
 #define TT_INCLUDE_CINEMATICGAMEOBJ_H
 
diff -uwr source/scripts/CinematicGameObjDef.h 4.0/source/scripts/CinematicGameObjDef.h
--- source/scripts/CinematicGameObjDef.h	2009-12-24 19:56:44.000000000 +0800
+++ 4.0/source/scripts/CinematicGameObjDef.h	2011-10-11 21:57:08.957031200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_CINEMATICGAMEOBJDEF_H
 #define TT_INCLUDE_CINEMATICGAMEOBJDEF_H
 #include "ArmedGameObjDef.h"
@@ -10,7 +21,7 @@
 	bool Load(ChunkLoadClass &cload);
 	uint32 Get_Class_ID() const;
 	PersistClass *Create() const;
-	DECLARE_EDITABLE( SimpleGameObjDef, PhysicalGameObjDef );
+	DECLARE_EDITABLE( CinematicGameObjDef, ArmedGameObjDef );
 private:
 	int SoundDefID;
 	StringClass SoundBoneName;
diff -uwr source/scripts/CollisionMath.h 4.0/source/scripts/CollisionMath.h
--- source/scripts/CollisionMath.h	2011-04-25 16:19:10.000000000 +0800
+++ 4.0/source/scripts/CollisionMath.h	2011-10-11 21:57:06.893554600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__COLLISIONMATH_H
 #define TT_INCLUDE__COLLISIONMATH_H
 #include "CastResultStruct.h"
diff -uwr source/scripts/ComCenterGameObj.h 4.0/source/scripts/ComCenterGameObj.h
--- source/scripts/ComCenterGameObj.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/ComCenterGameObj.h	2011-10-11 21:56:58.881835900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_COMCENTERGAMEOBJ_H
 #define TT_INCLUDE_COMCENTERGAMEOBJ_H
 #include "BuildingGameObj.h"
diff -uwr source/scripts/ComCenterGameObjDef.h 4.0/source/scripts/ComCenterGameObjDef.h
--- source/scripts/ComCenterGameObjDef.h	2009-12-24 19:55:34.000000000 +0800
+++ 4.0/source/scripts/ComCenterGameObjDef.h	2011-10-11 21:56:57.004882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_COMCENTERGAMEOBJDEF_H
 #define TT_INCLUDE_COMCENTERGAMEOBJDEF_H
 #include "BuildingGameObjDef.h"
diff -uwr source/scripts/CombatManager.h 4.0/source/scripts/CombatManager.h
--- source/scripts/CombatManager.h	2010-07-03 22:26:24.000000000 +0800
+++ 4.0/source/scripts/CombatManager.h	2011-10-11 21:57:00.750000000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__COMBATMANAGER_H
 #define TT_INCLUDE__COMBATMANAGER_H
 #include "engine_string.h"
diff -uwr source/scripts/CommandLineParser.cpp 4.0/source/scripts/CommandLineParser.cpp
--- source/scripts/CommandLineParser.cpp	2010-07-09 18:38:52.000000000 +0800
+++ 4.0/source/scripts/CommandLineParser.cpp	2011-10-11 23:04:07.527343700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "CommandLineParser.h"
 
diff -uwr source/scripts/CommandLineParser.h 4.0/source/scripts/CommandLineParser.h
--- source/scripts/CommandLineParser.h	2011-08-12 06:59:50.000000000 +0800
+++ 4.0/source/scripts/CommandLineParser.h	2011-10-11 21:56:54.929687500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 
diff -uwr source/scripts/ConPublic.h 4.0/source/scripts/ConPublic.h
--- source/scripts/ConPublic.h	2011-04-13 11:01:02.000000000 +0800
+++ 4.0/source/scripts/ConPublic.h	2011-10-11 21:56:49.386718700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__CONPUBLIC_H
 #define TT_INCLUDE__CONPUBLIC_H
 
diff -uwr source/scripts/ConnectionAcceptanceFilter.h 4.0/source/scripts/ConnectionAcceptanceFilter.h
--- source/scripts/ConnectionAcceptanceFilter.h	2010-06-30 23:53:22.000000000 +0800
+++ 4.0/source/scripts/ConnectionAcceptanceFilter.h	2011-10-11 21:56:53.168945300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 class WideStringClass;
diff -uwr source/scripts/ConnectionRequest.h 4.0/source/scripts/ConnectionRequest.h
--- source/scripts/ConnectionRequest.h	2010-06-30 23:53:22.000000000 +0800
+++ 4.0/source/scripts/ConnectionRequest.h	2011-10-11 21:56:51.206054600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 #include "engine_string.h"
 
diff -uwr source/scripts/ConstructionYardGameObj.h 4.0/source/scripts/ConstructionYardGameObj.h
--- source/scripts/ConstructionYardGameObj.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/ConstructionYardGameObj.h	2011-10-11 21:56:47.152343700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__CONSTRUCTIONYARDGAMEOBJ_H
 #define TT_INCLUDE__CONSTRUCTIONYARDGAMEOBJ_H
 
diff -uwr source/scripts/ConstructionYardGameObjDef.h 4.0/source/scripts/ConstructionYardGameObjDef.h
--- source/scripts/ConstructionYardGameObjDef.h	2009-12-24 19:46:00.000000000 +0800
+++ 4.0/source/scripts/ConstructionYardGameObjDef.h	2011-10-11 21:56:45.261718700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_CONSTRUCTIONYARDGAMEOBJDEF_H
 #define TT_INCLUDE_CONSTRUCTIONYARDGAMEOBJDEF_H
 #include "BuildingGameObjDef.h"
diff -uwr source/scripts/ControlClass.h 4.0/source/scripts/ControlClass.h
--- source/scripts/ControlClass.h	2010-08-18 19:42:18.000000000 +0800
+++ 4.0/source/scripts/ControlClass.h	2011-10-11 21:56:42.881835900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__CONTROLCLASS_H
 #define TT_INCLUDE__CONTROLCLASS_H
 #include "Vector4.h"
diff -uwr source/scripts/Crc32.cpp 4.0/source/scripts/Crc32.cpp
--- source/scripts/Crc32.cpp	2010-08-25 19:02:46.000000000 +0800
+++ 4.0/source/scripts/Crc32.cpp	2011-10-11 23:04:05.313476500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "Crc32.h"
 
diff -uwr source/scripts/Crc32.h 4.0/source/scripts/Crc32.h
--- source/scripts/Crc32.h	2010-05-31 11:58:16.000000000 +0800
+++ 4.0/source/scripts/Crc32.h	2011-10-11 21:56:39.401367100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 class FileClass;
diff -uwr source/scripts/CriticalSectionClass.cpp 4.0/source/scripts/CriticalSectionClass.cpp
--- source/scripts/CriticalSectionClass.cpp	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/CriticalSectionClass.cpp	2011-10-11 23:04:03.486328100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "CriticalSectionClass.h"
 
diff -uwr source/scripts/CriticalSectionClass.h 4.0/source/scripts/CriticalSectionClass.h
--- source/scripts/CriticalSectionClass.h	2011-05-22 21:22:28.000000000 +0800
+++ 4.0/source/scripts/CriticalSectionClass.h	2011-10-11 21:56:37.642578100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__CRITICALSECTIONCLASS_H
 #define TT_INCLUDE__CRITICALSECTIONCLASS_H
 
diff -uwr source/scripts/CullSystemClass.h 4.0/source/scripts/CullSystemClass.h
--- source/scripts/CullSystemClass.h	2009-11-09 18:47:58.000000000 +0800
+++ 4.0/source/scripts/CullSystemClass.h	2011-10-11 21:56:34.261718700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_CULLSYSTEMCLASS_H
 #define TT_INCLUDE_CULLSYSTEMCLASS_H
 #include "CullableClass.h"
diff -uwr source/scripts/CullableClass.h 4.0/source/scripts/CullableClass.h
--- source/scripts/CullableClass.h	2009-11-09 18:47:32.000000000 +0800
+++ 4.0/source/scripts/CullableClass.h	2011-10-11 21:56:35.818359300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__CULLABLECLASS_H
 #define TT_INCLUDE__CULLABLECLASS_H
 #include "AABoxClass.h"
diff -uwr source/scripts/DamageZoneGameObj.h 4.0/source/scripts/DamageZoneGameObj.h
--- source/scripts/DamageZoneGameObj.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/DamageZoneGameObj.h	2011-10-11 21:56:28.727539000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DAMAGEZONEGAMEOBJ_H
 #define TT_INCLUDE_DAMAGEZONEGAMEOBJ_H
 #include "DamageZoneGameObjDef.h"
diff -uwr source/scripts/DamageZoneGameObjDef.h 4.0/source/scripts/DamageZoneGameObjDef.h
--- source/scripts/DamageZoneGameObjDef.h	2009-12-24 19:58:00.000000000 +0800
+++ 4.0/source/scripts/DamageZoneGameObjDef.h	2011-10-11 21:56:26.795898400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DAMAGEZONEGAMEOBJDEF_H
 #define TT_INCLUDE_DAMAGEZONEGAMEOBJDEF_H
 #include "BaseGameObjDef.h"
diff -uwr source/scripts/DamageableGameObj.h 4.0/source/scripts/DamageableGameObj.h
--- source/scripts/DamageableGameObj.h	2011-05-24 17:05:38.000000000 +0800
+++ 4.0/source/scripts/DamageableGameObj.h	2011-10-11 21:56:32.453125000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DAMAGEABLEGAMEOBJ_H
 #define TT_INCLUDE_DAMAGEABLEGAMEOBJ_H
 #include "ScriptableGameObj.h"
diff -uwr source/scripts/DamageableGameObjDef.h 4.0/source/scripts/DamageableGameObjDef.h
--- source/scripts/DamageableGameObjDef.h	2011-08-07 14:03:42.000000000 +0800
+++ 4.0/source/scripts/DamageableGameObjDef.h	2011-10-11 21:56:30.630859300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DAMAGEABLEGAMEOBJDEF_H
 #define TT_INCLUDE_DAMAGEABLEGAMEOBJDEF_H
 #include "ScriptableGameObjDef.h"
diff -uwr source/scripts/DecorationPhysClass.h 4.0/source/scripts/DecorationPhysClass.h
--- source/scripts/DecorationPhysClass.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/DecorationPhysClass.h	2011-10-11 21:56:14.285156200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__DECORATIONPHYSCLASS_H
 #define TT_INCLUDE__DECORATIONPHYSCLASS_H
 
diff -uwr source/scripts/DecorationPhysDefClass.h 4.0/source/scripts/DecorationPhysDefClass.h
--- source/scripts/DecorationPhysDefClass.h	2010-04-14 17:12:48.000000000 +0800
+++ 4.0/source/scripts/DecorationPhysDefClass.h	2011-10-11 21:56:12.504882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__DECORATIONPHYSDEFCLASS_H
 #define TT_INCLUDE__DECORATIONPHYSDEFCLASS_H
 
diff -uwr source/scripts/DefaultConnectionAcceptanceFilter.cpp 4.0/source/scripts/DefaultConnectionAcceptanceFilter.cpp
--- source/scripts/DefaultConnectionAcceptanceFilter.cpp	2011-09-03 08:29:36.000000000 +0800
+++ 4.0/source/scripts/DefaultConnectionAcceptanceFilter.cpp	2011-10-11 23:03:57.536132800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "DefaultConnectionAcceptanceFilter.h"
 #include "GameData.h"
diff -uwr source/scripts/DefaultConnectionAcceptanceFilter.h 4.0/source/scripts/DefaultConnectionAcceptanceFilter.h
--- source/scripts/DefaultConnectionAcceptanceFilter.h	2010-07-03 10:22:36.000000000 +0800
+++ 4.0/source/scripts/DefaultConnectionAcceptanceFilter.h	2011-10-11 21:56:10.666992100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "ConnectionAcceptanceFilter.h"
diff -uwr source/scripts/DefenseObjectClass.h 4.0/source/scripts/DefenseObjectClass.h
--- source/scripts/DefenseObjectClass.h	2010-05-31 12:35:06.000000000 +0800
+++ 4.0/source/scripts/DefenseObjectClass.h	2011-10-11 21:56:08.841796800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__DEFENSEOBJECTCLASS_H
 #define TT_INCLUDE__DEFENSEOBJECTCLASS_H
 #include "DataSafe.h"
diff -uwr source/scripts/DefenseObjectDefClass.h 4.0/source/scripts/DefenseObjectDefClass.h
--- source/scripts/DefenseObjectDefClass.h	2011-05-24 13:59:40.000000000 +0800
+++ 4.0/source/scripts/DefenseObjectDefClass.h	2011-10-11 21:56:07.009765600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DEFENSEOBJECTDEFCLASS_H
 #define TT_INCLUDE_DEFENSEOBJECTDEFCLASS_H
 #include "DataSafe.h"
diff -uwr source/scripts/Defines.h 4.0/source/scripts/Defines.h
--- source/scripts/Defines.h	2011-05-24 09:40:34.000000000 +0800
+++ 4.0/source/scripts/Defines.h	2011-10-14 19:58:40.176757800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__DEFINES_H
 #define TT_INCLUDE__DEFINES_H
 
@@ -5,7 +16,7 @@
 
 #include "Types.h"
 #include "stdarg.h"
-#if (WWCONFIG) || (TDBEDIT) || (W3DSHADER) || (W3DLIB_EXPORTS) || (W3DMESHMENDER) || (W3DDEPENDS) || (W3DMAPPER) || (ACHASH) || (PACKAGEEDITOR) || (FIXPLANES) || (MERGELOD) || (MIXCHECK) || (DDBEDIT)
+#if (WWCONFIG) || (TDBEDIT) || (W3DSHADER) || (W3DLIB_EXPORTS) || (W3DMESHMENDER) || (W3DDEPENDS) || (W3DMAPPER) || (ACHASH) || (PACKAGEEDITOR) || (FIXPLANES) || (MERGELOD) || (MIXCHECK) || (DDBEDIT) || (MAKEMIX)
 #define EXTERNAL 1
 #endif
 
@@ -212,7 +223,6 @@
 SCRIPTS_API void InitEngine();
 SCRIPTS_API int		RenegadeAT3VersionSelector(); // Default implementation, used by AT1/AT2
 SCRIPTS_API void*	HookupAT3(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*function_selector)());
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)());
 #define RENEGADE_FUNCTION  __declspec(naked)
 #ifndef TTLE_EXPORTS
 #define AT1(client)						AT2(client, 0)
@@ -233,7 +243,7 @@
 	__asm push c					\
 	__asm push b					\
 	__asm push a					\
-	__asm call HookupAT3x			\
+	__asm call HookupAT3			\
 	__asm AT3PatchEnd:				\
 	__asm add esp, 24				\
 	__asm pop edx					\
diff -uwr source/scripts/Definition.h 4.0/source/scripts/Definition.h
--- source/scripts/Definition.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/Definition.h	2011-10-11 21:56:03.347656200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DEFINITION_H
 #define TT_INCLUDE_DEFINITION_H
 #include "Editable.h"
diff -uwr source/scripts/DefinitionFactoryClass.cpp 4.0/source/scripts/DefinitionFactoryClass.cpp
--- source/scripts/DefinitionFactoryClass.cpp	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/DefinitionFactoryClass.cpp	2011-10-11 23:03:52.634765600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "DefinitionFactoryClass.h"
 #include "DefinitionFactoryMgrClass.h"
diff -uwr source/scripts/DefinitionFactoryClass.h 4.0/source/scripts/DefinitionFactoryClass.h
--- source/scripts/DefinitionFactoryClass.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/DefinitionFactoryClass.h	2011-10-11 21:56:01.538085900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DEFINITIONFACTORYCLASS_H
 #define TT_INCLUDE_DEFINITIONFACTORYCLASS_H
 #include "Definition.h"
diff -uwr source/scripts/DefinitionFactoryMgrClass.cpp 4.0/source/scripts/DefinitionFactoryMgrClass.cpp
--- source/scripts/DefinitionFactoryMgrClass.cpp	2011-05-25 22:29:16.000000000 +0800
+++ 4.0/source/scripts/DefinitionFactoryMgrClass.cpp	2011-10-11 23:03:50.954101500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "DefinitionFactoryMgrClass.h"
 #include "DefinitionFactoryClass.h"
diff -uwr source/scripts/DefinitionFactoryMgrClass.h 4.0/source/scripts/DefinitionFactoryMgrClass.h
--- source/scripts/DefinitionFactoryMgrClass.h	2011-05-25 22:29:16.000000000 +0800
+++ 4.0/source/scripts/DefinitionFactoryMgrClass.h	2011-10-11 21:55:59.708007800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DEFINITIONFACTORYMGRCLASS_H
 #define TT_INCLUDE_DEFINITIONFACTORYMGRCLASS_H
 class DefinitionFactoryClass;
diff -uwr source/scripts/DefinitionMgrClass.cpp 4.0/source/scripts/DefinitionMgrClass.cpp
--- source/scripts/DefinitionMgrClass.cpp	2011-08-25 11:23:58.000000000 +0800
+++ 4.0/source/scripts/DefinitionMgrClass.cpp	2011-10-11 23:03:49.376953100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "TwiddlerClass.h"
 #include "DefinitionMgrClass.h"
diff -uwr source/scripts/DefinitionMgrClass.h 4.0/source/scripts/DefinitionMgrClass.h
--- source/scripts/DefinitionMgrClass.h	2011-08-30 11:13:36.000000000 +0800
+++ 4.0/source/scripts/DefinitionMgrClass.h	2011-10-11 21:55:57.882812500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__DEFINITIONMGRCLASS_H
 #define TT_INCLUDE__DEFINITIONMGRCLASS_H
 
diff -uwr source/scripts/DialogueClass.h 4.0/source/scripts/DialogueClass.h
--- source/scripts/DialogueClass.h	2011-05-24 18:42:32.000000000 +0800
+++ 4.0/source/scripts/DialogueClass.h	2011-10-11 21:55:41.979492100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__DIALOGUECLASS_H
 #define TT_INCLUDE__DIALOGUECLASS_H
 #include "engine_vector.h"
diff -uwr source/scripts/DynamicPhysClass.h 4.0/source/scripts/DynamicPhysClass.h
--- source/scripts/DynamicPhysClass.h	2009-11-09 18:58:08.000000000 +0800
+++ 4.0/source/scripts/DynamicPhysClass.h	2011-10-11 21:55:09.958984300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__DYNAMICPHYSCLASS_H
 #define TT_INCLUDE__DYNAMICPHYSCLASS_H
 
diff -uwr source/scripts/DynamicPhysDefClass.h 4.0/source/scripts/DynamicPhysDefClass.h
--- source/scripts/DynamicPhysDefClass.h	2009-12-24 19:36:40.000000000 +0800
+++ 4.0/source/scripts/DynamicPhysDefClass.h	2011-10-11 21:54:51.746093700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__DYNAMICPHYSDEFCLASS_H
 #define TT_INCLUDE__DYNAMICPHYSDEFCLASS_H
 
diff -uwr source/scripts/DynamicShadowManager.h 4.0/source/scripts/DynamicShadowManager.h
--- source/scripts/DynamicShadowManager.h	2009-11-09 18:58:08.000000000 +0800
+++ 4.0/source/scripts/DynamicShadowManager.h	2011-10-11 21:54:48.922851500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DYNAMICSHADOWMANAGER_H
 #define TT_INCLUDE_DYNAMICSHADOWMANAGER_H
 class PhysClass;
diff -uwr source/scripts/Editable.h 4.0/source/scripts/Editable.h
--- source/scripts/Editable.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/Editable.h	2011-10-11 21:54:35.879882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_EDITABLE_H
 #define TT_INCLUDE_EDITABLE_H
 #include "Persist.h"
diff -uwr source/scripts/ExtendedNetworkObject.h 4.0/source/scripts/ExtendedNetworkObject.h
--- source/scripts/ExtendedNetworkObject.h	2010-06-24 08:08:36.000000000 +0800
+++ 4.0/source/scripts/ExtendedNetworkObject.h	2011-10-11 21:53:07.054687500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 //
 // This class is to allow virtuals to be added to a NetworkObjectClass without
 // having to change the offsets of the base class.
diff -uwr source/scripts/FileFactoryListClass.cpp 4.0/source/scripts/FileFactoryListClass.cpp
--- source/scripts/FileFactoryListClass.cpp	2009-11-13 16:39:14.000000000 +0800
+++ 4.0/source/scripts/FileFactoryListClass.cpp	2011-10-11 23:04:17.790039000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 
 #include "FileFactoryListClass.h"
@@ -65,7 +76,7 @@
 	}
 }
 
-#ifndef WWCONFIG
+#if !defined(WWCONFIG) && !defined(PACKAGEEDITOR)
 #pragma warning(disable: 4073) //warning C4073: initializers put in library initialization area - That's EXACTLY why I put that pragma in...
 #pragma init_seg(lib) // Move this files static initializers up a level
 #pragma warning(default: 4073)
diff -uwr source/scripts/FileFactoryListClass.h 4.0/source/scripts/FileFactoryListClass.h
--- source/scripts/FileFactoryListClass.h	2009-11-13 16:25:34.000000000 +0800
+++ 4.0/source/scripts/FileFactoryListClass.h	2011-10-11 21:53:04.629882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__FILEFACTORYLISTCLASS_H
 #define TT_INCLUDE__FILEFACTORYLISTCLASS_H
 #include "engine_io.h"
@@ -6,7 +17,7 @@
 
 class FileFactoryListClass : public FileFactoryClass
 {
-#ifndef WWCONFIG
+#if !defined(WWCONFIG) && !defined(PACKAGEEDITOR)
 	static REF_DECL2(Instance, FileFactoryListClass *);
 #else
 	static FileFactoryListClass *Instance;
diff -uwr source/scripts/FrustumClass.h 4.0/source/scripts/FrustumClass.h
--- source/scripts/FrustumClass.h	2009-11-09 18:47:58.000000000 +0800
+++ 4.0/source/scripts/FrustumClass.h	2011-10-11 21:53:02.598632800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_FRUSTUMCLASS_H
 #define TT_INCLUDE_FRUSTUMCLASS_H
 #include "Vector2.h"
diff -uwr source/scripts/GameData.h 4.0/source/scripts/GameData.h
--- source/scripts/GameData.h	2011-04-28 07:18:42.000000000 +0800
+++ 4.0/source/scripts/GameData.h	2011-10-11 21:53:00.882812500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_GAMEDATA_H
 #define TT_INCLUDE_GAMEDATA_H
 
@@ -301,6 +312,7 @@
 			return baseName;
 		}
 	}
+	void setCurrentPlayers(int value) { CurrentPlayers = value; }
 }; // 026C  0274
 
 class cGameDataCnc : public cGameData {
diff -uwr source/scripts/GameDefinition.h 4.0/source/scripts/GameDefinition.h
--- source/scripts/GameDefinition.h	2011-08-31 23:11:06.000000000 +0800
+++ 4.0/source/scripts/GameDefinition.h	2011-10-11 21:52:59.029296800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "engine_string.h"
diff -uwr source/scripts/GameObjManager.h 4.0/source/scripts/GameObjManager.h
--- source/scripts/GameObjManager.h	2011-05-10 15:47:32.000000000 +0800
+++ 4.0/source/scripts/GameObjManager.h	2011-10-11 21:52:57.000976500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__GAMEOBJMANAGER_H
 #define TT_INCLUDE__GAMEOBJMANAGER_H
 
diff -uwr source/scripts/General.cpp 4.0/source/scripts/General.cpp
--- source/scripts/General.cpp	2009-04-12 11:51:52.000000000 +0800
+++ 4.0/source/scripts/General.cpp	2011-10-11 23:04:40.189453100 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/scripts/General.h 4.0/source/scripts/General.h
--- source/scripts/General.h	2009-08-03 13:51:50.000000000 +0800
+++ 4.0/source/scripts/General.h	2011-10-11 21:52:49.290039000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef SCRIPTS_INCLUDE__GENERAL_H
 #define SCRIPTS_INCLUDE__GENERAL_H
 
diff -uwr source/scripts/GridCull.h 4.0/source/scripts/GridCull.h
--- source/scripts/GridCull.h	2009-11-09 18:58:08.000000000 +0800
+++ 4.0/source/scripts/GridCull.h	2011-10-11 21:52:35.784179600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_GRIDCULL_H
 #define TT_INCLUDE_GRIDCULL_H
 #include "cullsystemclass.h"
diff -uwr source/scripts/HTreeClass.cpp 4.0/source/scripts/HTreeClass.cpp
--- source/scripts/HTreeClass.cpp	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/HTreeClass.cpp	2011-10-11 23:04:29.022460900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "HTreeClass.h"
 
diff -uwr source/scripts/HTreeClass.h 4.0/source/scripts/HTreeClass.h
--- source/scripts/HTreeClass.h	2010-08-06 15:59:36.000000000 +0800
+++ 4.0/source/scripts/HTreeClass.h	2011-10-11 21:52:25.835937500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__HTREECLASS_H
 #define TT_INCLUDE__HTREECLASS_H
 #include "Matrix3D.h"
Only in 4.0/source/scripts: HarvesterClass.h
diff -uwr source/scripts/HashTemplateClass.h 4.0/source/scripts/HashTemplateClass.h
--- source/scripts/HashTemplateClass.h	2010-10-25 20:27:18.000000000 +0800
+++ 4.0/source/scripts/HashTemplateClass.h	2011-10-11 21:52:31.998046800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__HASHTEMPLATECLASS_H
 #define TT_INCLUDE__HASHTEMPLATECLASS_H
 
diff -uwr source/scripts/HashTemplateIterator.h 4.0/source/scripts/HashTemplateIterator.h
--- source/scripts/HashTemplateIterator.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/HashTemplateIterator.h	2011-10-11 21:52:30.064453100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__HASHTEMPLATEITERATOR_H
 #define TT_INCLUDE__HASHTEMPLATEITERATOR_H
 
diff -uwr source/scripts/HashTemplateKeyClass.cpp 4.0/source/scripts/HashTemplateKeyClass.cpp
--- source/scripts/HashTemplateKeyClass.cpp	2010-05-31 13:32:04.000000000 +0800
+++ 4.0/source/scripts/HashTemplateKeyClass.cpp	2011-10-11 23:04:31.224609300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "HashTemplateKeyClass.h"
 
diff -uwr source/scripts/HashTemplateKeyClass.h 4.0/source/scripts/HashTemplateKeyClass.h
--- source/scripts/HashTemplateKeyClass.h	2010-05-31 13:32:06.000000000 +0800
+++ 4.0/source/scripts/HashTemplateKeyClass.h	2011-10-11 21:52:27.746093700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__HASHTEMPLATEKEYCLASS_H
 #define TT_INCLUDE__HASHTEMPLATEKEYCLASS_H
 
diff -uwr source/scripts/HumanStateClass.h 4.0/source/scripts/HumanStateClass.h
--- source/scripts/HumanStateClass.h	2009-08-26 00:43:02.000000000 +0800
+++ 4.0/source/scripts/HumanStateClass.h	2011-10-11 21:52:23.259765600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__HUMANSTATECLASS_H
 #define TT_INCLUDE__HUMANSTATECLASS_H
 
diff -uwr source/scripts/Iterator.cpp 4.0/source/scripts/Iterator.cpp
--- source/scripts/Iterator.cpp	2009-06-12 22:48:26.000000000 +0800
+++ 4.0/source/scripts/Iterator.cpp	2011-10-11 23:04:43.359375000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "Iterator.h"
 
diff -uwr source/scripts/Iterator.h 4.0/source/scripts/Iterator.h
--- source/scripts/Iterator.h	2010-08-13 15:23:02.000000000 +0800
+++ 4.0/source/scripts/Iterator.h	2011-10-11 21:51:45.616210900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__ITERATOR_H
 #define TT_INCLUDE__ITERATOR_H
 
diff -uwr source/scripts/JMGRenetBuster.h 4.0/source/scripts/JMGRenetBuster.h
--- source/scripts/JMGRenetBuster.h	2010-04-14 10:14:18.000000000 +0800
+++ 4.0/source/scripts/JMGRenetBuster.h	2011-10-14 22:27:32.092773400 +0800
@@ -1,5 +1,5 @@
-/*	Renegade Renet Busters Scripts by Jerad Gray
-	Copyright 2010 Jerad Gray, Jonathan Wilson
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -9,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 class JMG_Create_Ship_On_Poke : public ScriptImpClass {
diff -uwr source/scripts/JMGRenetBusters.cpp 4.0/source/scripts/JMGRenetBusters.cpp
--- source/scripts/JMGRenetBusters.cpp	2010-04-14 10:14:20.000000000 +0800
+++ 4.0/source/scripts/JMGRenetBusters.cpp	2011-10-11 23:04:54.738281200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Renegade Renet Busters Scripts
-	Copyright 2010 Jerad Gray, Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/LightPhysClass.h 4.0/source/scripts/LightPhysClass.h
--- source/scripts/LightPhysClass.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/LightPhysClass.h	2011-10-11 21:50:31.231445300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__LIGHTPHYSCLASS_H
 #define TT_INCLUDE__LIGHTPHYSCLASS_H
 
diff -uwr source/scripts/LineSegClass.cpp 4.0/source/scripts/LineSegClass.cpp
--- source/scripts/LineSegClass.cpp	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/LineSegClass.cpp	2011-10-11 23:05:55.255859300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 
 #include "LineSegClass.h"
diff -uwr source/scripts/LineSegClass.h 4.0/source/scripts/LineSegClass.h
--- source/scripts/LineSegClass.h	2010-05-31 13:32:02.000000000 +0800
+++ 4.0/source/scripts/LineSegClass.h	2011-10-11 21:50:29.314453100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__LINESEGCLASS_H
 #define TT_INCLUDE__LINESEGCLASS_H
 
diff -uwr source/scripts/MaterialEffectClass.h 4.0/source/scripts/MaterialEffectClass.h
--- source/scripts/MaterialEffectClass.h	2011-05-24 09:57:26.000000000 +0800
+++ 4.0/source/scripts/MaterialEffectClass.h	2011-10-11 21:50:27.469726500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MATERIALEFFECTCLASS_H
 #define TT_INCLUDE__MATERIALEFFECTCLASS_H
 #include "engine_vector.h"
diff -uwr source/scripts/Matrix3.cpp 4.0/source/scripts/Matrix3.cpp
--- source/scripts/Matrix3.cpp	2009-04-12 11:51:54.000000000 +0800
+++ 4.0/source/scripts/Matrix3.cpp	2011-10-11 23:05:53.842773400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "Quaternion.h"
 #include "Matrix3.h"
diff -uwr source/scripts/Matrix3.h 4.0/source/scripts/Matrix3.h
--- source/scripts/Matrix3.h	2010-05-31 13:32:16.000000000 +0800
+++ 4.0/source/scripts/Matrix3.h	2011-10-11 21:50:25.082031200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MATRIX3_H
 #define TT_INCLUDE__MATRIX3_H
 #include "Vector3.h"
diff -uwr source/scripts/Matrix3D.cpp 4.0/source/scripts/Matrix3D.cpp
--- source/scripts/Matrix3D.cpp	2010-06-25 22:44:54.000000000 +0800
+++ 4.0/source/scripts/Matrix3D.cpp	2011-10-11 23:05:52.368164000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 
 #include "Matrix3D.h"
diff -uwr source/scripts/Matrix3D.h 4.0/source/scripts/Matrix3D.h
--- source/scripts/Matrix3D.h	2010-06-25 22:44:54.000000000 +0800
+++ 4.0/source/scripts/Matrix3D.h	2011-10-11 21:50:23.392578100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MATRIX3D_H
 #define TT_INCLUDE__MATRIX3D_H
 class Matrix3;
diff -uwr source/scripts/MeshClass.h 4.0/source/scripts/MeshClass.h
--- source/scripts/MeshClass.h	2011-03-11 17:38:02.000000000 +0800
+++ 4.0/source/scripts/MeshClass.h	2011-10-11 21:50:03.804687500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MESHCLASS_H
 #define TT_INCLUDE__MESHCLASS_H
 #include "scripts.h"
diff -uwr source/scripts/MixFileFactoryClass.cpp 4.0/source/scripts/MixFileFactoryClass.cpp
--- source/scripts/MixFileFactoryClass.cpp	2011-08-12 07:11:46.000000000 +0800
+++ 4.0/source/scripts/MixFileFactoryClass.cpp	2011-10-11 23:05:44.881835900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 
 #include "MixFileFactoryClass.h"
diff -uwr source/scripts/MixFileFactoryClass.h 4.0/source/scripts/MixFileFactoryClass.h
--- source/scripts/MixFileFactoryClass.h	2011-08-12 07:11:46.000000000 +0800
+++ 4.0/source/scripts/MixFileFactoryClass.h	2011-10-11 21:50:02.141601500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MIXFILEFACTORYCLASS_H
 #define TT_INCLUDE__MIXFILEFACTORYCLASS_H
 #include "engine_common.h"
diff -uwr source/scripts/MoveablePhysClass.h 4.0/source/scripts/MoveablePhysClass.h
--- source/scripts/MoveablePhysClass.h	2009-08-03 11:59:46.000000000 +0800
+++ 4.0/source/scripts/MoveablePhysClass.h	2011-10-11 21:50:00.301757800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MOVEABLEPHYSCLASS_H
 #define TT_INCLUDE__MOVEABLEPHYSCLASS_H
 
diff -uwr source/scripts/MoveablePhysDefClass.h 4.0/source/scripts/MoveablePhysDefClass.h
--- source/scripts/MoveablePhysDefClass.h	2009-12-24 19:36:44.000000000 +0800
+++ 4.0/source/scripts/MoveablePhysDefClass.h	2011-10-11 21:49:58.500976500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MOVEABLEPHYSDEFCLASS_H
 #define TT_INCLUDE__MOVEABLEPHYSDEFCLASS_H
 
diff -uwr source/scripts/MuzzleFlashClass.h 4.0/source/scripts/MuzzleFlashClass.h
--- source/scripts/MuzzleFlashClass.h	2011-05-04 16:22:08.000000000 +0800
+++ 4.0/source/scripts/MuzzleFlashClass.h	2011-10-11 21:49:55.030273400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MUZZLEFLASHCLASS_H
 #define TT_INCLUDE__MUZZLEFLASHCLASS_H
 
diff -uwr source/scripts/MuzzleRecoilClass.h 4.0/source/scripts/MuzzleRecoilClass.h
--- source/scripts/MuzzleRecoilClass.h	2010-04-10 14:55:26.000000000 +0800
+++ 4.0/source/scripts/MuzzleRecoilClass.h	2011-10-11 21:49:53.330078100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MUZZLERECOILCLASS_H
 #define TT_INCLUDE__MUZZLERECOILCLASS_H
 
diff -uwr source/scripts/NetworkObjectClass.h 4.0/source/scripts/NetworkObjectClass.h
--- source/scripts/NetworkObjectClass.h	2011-08-30 17:18:56.000000000 +0800
+++ 4.0/source/scripts/NetworkObjectClass.h	2011-10-11 21:49:47.708007800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_NETWORKOBJECTCLASS_H
 #define TT_INCLUDE_NETWORKOBJECTCLASS_H
 
diff -uwr source/scripts/Observee.h 4.0/source/scripts/Observee.h
--- source/scripts/Observee.h	2011-08-30 11:13:36.000000000 +0800
+++ 4.0/source/scripts/Observee.h	2011-10-11 21:49:25.791015600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "Iterator.h"
diff -uwr source/scripts/OffenseObjectClass.h 4.0/source/scripts/OffenseObjectClass.h
--- source/scripts/OffenseObjectClass.h	2009-08-03 14:36:12.000000000 +0800
+++ 4.0/source/scripts/OffenseObjectClass.h	2011-10-11 21:49:23.948242100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_OFFENSEOBJECTCLASS_H
 #define TT_INCLUDE_OFFENSEOBJECTCLASS_H
 class ArmedGameObj;
diff -uwr source/scripts/Parameter.h 4.0/source/scripts/Parameter.h
--- source/scripts/Parameter.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/Parameter.h	2011-10-11 21:49:22.120117100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PARAMETER_H
 #define TT_INCLUDE_PARAMETER_H
 #include "Engine_String.h"
diff -uwr source/scripts/Persist.h 4.0/source/scripts/Persist.h
--- source/scripts/Persist.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/Persist.h	2011-10-11 21:49:20.333007800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PERSIST_H
 #define TT_INCLUDE_PERSIST_H
 #include "PostLoadableClass.h"
diff -uwr source/scripts/PersistFactoryClass.cpp 4.0/source/scripts/PersistFactoryClass.cpp
--- source/scripts/PersistFactoryClass.cpp	2011-05-24 09:10:42.000000000 +0800
+++ 4.0/source/scripts/PersistFactoryClass.cpp	2011-10-11 23:05:35.705078100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 
 #include "PersistFactoryClass.h"
diff -uwr source/scripts/PersistFactoryClass.h 4.0/source/scripts/PersistFactoryClass.h
--- source/scripts/PersistFactoryClass.h	2010-03-24 10:48:56.000000000 +0800
+++ 4.0/source/scripts/PersistFactoryClass.h	2011-10-11 21:49:18.504882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef __PERSISTFACTORYCLASS_H__
 #define __PERSISTFACTORYCLASS_H__
 #include "scripts.h"
diff -uwr source/scripts/PhysClass.h 4.0/source/scripts/PhysClass.h
--- source/scripts/PhysClass.h	2011-05-24 11:16:14.000000000 +0800
+++ 4.0/source/scripts/PhysClass.h	2011-10-11 21:49:16.171875000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__PHYSCLASS_H
 #define TT_INCLUDE__PHYSCLASS_H
 
diff -uwr source/scripts/PhysControllerClass.h 4.0/source/scripts/PhysControllerClass.h
--- source/scripts/PhysControllerClass.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/PhysControllerClass.h	2011-10-11 21:49:11.952148400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__PHYSCONTROLLERCLASS_H
 #define TT_INCLUDE__PHYSCONTROLLERCLASS_H
 
diff -uwr source/scripts/PhysDefClass.h 4.0/source/scripts/PhysDefClass.h
--- source/scripts/PhysDefClass.h	2011-05-24 11:16:14.000000000 +0800
+++ 4.0/source/scripts/PhysDefClass.h	2011-10-11 21:49:10.120117100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__PHYSDEFCLASS_H
 #define TT_INCLUDE__PHYSDEFCLASS_H
 
diff -uwr source/scripts/PhysObserverClass.h 4.0/source/scripts/PhysObserverClass.h
--- source/scripts/PhysObserverClass.h	2009-11-09 18:47:32.000000000 +0800
+++ 4.0/source/scripts/PhysObserverClass.h	2011-10-11 21:48:53.853515600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PHYSOBSERVERCLASS_H
 #define TT_INCLUDE_PHYSOBSERVERCLASS_H
 class CollisionEventClass;
diff -uwr source/scripts/PhysicalGameObj.h 4.0/source/scripts/PhysicalGameObj.h
--- source/scripts/PhysicalGameObj.h	2010-06-14 15:32:48.000000000 +0800
+++ 4.0/source/scripts/PhysicalGameObj.h	2011-10-11 21:49:03.425781200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PHYSICALGAMEOBJ_H
 #define TT_INCLUDE_PHYSICALGAMEOBJ_H
 #include "DamageableGameObj.h"
diff -uwr source/scripts/PhysicalGameObjDef.h 4.0/source/scripts/PhysicalGameObjDef.h
--- source/scripts/PhysicalGameObjDef.h	2009-12-24 19:48:14.000000000 +0800
+++ 4.0/source/scripts/PhysicalGameObjDef.h	2011-10-11 21:49:01.494140600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PHYSICALGAMEOBJDEF_H
 #define TT_INCLUDE_PHYSICALGAMEOBJDEF_H
 #include "DamageableGameObjDef.h"
diff -uwr source/scripts/PhysicsSceneClass.h 4.0/source/scripts/PhysicsSceneClass.h
--- source/scripts/PhysicsSceneClass.h	2011-08-09 11:12:30.000000000 +0800
+++ 4.0/source/scripts/PhysicsSceneClass.h	2011-10-11 21:48:58.233398400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 
 #ifndef TT_INCLUDE__PHYSICSSCENECLASS_H
 #define TT_INCLUDE__PHYSICSSCENECLASS_H
diff -uwr source/scripts/PlayerDataClass.h 4.0/source/scripts/PlayerDataClass.h
--- source/scripts/PlayerDataClass.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/PlayerDataClass.h	2011-10-11 21:48:49.310546800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PLAYERDATACLASS_H
 #define TT_INCLUDE_PLAYERDATACLASS_H
 #include "DataSafe.h"
diff -uwr source/scripts/PointerRemapClass.cpp 4.0/source/scripts/PointerRemapClass.cpp
--- source/scripts/PointerRemapClass.cpp	2009-12-23 16:21:38.000000000 +0800
+++ 4.0/source/scripts/PointerRemapClass.cpp	2011-10-11 23:06:01.376953100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "PointerRemapClass.h"
 
diff -uwr source/scripts/PointerRemapClass.h 4.0/source/scripts/PointerRemapClass.h
--- source/scripts/PointerRemapClass.h	2009-12-23 15:43:00.000000000 +0800
+++ 4.0/source/scripts/PointerRemapClass.h	2011-10-11 21:48:45.713867100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__POINTERREMAPCLASS_H
 #define TT_INCLUDE__POINTERREMAPCLASS_H
 #include "engine_vector.h"
diff -uwr source/scripts/PostLoadableClass.h 4.0/source/scripts/PostLoadableClass.h
--- source/scripts/PostLoadableClass.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/PostLoadableClass.h	2011-10-11 21:48:43.774414000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__POSTLOADABLECLASS_H
 #define TT_INCLUDE__POSTLOADABLECLASS_H
 
diff -uwr source/scripts/PowerPlantGameObj.h 4.0/source/scripts/PowerPlantGameObj.h
--- source/scripts/PowerPlantGameObj.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/PowerPlantGameObj.h	2011-10-11 21:48:42.026367100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_POWERPLANTGAMEOBJ_H
 #define TT_INCLUDE_POWERPLANTGAMEOBJ_H
 #include "BuildingGameObj.h"
diff -uwr source/scripts/PowerPlantGameObjDef.h 4.0/source/scripts/PowerPlantGameObjDef.h
--- source/scripts/PowerPlantGameObjDef.h	2009-12-24 19:56:00.000000000 +0800
+++ 4.0/source/scripts/PowerPlantGameObjDef.h	2011-10-11 21:48:40.079101500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_POWERPLANTGAMEOBJDEF_H
 #define TT_INCLUDE_POWERPLANTGAMEOBJDEF_H
 #include "BuildingGameObjDef.h"
diff -uwr source/scripts/PowerupGameObj.h 4.0/source/scripts/PowerupGameObj.h
--- source/scripts/PowerupGameObj.h	2010-05-31 12:47:34.000000000 +0800
+++ 4.0/source/scripts/PowerupGameObj.h	2011-10-11 21:48:38.016601500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_POWERUPGAMEOBJ_H
 #define TT_INCLUDE_POWERUPGAMEOBJ_H
 #include "SimpleGameObj.h"
diff -uwr source/scripts/PowerupGameObjDef.h 4.0/source/scripts/PowerupGameObjDef.h
--- source/scripts/PowerupGameObjDef.h	2011-05-22 02:36:54.000000000 +0800
+++ 4.0/source/scripts/PowerupGameObjDef.h	2011-10-11 21:48:36.038085900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_POWERUPGAMEOBJDEF_H
 #define TT_INCLUDE_POWERUPGAMEOBJDEF_H
 #include "SimpleGameObjDef.h"
diff -uwr source/scripts/ProjectorManagerClass.h 4.0/source/scripts/ProjectorManagerClass.h
--- source/scripts/ProjectorManagerClass.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/ProjectorManagerClass.h	2011-10-11 21:48:33.974609300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__PROJECTORMANAGERCLASS_H
 #define TT_INCLUDE__PROJECTORMANAGERCLASS_H
 
diff -uwr source/scripts/PurchaseSettingsDefClass.h 4.0/source/scripts/PurchaseSettingsDefClass.h
--- source/scripts/PurchaseSettingsDefClass.h	2011-05-24 10:29:16.000000000 +0800
+++ 4.0/source/scripts/PurchaseSettingsDefClass.h	2011-10-25 15:39:17.330078100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PURCHASESETTINGSDEFCLASS_H
 #define TT_INCLUDE_PURCHASESETTINGSDEFCLASS_H
 #include "Definition.h"
@@ -115,7 +126,7 @@
 	{
 		return PageHidden;
 	}
-	bool Set_Page_Hidden(bool b)
+	void Set_Page_Hidden(bool b)
 	{
 		PageHidden = b;
 		Set_Object_Dirty_Bit(BIT_OCCASIONAL,true);
@@ -124,7 +135,7 @@
 	{
 		return PageDisabled;
 	}
-	bool Set_Page_Disabled(bool b)
+	void Set_Page_Disabled(bool b)
 	{
 		PageDisabled = b;
 		Set_Object_Dirty_Bit(BIT_OCCASIONAL,true);
@@ -133,7 +144,7 @@
 	{
 		return PageBusy;
 	}
-	bool Set_Page_Busy(bool b)
+	void Set_Page_Busy(bool b)
 	{
 		PageBusy = b;
 		Set_Object_Dirty_Bit(BIT_OCCASIONAL,true);
diff -uwr source/scripts/Quaternion.h 4.0/source/scripts/Quaternion.h
--- source/scripts/Quaternion.h	2010-06-05 22:28:24.000000000 +0800
+++ 4.0/source/scripts/Quaternion.h	2011-10-11 21:48:26.444335900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__QUATERNION_H
 #define TT_INCLUDE__QUATERNION_H
 
diff -uwr source/scripts/Random2Class.h 4.0/source/scripts/Random2Class.h
--- source/scripts/Random2Class.h	2011-04-03 22:21:34.000000000 +0800
+++ 4.0/source/scripts/Random2Class.h	2011-10-11 21:48:09.370117100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__RANDOM2CLASS_H
 #define TT_INCLUDE__RANDOM2CLASS_H
 #define	ARRAY_SIZE(x)		int(sizeof(x)/sizeof(x[0]))
diff -uwr source/scripts/RawFileClass.h 4.0/source/scripts/RawFileClass.h
--- source/scripts/RawFileClass.h	2010-05-22 19:45:04.000000000 +0800
+++ 4.0/source/scripts/RawFileClass.h	2011-10-11 21:48:07.639648400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_RAWFILECLASS_H
 #define TT_INCLUDE_RAWFILECLASS_H
 
diff -uwr source/scripts/ReferenceableClass.h 4.0/source/scripts/ReferenceableClass.h
--- source/scripts/ReferenceableClass.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/ReferenceableClass.h	2011-10-11 21:47:56.013671800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_REFERENCABLECLASS_H
 #define TT_INCLUDE_REFERENCABLECLASS_H
 #include "engine_io.h"
diff -uwr source/scripts/ReferencerClass.cpp 4.0/source/scripts/ReferencerClass.cpp
--- source/scripts/ReferencerClass.cpp	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/ReferencerClass.cpp	2011-10-11 23:06:32.150390600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "ScriptableGameObj.h"
 
diff -uwr source/scripts/ReferencerClass.h 4.0/source/scripts/ReferencerClass.h
--- source/scripts/ReferencerClass.h	2010-05-31 13:36:04.000000000 +0800
+++ 4.0/source/scripts/ReferencerClass.h	2011-10-11 21:47:53.953125000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__REFERENCERCLASS_H
 #define TT_INCLUDE__REFERENCERCLASS_H
 
diff -uwr source/scripts/RefineryGameObj.h 4.0/source/scripts/RefineryGameObj.h
--- source/scripts/RefineryGameObj.h	2010-05-31 12:35:50.000000000 +0800
+++ 4.0/source/scripts/RefineryGameObj.h	2011-10-11 21:47:50.632812500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__REFINERYGAMEOBJ_H
 #define TT_INCLUDE__REFINERYGAMEOBJ_H
 
@@ -40,6 +51,16 @@
 	void					Set_Dock_TM (const Matrix3D &tm)	{ DockTM = tm; }
 	virtual	void		Export_Rare (BitStreamClass &packet);
 	virtual	void		Import_Rare (BitStreamClass &packet);
+	void Destroy_Harvester();
+	void					Block_Harvester_Spawn()
+	{
+		Destroy_Harvester();
+		AllowHarvesterSpawn = false;
+	}
+	void					Allow_Harvester_Spawn()
+	{
+		AllowHarvesterSpawn = true;
+	}
 private:
 	void					Load_Variables (ChunkLoadClass &cload);	
 	HarvesterClass *	Harvester;
@@ -52,6 +73,7 @@
 	float					DistributionTimer;
 	Matrix3D				DockTM;
 	AudibleSoundClass * MoneyTrickleSound;
+	bool					AllowHarvesterSpawn;
 }; // 2232, RH7 2252
 
 
diff -uwr source/scripts/RefineryGameObjDef.h 4.0/source/scripts/RefineryGameObjDef.h
--- source/scripts/RefineryGameObjDef.h	2009-12-24 19:55:50.000000000 +0800
+++ 4.0/source/scripts/RefineryGameObjDef.h	2011-10-11 21:47:47.846679600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__REFINERYGAMEOBJDEF_H
 #define TT_INCLUDE__REFINERYGAMEOBJDEF_H
 
diff -uwr source/scripts/RenderObjClass.h 4.0/source/scripts/RenderObjClass.h
--- source/scripts/RenderObjClass.h	2011-03-16 13:07:52.000000000 +0800
+++ 4.0/source/scripts/RenderObjClass.h	2011-10-11 21:44:46.656250000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__RENDEROBJCLASS_H
 #define TT_INCLUDE__RENDEROBJCLASS_H
 
diff -uwr source/scripts/RepairBayGameObj.h 4.0/source/scripts/RepairBayGameObj.h
--- source/scripts/RepairBayGameObj.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/RepairBayGameObj.h	2011-10-11 21:44:44.096679600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__REPAIRBAYGAMEOBJ_H
 #define TT_INCLUDE__REPAIRBAYGAMEOBJ_H
 
diff -uwr source/scripts/RepairBayGameObjDef.h 4.0/source/scripts/RepairBayGameObjDef.h
--- source/scripts/RepairBayGameObjDef.h	2009-12-24 19:51:58.000000000 +0800
+++ 4.0/source/scripts/RepairBayGameObjDef.h	2011-10-11 21:44:42.151367100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__REPAIRBAYGAMEOBJDEF_H
 #define TT_INCLUDE__REPAIRBAYGAMEOBJDEF_H
 
diff -uwr source/scripts/SList.h 4.0/source/scripts/SList.h
--- source/scripts/SList.h	2011-05-31 10:17:18.000000000 +0800
+++ 4.0/source/scripts/SList.h	2011-10-11 21:43:47.846679600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SLIST_H
 #define TT_INCLUDE__SLIST_H
 
diff -uwr source/scripts/SamSiteGameObj.h 4.0/source/scripts/SamSiteGameObj.h
--- source/scripts/SamSiteGameObj.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/SamSiteGameObj.h	2011-10-11 21:44:36.515625000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SAMSITEGAMEOBJ_H
 #define TT_INCLUDE_SAMSITEGAMEOBJ_H
 #include "SmartGameObj.h"
diff -uwr source/scripts/SamSiteGameObjDef.h 4.0/source/scripts/SamSiteGameObjDef.h
--- source/scripts/SamSiteGameObjDef.h	2011-05-22 15:05:40.000000000 +0800
+++ 4.0/source/scripts/SamSiteGameObjDef.h	2011-10-11 21:44:34.754882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SAMSITEGAMEOBJDEF_H
 #define TT_INCLUDE_SAMSITEGAMEOBJDEF_H
 #include "SmartGameObjDef.h"
diff -uwr source/scripts/SaveLoadSubSystemClass.h 4.0/source/scripts/SaveLoadSubSystemClass.h
--- source/scripts/SaveLoadSubSystemClass.h	2010-03-24 10:48:56.000000000 +0800
+++ 4.0/source/scripts/SaveLoadSubSystemClass.h	2011-10-11 21:44:33.041015600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SAVELOADSUBSYSTEMCLASS_H
 #define TT_INCLUDE__SAVELOADSUBSYSTEMCLASS_H
 
diff -uwr source/scripts/SaveLoadSystemClass.h 4.0/source/scripts/SaveLoadSystemClass.h
--- source/scripts/SaveLoadSystemClass.h	2011-05-24 09:10:42.000000000 +0800
+++ 4.0/source/scripts/SaveLoadSystemClass.h	2011-10-11 21:44:30.558593700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SAVELOADSYSTEMCLASS_H
 #define TT_INCLUDE__SAVELOADSYSTEMCLASS_H
 #include "PointerRemapClass.h"
diff -uwr source/scripts/SceneClass.h 4.0/source/scripts/SceneClass.h
--- source/scripts/SceneClass.h	2009-11-09 18:58:08.000000000 +0800
+++ 4.0/source/scripts/SceneClass.h	2011-10-11 21:44:28.641601500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SCENECLASS_H
 #define TT_INCLUDE__SCENECLASS_H
 
diff -uwr source/scripts/ScriptZoneGameObj.h 4.0/source/scripts/ScriptZoneGameObj.h
--- source/scripts/ScriptZoneGameObj.h	2011-05-30 20:36:44.000000000 +0800
+++ 4.0/source/scripts/ScriptZoneGameObj.h	2011-10-11 21:44:16.839843700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SCRIPTZONEGAMEOBJ_H
 #define TT_INCLUDE_SCRIPTZONEGAMEOBJ_H
 #include "SList.h"
diff -uwr source/scripts/ScriptZoneGameObjDef.h 4.0/source/scripts/ScriptZoneGameObjDef.h
--- source/scripts/ScriptZoneGameObjDef.h	2011-05-30 20:36:44.000000000 +0800
+++ 4.0/source/scripts/ScriptZoneGameObjDef.h	2011-10-11 21:44:14.845703100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SCRIPTZONEGAMEOBJDEF_H
 #define TT_INCLUDE_SCRIPTZONEGAMEOBJDEF_H
 #include "ScriptableGameObjDef.h"
diff -uwr source/scripts/ScriptableGameObj.h 4.0/source/scripts/ScriptableGameObj.h
--- source/scripts/ScriptableGameObj.h	2011-05-10 22:44:22.000000000 +0800
+++ 4.0/source/scripts/ScriptableGameObj.h	2011-10-11 21:44:26.625000000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SCRIPTABLEGAMEOBJ_H
 #define TT_INCLUDE_SCRIPTABLEGAMEOBJ_H
 class ScriptableGameObj;
diff -uwr source/scripts/ScriptableGameObjDef.h 4.0/source/scripts/ScriptableGameObjDef.h
--- source/scripts/ScriptableGameObjDef.h	2011-08-01 09:10:34.000000000 +0800
+++ 4.0/source/scripts/ScriptableGameObjDef.h	2011-10-11 21:44:24.187500000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SCRIPTABLEGAMEOBJDEF_H
 #define TT_INCLUDE_SCRIPTABLEGAMEOBJDEF_H
 #include "BaseGameObjDef.h"
diff -uwr source/scripts/SimpleDefinitionFactoryClass.h 4.0/source/scripts/SimpleDefinitionFactoryClass.h
--- source/scripts/SimpleDefinitionFactoryClass.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/SimpleDefinitionFactoryClass.h	2011-10-11 21:44:01.701171800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SIMPLEDEFINITIONFACTORYCLASS_H
 #define TT_INCLUDE_SIMPLEDEFINITIONFACTORYCLASS_H
 #include "DefinitionFactoryClass.h"
diff -uwr source/scripts/SimpleFileFactoryClass.cpp 4.0/source/scripts/SimpleFileFactoryClass.cpp
--- source/scripts/SimpleFileFactoryClass.cpp	2011-05-12 22:44:18.000000000 +0800
+++ 4.0/source/scripts/SimpleFileFactoryClass.cpp	2011-10-11 23:06:14.933593700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "SimpleFileFactoryClass.h"
 #include "BufferedFileClass.h"
diff -uwr source/scripts/SimpleFileFactoryClass.h 4.0/source/scripts/SimpleFileFactoryClass.h
--- source/scripts/SimpleFileFactoryClass.h	2009-11-15 10:06:44.000000000 +0800
+++ 4.0/source/scripts/SimpleFileFactoryClass.h	2011-10-11 21:43:59.509765600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SIMPLEFILEFACTORYCLASS_H
 #define TT_INCLUDE_SIMPLEFILEFACTORYCLASS_H
 #include "engine_io.h"
diff -uwr source/scripts/SimpleGameObj.h 4.0/source/scripts/SimpleGameObj.h
--- source/scripts/SimpleGameObj.h	2011-08-04 21:38:32.000000000 +0800
+++ 4.0/source/scripts/SimpleGameObj.h	2011-10-11 21:43:56.718750000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SIMPLEGAMEOBJ_H
 #define TT_INCLUDE_SIMPLEGAMEOBJ_H
 #include "PhysicalGameObj.h"
diff -uwr source/scripts/SimpleGameObjDef.h 4.0/source/scripts/SimpleGameObjDef.h
--- source/scripts/SimpleGameObjDef.h	2009-12-24 19:49:38.000000000 +0800
+++ 4.0/source/scripts/SimpleGameObjDef.h	2011-10-11 21:43:54.694335900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SIMPLEGAMEOBJDEF_H
 #define TT_INCLUDE_SIMPLEGAMEOBJDEF_H
 #include "PhysicalGameObjDef.h"
diff -uwr source/scripts/SimplePersistFactoryClass.h 4.0/source/scripts/SimplePersistFactoryClass.h
--- source/scripts/SimplePersistFactoryClass.h	2009-11-09 18:58:08.000000000 +0800
+++ 4.0/source/scripts/SimplePersistFactoryClass.h	2011-10-11 21:43:52.679687500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SIMPLEPERSISTFACTORYCLASS_H
 #define TT_INCLUDE__SIMPLEPERSISTFACTORYCLASS_H
 
diff -uwr source/scripts/Singleton.h 4.0/source/scripts/Singleton.h
--- source/scripts/Singleton.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/Singleton.h	2011-10-11 21:43:50.411132800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SINGLETON_H
 #define TT_INCLUDE__SINGLETON_H
 
diff -uwr source/scripts/SmartGameObj.h 4.0/source/scripts/SmartGameObj.h
--- source/scripts/SmartGameObj.h	2010-05-31 12:57:10.000000000 +0800
+++ 4.0/source/scripts/SmartGameObj.h	2011-10-11 21:43:45.486328100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SMARTGAMEOBJ_H
 #define TT_INCLUDE__SMARTGAMEOBJ_H
 
diff -uwr source/scripts/SmartGameObjDef.h 4.0/source/scripts/SmartGameObjDef.h
--- source/scripts/SmartGameObjDef.h	2009-12-24 19:48:24.000000000 +0800
+++ 4.0/source/scripts/SmartGameObjDef.h	2011-10-11 21:43:42.815429600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SMARTGAMEOBJDEF_H
 #define TT_INCLUDE__SMARTGAMEOBJDEF_H
 
diff -uwr source/scripts/SoldierFactoryGameObj.h 4.0/source/scripts/SoldierFactoryGameObj.h
--- source/scripts/SoldierFactoryGameObj.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/SoldierFactoryGameObj.h	2011-10-11 21:43:39.913085900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SOLDIERFACTORYGAMEOBJ_H
 #define TT_INCLUDE__SOLDIERFACTORYGAMEOBJ_H
 #include "BuildingGameObj.h"
diff -uwr source/scripts/SoldierFactoryGameObjDef.h 4.0/source/scripts/SoldierFactoryGameObjDef.h
--- source/scripts/SoldierFactoryGameObjDef.h	2009-12-24 19:55:56.000000000 +0800
+++ 4.0/source/scripts/SoldierFactoryGameObjDef.h	2011-10-11 21:43:37.670898400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SOLDIERFACTORYGAMEOBJDEF_H
 #define TT_INCLUDE__SOLDIERFACTORYGAMEOBJDEF_H
 #include "BuildingGameObjDef.h"
diff -uwr source/scripts/SoldierGameObj.h 4.0/source/scripts/SoldierGameObj.h
--- source/scripts/SoldierGameObj.h	2011-09-03 11:00:20.000000000 +0800
+++ 4.0/source/scripts/SoldierGameObj.h	2011-10-13 11:34:11.870117100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SOLDIERGAMEOBJ_H
 #define TT_INCLUDE__SOLDIERGAMEOBJ_H
 
@@ -166,6 +177,8 @@
 	const char *		Get_State_Name( void )		{ return HumanState.Get_State_Name(); }
 	void Set_Can_Steal_Vehicles(bool onoff) { CanStealVehicles = onoff; Set_Object_Dirty_Bit(BIT_RARE, true); }
 	bool Can_Steal_Vehicles() { return CanStealVehicles; }
+	void Set_Can_Drive_Vehicles(bool onoff) { CanDriveVehicles = onoff; Set_Object_Dirty_Bit(BIT_RARE, true); }
+	bool Can_Drive_Vehicles() { return CanDriveVehicles; }
 protected:
 	RenderObjClass		*	WeaponRenderModel; //2416
 	RenderObjClass		*	BackWeaponRenderModel; //2420
@@ -218,6 +231,7 @@
 	float						ReloadingTilt; //3368
 	bool						WeaponChanged; //3372
 	bool						CanStealVehicles; // padding
+	bool						CanDriveVehicles; // padding
 	PersistantSurfaceEmitterClass * WaterWake; //3376
 	DynamicVectorClass<RenderObjClass*>	RenderObjList; //3380
 	void						Add_RenderObj( RenderObjClass * obj );
diff -uwr source/scripts/SoldierGameObjDef.h 4.0/source/scripts/SoldierGameObjDef.h
--- source/scripts/SoldierGameObjDef.h	2011-05-24 18:21:40.000000000 +0800
+++ 4.0/source/scripts/SoldierGameObjDef.h	2011-10-11 21:43:34.199218700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SOLDIERGAMEOBJDEF_H
 #define TT_INCLUDE__SOLDIERGAMEOBJDEF_H
 
diff -uwr source/scripts/Sound3DClass.h 4.0/source/scripts/Sound3DClass.h
--- source/scripts/Sound3DClass.h	2011-08-25 23:02:30.000000000 +0800
+++ 4.0/source/scripts/Sound3DClass.h	2011-10-11 21:43:32.148437500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SOUND3DCLASS_H
 #define TT_INCLUDE__SOUND3DCLASS_H
 
diff -uwr source/scripts/SoundBufferClass.h 4.0/source/scripts/SoundBufferClass.h
--- source/scripts/SoundBufferClass.h	2009-11-09 18:47:58.000000000 +0800
+++ 4.0/source/scripts/SoundBufferClass.h	2011-10-11 21:43:30.267578100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SOUNDBUFFERCLASS_H
 #define TT_INCLUDE_SOUNDBUFFERCLASS_H
 #include "engine_vector.h"
@@ -12,6 +23,7 @@
 	uint32 uBits;      // 52
 	uint32 uChannels;  // 56
 	uint32 uType;      // 60
+	virtual ~SoundBufferClass();
 	virtual bool        Load_From_File   (const char* cFile);
 	virtual bool        Load_From_File   (FileClass& xFile);
 	virtual bool        Load_From_Memory (const char* cBuffer, uint32 uLength);
diff -uwr source/scripts/SoundSceneObjClass.h 4.0/source/scripts/SoundSceneObjClass.h
--- source/scripts/SoundSceneObjClass.h	2011-08-25 23:15:18.000000000 +0800
+++ 4.0/source/scripts/SoundSceneObjClass.h	2011-10-11 21:43:28.017578100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef __SOUNDSCENEOBJCLASS_H__
 #define __SOUNDSCENEOBJCLASS_H__
 
diff -uwr source/scripts/SpecialEffectsGameObj.h 4.0/source/scripts/SpecialEffectsGameObj.h
--- source/scripts/SpecialEffectsGameObj.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/SpecialEffectsGameObj.h	2011-10-11 21:43:25.304687500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SPECIALEFFECTSGAMEOBJ_H
 #define TT_INCLUDE_SPECIALEFFECTSGAMEOBJ_H
 #include "PhysicalGameObj.h"
diff -uwr source/scripts/SpecialEffectsGameObjDef.h 4.0/source/scripts/SpecialEffectsGameObjDef.h
--- source/scripts/SpecialEffectsGameObjDef.h	2011-05-24 18:22:02.000000000 +0800
+++ 4.0/source/scripts/SpecialEffectsGameObjDef.h	2011-10-11 21:43:23.110351500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_SPECIALEFFECTSGAMEOBJDEF_H
 #define TT_INCLUDE_SPECIALEFFECTSGAMEOBJDEF_H
 #include "PhysicalGameObjDef.h"
diff -uwr source/scripts/SphereClass.h 4.0/source/scripts/SphereClass.h
--- source/scripts/SphereClass.h	2009-01-12 21:41:54.000000000 +0800
+++ 4.0/source/scripts/SphereClass.h	2011-10-11 21:43:20.840820300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SPHERECLASS_H
 #define TT_INCLUDE__SPHERECLASS_H
 
diff -uwr source/scripts/Standard.h 4.0/source/scripts/Standard.h
--- source/scripts/Standard.h	2011-08-09 10:21:28.000000000 +0800
+++ 4.0/source/scripts/Standard.h	2011-10-11 21:43:18.732421800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__STANDARD_H
 #define TT_INCLUDE__STANDARD_H
 
diff -uwr source/scripts/StaticAnimPhysClass.h 4.0/source/scripts/StaticAnimPhysClass.h
--- source/scripts/StaticAnimPhysClass.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/StaticAnimPhysClass.h	2011-10-11 21:43:16.227539000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__STATICANIMPHYSCLASS_H
 #define TT_INCLUDE__STATICANIMPHYSCLASS_H
 
diff -uwr source/scripts/StaticPhysClass.h 4.0/source/scripts/StaticPhysClass.h
--- source/scripts/StaticPhysClass.h	2010-06-14 15:32:50.000000000 +0800
+++ 4.0/source/scripts/StaticPhysClass.h	2011-10-11 21:43:13.340820300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__STATICPHYSCLASS_H
 #define TT_INCLUDE__STATICPHYSCLASS_H
 
diff -uwr source/scripts/StealthEffectClass.h 4.0/source/scripts/StealthEffectClass.h
--- source/scripts/StealthEffectClass.h	2010-03-08 12:07:18.000000000 +0800
+++ 4.0/source/scripts/StealthEffectClass.h	2011-10-11 21:43:11.367187500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__STEALTHEFFECTCLASS_H
 #define TT_INCLUDE__STEALTHEFFECTCLASS_H
 
diff -uwr source/scripts/SysTimeClass.cpp 4.0/source/scripts/SysTimeClass.cpp
--- source/scripts/SysTimeClass.cpp	2011-05-24 09:10:42.000000000 +0800
+++ 4.0/source/scripts/SysTimeClass.cpp	2011-10-13 01:39:18.440429600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 
 #include "SysTimeClass.h"
diff -uwr source/scripts/SysTimeClass.h 4.0/source/scripts/SysTimeClass.h
--- source/scripts/SysTimeClass.h	2011-05-24 09:10:42.000000000 +0800
+++ 4.0/source/scripts/SysTimeClass.h	2011-10-11 21:43:00.449218700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__SYSTIMECLASS_H
 #define TT_INCLUDE__SYSTIMECLASS_H
 
diff -uwr source/scripts/TDBCategoryClass.cpp 4.0/source/scripts/TDBCategoryClass.cpp
--- source/scripts/TDBCategoryClass.cpp	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/TDBCategoryClass.cpp	2011-10-11 23:12:47.838867100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "TDBCategoryClass.h"
 #include "SimplePersistFactoryClass.h"
diff -uwr source/scripts/TDBCategoryClass.h 4.0/source/scripts/TDBCategoryClass.h
--- source/scripts/TDBCategoryClass.h	2010-03-24 10:49:12.000000000 +0800
+++ 4.0/source/scripts/TDBCategoryClass.h	2011-10-11 21:41:50.495117100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_TDBCATEGORYCLASS_H
 #define TT_INCLUDE_TDBCATEGORYCLASS_H
 
diff -uwr source/scripts/TDBObjClass.cpp 4.0/source/scripts/TDBObjClass.cpp
--- source/scripts/TDBObjClass.cpp	2011-05-16 06:52:10.000000000 +0800
+++ 4.0/source/scripts/TDBObjClass.cpp	2011-10-11 23:12:46.063476500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "TDBObjClass.h"
 #include "SimplePersistFactoryClass.h"
diff -uwr source/scripts/TDBObjClass.h 4.0/source/scripts/TDBObjClass.h
--- source/scripts/TDBObjClass.h	2010-03-24 10:49:12.000000000 +0800
+++ 4.0/source/scripts/TDBObjClass.h	2011-10-11 21:41:48.075195300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__TDBOBJCLASS_H
 #define TT_INCLUDE__TDBOBJCLASS_H
 
diff -uwr source/scripts/TeamPurchaseSettingsDefClass.h 4.0/source/scripts/TeamPurchaseSettingsDefClass.h
--- source/scripts/TeamPurchaseSettingsDefClass.h	2011-06-17 13:45:10.000000000 +0800
+++ 4.0/source/scripts/TeamPurchaseSettingsDefClass.h	2011-10-11 21:41:45.217773400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_TEAMPURCHASESETTINGSDEFCLASS_H
 #define TT_INCLUDE_TEAMPURCHASESETTINGSDEFCLASS_H
 #include "Definition.h"
diff -uwr source/scripts/ThreadClass.cpp 4.0/source/scripts/ThreadClass.cpp
--- source/scripts/ThreadClass.cpp	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/ThreadClass.cpp	2011-10-11 23:12:19.890625000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "ThreadClass.h"
 #include "SysTimeClass.h"
diff -uwr source/scripts/ThreadClass.h 4.0/source/scripts/ThreadClass.h
--- source/scripts/ThreadClass.h	2010-12-11 11:08:58.000000000 +0800
+++ 4.0/source/scripts/ThreadClass.h	2011-10-11 21:41:37.855468700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__THREADCLASS_H
 #define TT_INCLUDE__THREADCLASS_H
 
diff -uwr source/scripts/TransitionGameObj.h 4.0/source/scripts/TransitionGameObj.h
--- source/scripts/TransitionGameObj.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/TransitionGameObj.h	2011-10-11 21:41:35.694335900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_TRANSITIONGAMEOBJ_H
 #define TT_INCLUDE_TRANSITIONGAMEOBJ_H
 #include "BaseGameObj.h"
diff -uwr source/scripts/TransitionGameObjDef.h 4.0/source/scripts/TransitionGameObjDef.h
--- source/scripts/TransitionGameObjDef.h	2011-05-22 03:04:24.000000000 +0800
+++ 4.0/source/scripts/TransitionGameObjDef.h	2011-10-11 21:41:33.498046800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_TRANSITIONGAMEOBJDEF_H
 #define TT_INCLUDE_TRANSITIONGAMEOBJDEF_H
 #include "OBBoxClass.h"
diff -uwr source/scripts/TransitionInstanceClass.h 4.0/source/scripts/TransitionInstanceClass.h
--- source/scripts/TransitionInstanceClass.h	2011-04-25 07:36:36.000000000 +0800
+++ 4.0/source/scripts/TransitionInstanceClass.h	2011-10-11 21:41:30.524414000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__TRANSITIONINSTANCECLASS_H
 #define TT_INCLUDE__TRANSITIONINSTANCECLASS_H
 class TransitionCompletionDataStruct;
diff -uwr source/scripts/TranslateDBClass.cpp 4.0/source/scripts/TranslateDBClass.cpp
--- source/scripts/TranslateDBClass.cpp	2011-08-07 14:06:12.000000000 +0800
+++ 4.0/source/scripts/TranslateDBClass.cpp	2011-10-11 23:12:18.201171800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "TranslateDBClass.h"
 #include "PersistFactoryClass.h"
@@ -203,7 +214,7 @@
 
 #ifndef TDBEDIT
 	// add a few custom translation entries if they don't already exist
-	if (!Find_Object("IDS_MENU_HIGH_RES_SHADOW"))
+	if (!Find_Object("IDS_MENU_HIGH_RES_SHADOWS"))
 	{
 		TDBObjClass* obj = new TDBObjClass();
 		obj->Set_ID_Desc("IDS_MENU_HIGH_RES_SHADOWS");
diff -uwr source/scripts/TranslateDBClass.h 4.0/source/scripts/TranslateDBClass.h
--- source/scripts/TranslateDBClass.h	2011-05-24 10:07:46.000000000 +0800
+++ 4.0/source/scripts/TranslateDBClass.h	2011-10-11 21:41:17.002929600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__TRANSLATEDBCLASS_H
 #define TT_INCLUDE__TRANSLATEDBCLASS_H
 
diff -uwr source/scripts/TwiddlerClass.h 4.0/source/scripts/TwiddlerClass.h
--- source/scripts/TwiddlerClass.h	2009-12-24 19:35:52.000000000 +0800
+++ 4.0/source/scripts/TwiddlerClass.h	2011-10-11 21:41:14.732421800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_TWIDDLERCLASS_H
 #define TT_INCLUDE_TWIDDLERCLASS_H
 #include "Definition.h"
diff -uwr source/scripts/Types.h 4.0/source/scripts/Types.h
--- source/scripts/Types.h	2010-03-24 10:49:14.000000000 +0800
+++ 4.0/source/scripts/Types.h	2011-10-11 21:41:12.507812500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__TYPES_H
 #define TT_INCLUDE__TYPES_H
 
diff -uwr source/scripts/UndergroundEffectClass.h 4.0/source/scripts/UndergroundEffectClass.h
--- source/scripts/UndergroundEffectClass.h	2010-03-17 10:10:14.000000000 +0800
+++ 4.0/source/scripts/UndergroundEffectClass.h	2011-10-11 21:41:10.471679600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__UNDERGROUNDEFFECTCLASS_H
 #define TT_INCLUDE__UNDERGROUNDEFFECTCLASS_H
 
diff -uwr source/scripts/Vector3.h 4.0/source/scripts/Vector3.h
--- source/scripts/Vector3.h	2011-05-24 21:43:54.000000000 +0800
+++ 4.0/source/scripts/Vector3.h	2011-10-11 21:41:06.523437500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__VECTOR3_H
 #define TT_INCLUDE__VECTOR3_H
 #include "wwmath.h"
diff -uwr source/scripts/Vector3i.h 4.0/source/scripts/Vector3i.h
--- source/scripts/Vector3i.h	2011-05-24 21:43:54.000000000 +0800
+++ 4.0/source/scripts/Vector3i.h	2011-10-11 21:41:04.574218700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_VECTOR3I_H
 #define TT_INCLUDE_VECTOR3I_H
 class Vector3i
diff -uwr source/scripts/VehicleFactoryGameObj.h 4.0/source/scripts/VehicleFactoryGameObj.h
--- source/scripts/VehicleFactoryGameObj.h	2011-06-12 18:01:48.000000000 +0800
+++ 4.0/source/scripts/VehicleFactoryGameObj.h	2011-10-21 09:32:27.700195300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__VEHICLEFACTORYGAMEOBJ_H
 #define TT_INCLUDE__VEHICLEFACTORYGAMEOBJ_H
 
@@ -23,6 +34,8 @@
 	bool					Is_Available (void) const	{ return (IsBusy == false) && (IsDestroyed == false); }
 	bool					Is_Available_For_Purchase (void) const;
 	bool					Is_Busy (void) const			{ return IsBusy; }
+	bool					Is_Disabled (void) const			{ return IsDisabled; }
+	void					Set_Disabled(bool disabled)         { IsDisabled = disabled; Set_Object_Dirty_Bit (BIT_RARE, true);}
 	int					Get_Team_Vehicle_Count(void) const; 
 	bool					SCRIPTS_API Request_Vehicle (int defintion_id, float generation_time,SoldierGameObj * player = NULL);
 	const Matrix3D &	Get_Creation_TM (void)						{ return CreationTM; }
@@ -48,6 +61,7 @@
 	int					LastDeliveryPath;
 	int                 LastFlyingDeliveryPath;
 	float					EndTimer;
+	int IsDisabled;
 	static int MaxVehiclesPerTeam;
 }; // 08CC
 
diff -uwr source/scripts/VehicleFactoryGameObjDef.h 4.0/source/scripts/VehicleFactoryGameObjDef.h
--- source/scripts/VehicleFactoryGameObjDef.h	2011-06-13 22:29:48.000000000 +0800
+++ 4.0/source/scripts/VehicleFactoryGameObjDef.h	2011-10-11 21:40:57.450195300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__VEHICLEFACTORYGAMEOBJDEF_H
 #define TT_INCLUDE__VEHICLEFACTORYGAMEOBJDEF_H
 
diff -uwr source/scripts/VehicleGameObj.h 4.0/source/scripts/VehicleGameObj.h
--- source/scripts/VehicleGameObj.h	2011-05-10 07:46:14.000000000 +0800
+++ 4.0/source/scripts/VehicleGameObj.h	2011-10-13 16:09:05.123046800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT__VEHICLEGAMEOBJ_H
 #define TT__VEHICLEGAMEOBJ_H
 
@@ -50,7 +61,7 @@
 	void	Add_Occupant( SoldierGameObj * occupant );
 	void	Remove_Occupant( SoldierGameObj * occupant );
 	bool	Contains_Occupant( SoldierGameObj * occupant );
-	int	Get_Occupant_Count(void);
+	int	SCRIPTS_API Get_Occupant_Count(void);
 	int	Find_Seat( SoldierGameObj * occupant );
 	SoldierGameObj * Get_Driver(void);
 	SoldierGameObj * Get_Gunner(void);
@@ -103,6 +114,7 @@
 	void					Unignore_Occupants( void );
 	SoldierGameObj *Get_Occupant(int seat) {return SeatOccupants[seat];}
 	void Set_Is_Scripts_Visible(bool b) {SCRIPTS_visible = b;}
+	bool Get_Is_Scripts_Visible() {return SCRIPTS_visible;}
 	void Set_Scripts_Last_Team(char c) {SCRIPTS_LastTeam = c;}
 	void Set_Scripts_Can_Fire(bool b) {SCRIPTS_CanFire = b;Set_Object_Dirty_Bit(NetworkObjectClass::BIT_FREQUENT,true);}
 	bool Get_Scripts_Can_Fire() { return SCRIPTS_CanFire; };
diff -uwr source/scripts/VehicleGameObjDef.h 4.0/source/scripts/VehicleGameObjDef.h
--- source/scripts/VehicleGameObjDef.h	2009-12-24 19:44:56.000000000 +0800
+++ 4.0/source/scripts/VehicleGameObjDef.h	2011-10-11 21:40:51.412109300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__VEHICLEGAMEOBJDEF_H
 #define TT_INCLUDE__VEHICLEGAMEOBJDEF_H
 
diff -uwr source/scripts/VisTableMgrClass.h 4.0/source/scripts/VisTableMgrClass.h
--- source/scripts/VisTableMgrClass.h	2011-06-18 17:30:38.000000000 +0800
+++ 4.0/source/scripts/VisTableMgrClass.h	2011-10-11 21:40:48.940429600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__VISTABLEMGRCLASS_H
 #define TT_INCLUDE__VISTABLEMGRCLASS_H
 
diff -uwr source/scripts/WWAudioClass.h 4.0/source/scripts/WWAudioClass.h
--- source/scripts/WWAudioClass.h	2011-06-09 16:50:34.000000000 +0800
+++ 4.0/source/scripts/WWAudioClass.h	2011-10-13 00:01:56.224609300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef __WWAUDIOCLASS_H__
 #define __WWAUDIOCLASS_H__
 #include "engine_common.h"
diff -uwr source/scripts/WarFactoryGameObj.h 4.0/source/scripts/WarFactoryGameObj.h
--- source/scripts/WarFactoryGameObj.h	2009-11-09 18:57:52.000000000 +0800
+++ 4.0/source/scripts/WarFactoryGameObj.h	2011-10-11 21:40:43.303710900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__WARFACTORYGAMEOBJ_H
 #define TT_INCLUDE__WARFACTORYGAMEOBJ_H
 
diff -uwr source/scripts/WarFactoryGameObjDef.h 4.0/source/scripts/WarFactoryGameObjDef.h
--- source/scripts/WarFactoryGameObjDef.h	2011-05-24 17:36:26.000000000 +0800
+++ 4.0/source/scripts/WarFactoryGameObjDef.h	2011-10-11 21:40:40.850585900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__WARFACTORYGAMEOBJDEF_H
 #define TT_INCLUDE__WARFACTORYGAMEOBJDEF_H
 
diff -uwr source/scripts/WeaponBagClass.h 4.0/source/scripts/WeaponBagClass.h
--- source/scripts/WeaponBagClass.h	2011-08-05 18:41:18.000000000 +0800
+++ 4.0/source/scripts/WeaponBagClass.h	2011-10-11 21:40:38.683593700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_WEAPONBAGCLASS_H
 #define TT_INCLUDE_WEAPONBAGCLASS_H
 #include "ArmedGameObj.h"
diff -uwr source/scripts/WeaponClass.h 4.0/source/scripts/WeaponClass.h
--- source/scripts/WeaponClass.h	2011-08-20 09:50:42.000000000 +0800
+++ 4.0/source/scripts/WeaponClass.h	2011-10-11 21:40:34.213867100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_WEAPONCLASS_H
 #define TT_INCLUDE_WEAPONCLASS_H
 #include "WeaponMgr.h"
diff -uwr source/scripts/WeaponManager.h 4.0/source/scripts/WeaponManager.h
--- source/scripts/WeaponManager.h	2009-11-09 18:47:58.000000000 +0800
+++ 4.0/source/scripts/WeaponManager.h	2011-10-11 21:40:32.000976500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_WEAPONMANAGER_H
 #define TT_INCLUDE_WEAPONMANAGER_H
 
diff -uwr source/scripts/WidgetUserClass.h 4.0/source/scripts/WidgetUserClass.h
--- source/scripts/WidgetUserClass.h	2011-06-05 17:42:40.000000000 +0800
+++ 4.0/source/scripts/WidgetUserClass.h	2011-10-11 21:40:27.836914000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__WIDGETUSERCLASS_H
 #define TT_INCLUDE__WIDGETUSERCLASS_H
 
diff -uwr source/scripts/action.h 4.0/source/scripts/action.h
--- source/scripts/action.h	2010-05-21 09:42:38.000000000 +0800
+++ 4.0/source/scripts/action.h	2011-10-11 21:36:56.596679600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_ACTION_H
 #define TT_INCLUDE_ACTION_H
 #include "scripts.h"
@@ -24,7 +35,7 @@
 	bool				Load( ChunkLoadClass & cload );
 	SmartGameObj *	Get_Action_Obj( void )								{ return ActionObj; }
 	SafeActionParamsStruct &	Get_Parameters( void )				{ return Parameters; }
-	bool				Is_Acting( void );
+	SCRIPTS_API bool				Is_Acting( void );
 	bool				Is_Animating( void );
 	void				Begin_Hibernation( void );
 	void				End_Hibernation( void );
diff -uwr source/scripts/agtfix.cpp 4.0/source/scripts/agtfix.cpp
--- source/scripts/agtfix.cpp	2009-04-12 11:43:46.000000000 +0800
+++ 4.0/source/scripts/agtfix.cpp	2011-10-11 21:37:00.951171800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "scripts.h"
 #include "agtfix.h"
diff -uwr source/scripts/agtfix.h 4.0/source/scripts/agtfix.h
--- source/scripts/agtfix.h	2008-09-21 22:32:52.000000000 +0800
+++ 4.0/source/scripts/agtfix.h	2011-10-14 22:27:32.187500000 +0800
@@ -1,3 +1,15 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
+#pragma once
 class GDI_AGT : public ScriptImpClass {
 	int MissileID;
 	int GunID[4];
diff -uwr source/scripts/anticheat.ini 4.0/source/scripts/anticheat.ini
--- source/scripts/anticheat.ini	2010-11-06 11:40:16.000000000 +0800
+++ 4.0/source/scripts/anticheat.ini	2011-10-09 21:43:06.337890600 +0800
@@ -1,52 +1,50 @@
 [HashList]
-3492622198=C&C_Canyon.mix
-3468286610=C&C_City.mix
-2056652104=C&C_City_Flying.mix
-2077023672=C&C_Complex.mix
-696220441=C&C_Field.mix
-2537500301=C&C_Glacier_Flying.mix
-3151801776=C&C_Hourglass.mix
-921155793=C&C_Islands.mix
-829819001=C&C_Mesa.mix
-1408590284=C&C_Under.mix
-2592698131=C&C_Volcano.mix
-1648266313=C&C_Walls.mix
-1878995336=C&C_Walls_Flying.mix
-1422179237=M00_Tutorial.mix
-2796037991=M01.mix
-4240541720=M02.mix
-3525918012=M03.mix
-2065823666=M04.mix
-3869686791=M05.mix
-1309071960=M06.mix
-643866434=M07.mix
-3168960686=M08.mix
-4277294531=M09.mix
-80382386=M10.mix
-314886349=M11.mix
-4037708342=M13.mix
-2646442064=Skirmish00.mix
-2656855602=always.dbs
-694384650=Always2.dat
-1281686403=always.dat
-2013798185=always.dbs.1
-4075670702=always.dat.1
-383028271=always.dbs.2
-94231923=always.dat.2
-940836226=always.dbs.3
-1831076973=M07.mix.1
-1701917472=always.dat.3
-3320909507=always.dbs.4
-1016342759=Always2.dat.1
-2684472202=always.dat.4
-2831924760=always.dbs.5
-1488206749=M00_Tutorial.mix.1
-59476580=M02.mix.1
-2972595217=M04.mix.1
-217431875=M07.mix.2
-3978166873=M08.mix.1
-814170345=M03.mix.1
-1542264633=M07.mix.3
-778625709=M08.mix.2
-1236987839=hud_sniper.dds
-27267790=stealth_effect.dds
+8307d2031ade3e81cc04c98559c5ebda=C&C_Canyon.mix
+7d4a4669267f8c06a490620d57b1b05d=C&C_City.mix
+82ec9894c889ddfcd5f63689f5a63062=C&C_City_Flying.mix
+57b96de5dfbbe2c2e8c10194053b5fdf=C&C_Complex.mix
+cece311ee36c8a93c88e59e9b9c06d68=C&C_Field.mix
+2f96bcd3ae5d3e16f796fbdbf01b2cca=C&C_Glacier_Flying.mix
+1c43ae65cff6e58866a4c16a5c5ee996=C&C_Hourglass.mix
+c42baa39af0d7b28eb6ebadce5d26201=C&C_Islands.mix
+0a8de512fce0b92d226ee2a5832d346f=C&C_Mesa.mix
+7c79215c600ea81b5e75057418bd464e=C&C_Under.mix
+de9b4d494d4fa335b3c1b05dff11004c=C&C_Volcano.mix
+5b19407c31a6fd489e3276cd56aeaed1=C&C_Walls.mix
+d9f3b518e4a4e7dd4074d5f6ce43c38c=C&C_Walls_Flying.mix
+734741f0d8231262555731df3dc816ab=M00_Tutorial.mix
+14738e4f675fa11d7a5f8396c09d4c22=M01.mix
+2763f0a3ed94f447f625b64dc8908f12=M02.mix
+9fd70379e90d2e0a717123e37cea26fe=M03.mix
+fed0051fe536168d117a2ed082e33317=M04.mix
+d632ea732aab9327fa40ad19d79a3370=M05.mix
+f2d26eac7eb4fb6c7692c08a951c5037=M06.mix
+d58c21f4c903b9aba6aa695ad05f1376=M07.mix
+4864f90cdeb1529e8c5b97f2bb17925a=M08.mix
+87498788409224bc9194deb2b5f85dce=M09.mix
+5e6be9c1647650ca7584aea072471735=M10.mix
+ee082ccd9a0d48dee6ff0079e2b39c0f=M11.mix
+646dff7d0a5eb0b86cb1ae7109cab22d=M13.mix
+2189ee447e6b5956aff849b410af5025=Skirmish00.mix
+c9d5688a97855044300b5668ab67e0bb=always.dbs
+469aff795dbac34fb78025d8fea49026=Always2.dat
+ab312d439efd99480c77fa98a864d197=always.dat
+fbf9a79282c636e685196256943ce025=always.dbs
+1c7f389c011f5b19e2283a776b4d3337=always.dat
+8c8ffe78617b889583df500abe78787e=always.dbs
+437eab78264590753722ec0874829326=always.dat
+77675b6c36311fe458babc17a8d8032b=always.dbs
+eaa5db4ac7303bc12a6419cb452cbd25=M07.mix
+4ccc1a80bb68aa365807447e9a21fc78=always.dat
+2b098ff3ca99c55a57f694664a501053=always.dbs
+b1beafafffd714852b86b02b52f975dd=Always2.dat
+b3b5a7faa502f747d3bc8ff5c63a99cb=M00_Tutorial.mix
+5da07b82073c698031b3bacdf286709c=M02.mix
+ceb5f647bec120fedffc9d9fc70f9ae6=M04.mix
+2a8b9cc519325aad6fe7712c25128296=M07.mix
+f8381784f08831c2ebbe925d5c217e92=M08.mix
+1a0ab97cc19c9e999a37d0eaace238d1=M03.mix
+3f8ac3739c8179b0b5d4983b09d48fe2=M07.mix
+0f43be4f2fecf73539d5b72217d05804=M08.mix
+d36d8b57f2919c12688355179542ed96=hud_sniper.dds
+352af7c3b9673ae59ba5ff430a6c036c=stealth_effect.dds
diff -uwr source/scripts/cAMpaScripts.cpp 4.0/source/scripts/cAMpaScripts.cpp
--- source/scripts/cAMpaScripts.cpp	2010-04-14 10:13:18.000000000 +0800
+++ 4.0/source/scripts/cAMpaScripts.cpp	2011-10-11 23:04:14.081054600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	scripts by cAMpa
-	Copyright 2010 cAMpa, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/cAMpaScripts.h 4.0/source/scripts/cAMpaScripts.h
--- source/scripts/cAMpaScripts.h	2010-04-14 10:13:24.000000000 +0800
+++ 4.0/source/scripts/cAMpaScripts.h	2011-10-14 22:27:32.107421800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	scripts by cAMpa
-	Copyright 2010 cAMpa, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class cAMpa_Warn_Zone_Team : public ScriptImpClass {
 	void Created(GameObject *obj);
 	void Entered(GameObject *obj,GameObject *enterer);
diff -uwr source/scripts/cGameType.cpp 4.0/source/scripts/cGameType.cpp
--- source/scripts/cGameType.cpp	2009-11-09 18:37:34.000000000 +0800
+++ 4.0/source/scripts/cGameType.cpp	2011-10-11 23:04:12.650390600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "cGameType.h"
 
diff -uwr source/scripts/cGameType.h 4.0/source/scripts/cGameType.h
--- source/scripts/cGameType.h	2009-11-09 18:57:20.000000000 +0800
+++ 4.0/source/scripts/cGameType.h	2011-10-11 21:57:14.066406200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__CGAMETYPE_H
 #define TT_INCLUDE__CGAMETYPE_H
 
diff -uwr source/scripts/cPlayer.h 4.0/source/scripts/cPlayer.h
--- source/scripts/cPlayer.h	2011-09-05 00:01:54.000000000 +0800
+++ 4.0/source/scripts/cPlayer.h	2011-10-11 21:56:41.257812500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_CPLAYER_H
 #define TT_INCLUDE_CPLAYER_H
 #include "PlayerDataClass.h"
@@ -35,7 +46,7 @@
 	void Export_Rare(BitStreamClass &BitStream);
 	void Export_Occasional(BitStreamClass &BitStream);
 	void Delete();
-	void Set_Player_Type(int type);
+	void SCRIPTS_API Set_Player_Type(int type);
 	void Set_Ladder_Points(int amount);
 	void Set_Rung(int amount);
 	void Set_Is_Active(bool active);
diff -uwr source/scripts/coltest.cpp 4.0/source/scripts/coltest.cpp
--- source/scripts/coltest.cpp	2009-11-09 18:47:32.000000000 +0800
+++ 4.0/source/scripts/coltest.cpp	2011-10-11 23:04:09.494140600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "coltest.h"
 
diff -uwr source/scripts/coltest.h 4.0/source/scripts/coltest.h
--- source/scripts/coltest.h	2011-03-15 13:53:18.000000000 +0800
+++ 4.0/source/scripts/coltest.h	2011-10-11 21:57:04.945312500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_COLTEST_H
 #define TT_INCLUDE_COLTEST_H
 #include "coltype.h"
diff -uwr source/scripts/coltype.h 4.0/source/scripts/coltype.h
--- source/scripts/coltype.h	2010-03-13 11:04:34.000000000 +0800
+++ 4.0/source/scripts/coltype.h	2011-10-11 21:57:02.504882800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_COLTYPE_H
 #define TT_INCLUDE_COLTYPE_H
 enum
diff -uwr source/scripts/dan.cpp 4.0/source/scripts/dan.cpp
--- source/scripts/dan.cpp	2010-04-14 10:13:18.000000000 +0800
+++ 4.0/source/scripts/dan.cpp	2011-10-11 23:04:01.819335900 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Daniel King
-	Copyright 2010 Daniel King, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/dan.h 4.0/source/scripts/dan.h
--- source/scripts/dan.h	2010-04-14 10:13:24.000000000 +0800
+++ 4.0/source/scripts/dan.h	2011-10-14 22:27:32.120117100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Daniel King
-	Copyright 2010 Daniel King, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class DAN_CnC_Crate : public ScriptImpClass {
 	void Created(GameObject *obj);
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
diff -uwr source/scripts/datasafe.cpp 4.0/source/scripts/datasafe.cpp
--- source/scripts/datasafe.cpp	2011-09-01 19:50:22.000000000 +0800
+++ 4.0/source/scripts/datasafe.cpp	2011-10-13 01:39:18.443359300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "DataSafe.h"
 #include "Random2Class.h"
diff -uwr source/scripts/datasafe.h 4.0/source/scripts/datasafe.h
--- source/scripts/datasafe.h	2011-09-01 19:57:54.000000000 +0800
+++ 4.0/source/scripts/datasafe.h	2011-10-13 01:39:18.446289000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_DATASAFE_H
 #define TT_INCLUDE_DATASAFE_H
 #include "SysTimeClass.h"
diff -uwr source/scripts/definition.cpp 4.0/source/scripts/definition.cpp
--- source/scripts/definition.cpp	2009-11-09 18:37:38.000000000 +0800
+++ 4.0/source/scripts/definition.cpp	2011-10-11 23:03:55.115234300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "Definition.h"
 #include "DefinitionMgrClass.h"
diff -uwr source/scripts/dllmain.cpp 4.0/source/scripts/dllmain.cpp
--- source/scripts/dllmain.cpp	2011-09-03 08:29:46.000000000 +0800
+++ 4.0/source/scripts/dllmain.cpp	2011-10-11 23:03:47.651367100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Main loading code
-	Copyright 2010 Datalore, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/dp88_ar.cpp 4.0/source/scripts/dp88_ar.cpp
--- source/scripts/dp88_ar.cpp	2011-07-25 18:12:28.000000000 +0800
+++ 4.0/source/scripts/dp88_ar.cpp	2011-10-25 07:50:47.750976500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for the ApocRising total conversion mod
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,7 +9,6 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
 // Include files
 #include "general.h"
 #include "scripts.h"
@@ -247,43 +245,11 @@
 
 void dp88_AR_GameController::Custom ( GameObject *obj, int type, int param, GameObject *sender )
 {
-/*	if ( type == CUSTOM_TD_WAITINGFORPURCHASE )
-	{
-		if ( TD_Waiting_Console == 0 )
-		{
-			Console_Output ( "TD console reported to game controller OK! OK to proceed\n" );
-			// Report that the request has been accepted
-			TD_Waiting_Console = Commands->Get_ID ( sender );
-			Commands->Send_Custom_Event ( obj, sender, CUSTOM_TD_PURCHASEWAIT_OK, 1, 0.0 );
-
-			// Begin time-out timer
-			Commands->Start_Timer ( obj, this, 4.0, TIMER_TD_PURCHASETIMEEXPIRED );
-		}
-		else
-		{
-			Console_Output ( "TD console reported to game controller OK! Asked to wait...\n" );
-			// Report that we are busy, and get them to wait a bit
-			Commands->Send_Custom_Event ( obj, sender, CUSTOM_TD_PURCHASEWAIT_OK, 0, 0.0 );
-		}
-	}
-
-	else if ( type == CUSTOM_TD_REPORTCREATION )
-	{
-		if ( TD_Waiting_Console != 0 )
-		{
-			Commands->Send_Custom_Event ( obj, Commands->Find_Object( TD_Waiting_Console ), CUSTOM_TD_REPORTCREATION, Commands->Get_ID( sender ), 0.0 );
-			TD_Waiting_Console = 0;
-		}
-	}*/
 }
 
 
 void dp88_AR_GameController::Timer_Expired( GameObject *obj, int number )
 {
-	/*if ( number == TIMER_TD_PURCHASETIMEEXPIRED )
-	{
-		TD_Waiting_Console = 0;
-	}*/
 }
 
 
@@ -1087,7 +1053,7 @@
 	seconds, which will cause the AI to set off towards an ore field. Note that the
 	delay is required to prevent the normal harvester AI taking over */
 	if ( useAI )
-		Commands->Send_Custom_Event( obj, obj, CUSTOM_MINER_UNLOAD_ORE_COMPLETE, 1, 10.0f );
+		Commands->Send_Custom_Event( obj, obj, CUSTOM_MINER_UNLOAD_ORE_COMPLETE, 1, (float)Get_Int_Parameter("aiStartDelay") );
 }
 
 
@@ -1827,48 +1793,67 @@
 
 void dp88_RemoteControlConsole::Created ( GameObject *obj )
 {
-	Console_Output ( "[%d:%s:%s] Created - remoteControlID %d\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name(), Get_Int_Parameter("remoteControlID") );
+	//Console_Output ( "[%d:%s:%s] Created - remoteControlID %d\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name(), Get_Int_Parameter("remoteControlID") );
 
 	vehicleID		= NULL;
 	pilotID			= NULL;
-	pilotDummyID	= NULL;
-	enabled			= true;
+	m_pilotDummyID	= NULL;
+	m_bEnabled		= true;
+	m_nChargeTime	= Get_Int_Parameter ( "chargeTime" );
 
-	Commands->Enable_HUD_Pokable_Indicator(obj, true);
+	// Start charge tick timer if necessary and set initial animation frames
+	if ( m_nChargeTime > 0 )
+	{
+		Commands->Start_Timer( obj, this, 1.0f, TIMER_REMOTECONTROL_CHARGETICK);
+		Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameCharging1"), (float)Get_Int_Parameter("animFrameCharging2"), false );
+	}
+	else
+		Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameAvailable1"), (float)Get_Int_Parameter("animFrameAvailable2"), false );
+
+	Commands->Enable_HUD_Pokable_Indicator(obj, (m_nChargeTime == 0));
 }
 
 void dp88_RemoteControlConsole::Poked ( GameObject *obj, GameObject *poker )
 {
-	Console_Output ( "[%d:%s:%s] Poked\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+	//Console_Output ( "[%d:%s:%s] Poked\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 
 	// Check the team of the poker
 	int team = Get_Int_Parameter("team");
 	if ( team != 2 && Get_Object_Type(poker) != team )
 	{
-		Console_Output ( "[%d:%s:%s] DENIED OMFG\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] Console access denied\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 		// Play access denied sound
 		Create_2D_Sound_Player(poker, Get_Parameter("accessDeniedSound") );
 		return;
 	}
 
 	// Check if the terminal is offline
-	if ( !enabled )
+	if ( !m_bEnabled )
 	{
-		Console_Output ( "[%d:%s:%s] OFFLINE OMFG\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] Console is offline\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 		// Play console offline sound
 		Create_2D_Sound_Player(poker, Get_Parameter("consoleOfflineSound") );
 		return;
 	}
 
+	// Check if the terminal is charging
+	if ( m_nChargeTime > 0 )
+	{
+		//Console_Output ( "[%d:%s:%s] Console still charging\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		// Play console charging sound
+		Create_2D_Sound_Player(poker, Get_Parameter("consoleChargingSound") );
+		return;
+	}
+
 	// If no vehicle currently exists then create one
 	if ( pilotID == NULL && vehicleID == NULL )
 	{
-		Console_Output ( "[%d:%s:%s] BUYING\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] BUYING\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 		// Try to purchase the unit, will fail if we don't have enough money
 		int cost = Get_Int_Parameter ( "cost" );
 		if ( !Purchase_Item(poker, cost ) )
 		{
-			Console_Output ( "[%d:%s:%s] NO NOOLAH\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+			//Console_Output ( "[%d:%s:%s] NO NOOLAH\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 			// Play insufficient funds denied sound
 			Create_2D_Sound_Player(poker, Get_Parameter("insufficientFundsSound") );
 			return;
@@ -1882,17 +1867,22 @@
 		Commands->Enable_HUD_Pokable_Indicator(obj, false);
 
 		// ...Then create the vehicle...
-		Console_Output ( "[%d:%s:%s] Creating remote control vehicle %s\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name(), Get_Parameter ( "vehiclePreset" ) );
-		Create_Vehicle( Get_Parameter ( "vehiclePreset" ), 0.0, Commands->Find_Object( pilotID ), Get_Object_Type( Commands->Find_Object(pilotID) ) );
-
+		//Console_Output ( "[%d:%s:%s] Creating remote control vehicle %s\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name(), Get_Parameter ( "vehiclePreset" ) );
+		if (!Create_Vehicle( Get_Parameter ( "vehiclePreset" ), 0.0, Commands->Find_Object( pilotID ), Get_Object_Type( Commands->Find_Object(pilotID) ) ))
+		{
+			Timer_Expired(obj,TIMER_REMOTECONTROL_TIMEOUT);
+		}
+		else
+		{
 		// And wait for confirmation... start a timer in the event that we don't ever get this...
 		Commands->Start_Timer ( obj, this, 5.0, TIMER_REMOTECONTROL_TIMEOUT );
 	}
+	}
 
 	// OK, a vehicle already exists, does it have a pilot? If not then take control of it
 	else if ( pilotID == NULL )
 	{
-		Console_Output ( "[%d:%s:%s] ENTER EXISTING\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] ENTER EXISTING\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 		// Enable transitions and wait until they are active to put driver in
 		GameObject* vehicle = Commands->Find_Object(vehicleID);
 		if ( vehicle )
@@ -1915,10 +1905,10 @@
 
 void dp88_RemoteControlConsole::Custom( GameObject *obj, int type, int param, GameObject *sender )
 {
-	Console_Output ( "[%d:%s:%s] Custom %d - %d\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name(), type, param );
+	//Console_Output ( "[%d:%s:%s] Custom %d - %d\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name(), type, param );
 	if ( type == CUSTOM_REMOTECONTROL_CREATED && param == Get_Int_Parameter("remoteControlID") && vehicleID == NULL && pilotID != NULL )
 	{
-		Console_Output ( "[%d:%s:%s] Sending console ID to unit\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] Sending console ID to unit\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 
 		// Inform the remote control unit that this is it's console (we do this to prevent multiple
 		// consoles trying to control the same unit if two are created close together)
@@ -1930,7 +1920,7 @@
 
 	else if ( type == CUSTOM_REMOTECONTROL_CONSOLEACK )
 	{
-		Console_Output ( "[%d:%s:%s] Recieved ACK from unit, establishing control\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] Recieved ACK from unit, establishing control\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 
 		// The remote control unit has accepted us as it's control console
 		vehicleID = Commands->Get_ID(sender);
@@ -1942,26 +1932,15 @@
 
 	else if ( type == CUSTOM_REMOTECONTROL_DRIVEREXIT )
 	{
-		Console_Output ( "[%d:%s:%s] Driver exited, remote control unit now idle\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
-
-		GameObject* pilot = Commands->Find_Object(pilotID);
-		if ( pilot )
-			Commands->Set_Position ( Commands->Find_Object ( pilotID ), pilotDummyPos );
+		//Console_Output ( "[%d:%s:%s] Driver exited, remote control unit now idle\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		DestroyDummy();
+		HandleDriverExit ( obj, Commands->Find_Object(pilotID), sender );
 		pilotID = NULL;
-
-		// Set team to correct setting (so it gives points for being damaged)
-		Set_Object_Type ( sender, Get_Int_Parameter("team") );
-
-		// Disable transitions on remote vehicle
-		Commands->Enable_Vehicle_Transitions( sender, false );
-
-		// Enable pokeable indicator
-		Commands->Enable_HUD_Pokable_Indicator(obj, true);
 	}
 
 	else if ( type == CUSTOM_REMOTECONTROL_DESTROYED )
 	{
-		Console_Output ( "[%d:%s:%s] Remote control unit was destroyed\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] Remote control unit was destroyed\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 
 		vehicleID = NULL;
 
@@ -1969,8 +1948,32 @@
 		if ( pilotID != NULL )
 			Commands->Start_Timer ( obj, this, 0.5, TIMER_REMOTECONTROL_DRIVEREXIT );
 
-		// Enable pokeable indicator
-		Commands->Enable_HUD_Pokable_Indicator(obj, true);
+		// Reset charge time
+		m_nChargeTime	= Get_Int_Parameter ( "chargeTime" );
+
+		// Start charge tick timer if necessary and set initial animation frames
+		if ( m_bEnabled )
+		{
+			if ( m_nChargeTime > 0 )
+			{
+				Commands->Start_Timer( obj, this, 1.0f, TIMER_REMOTECONTROL_CHARGETICK);
+				Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameCharging1"), (float)Get_Int_Parameter("animFrameCharging2"), false );
+			}
+			else
+				Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameAvailable1"), (float)Get_Int_Parameter("animFrameAvailable2"), false );
+		}
+
+		Commands->Enable_HUD_Pokable_Indicator(obj, (m_bEnabled && m_nChargeTime == 0));
+	}
+
+	else if ( type == CUSTOM_REMOTECONTROL_DISABLED )
+	{
+		SetEnabled(obj, false);
+	}
+
+	else if ( type == CUSTOM_REMOTECONTROL_ENABLED )
+	{
+		SetEnabled(obj, true);
 	}
 }
 
@@ -1979,7 +1982,7 @@
 {
 	if ( number == TIMER_REMOTECONTROL_TIMEOUT && vehicleID == 0 )
 	{
-		Console_Output ( "[%d:%s:%s] Purchase timed out, refunding money and freeing pilot\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] Purchase timed out, refunding money and freeing pilot\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 
 		GameObject* pilot = Commands->Find_Object(pilotID);
 		if ( pilot )
@@ -1990,20 +1993,19 @@
 		pilotID = NULL;
 
 		// Enable pokeable indicator
-		Commands->Enable_HUD_Pokable_Indicator(obj, true);
+		Commands->Enable_HUD_Pokable_Indicator(obj, (m_bEnabled && m_nChargeTime == 0));
 	}
 
 
 	else if ( number == TIMER_REMOTECONTROL_DRIVERENTER )
 	{
-		Console_Output ( "[%d:%s:%s] Transitioning driver into vehicle\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
-
+		//Console_Output ( "[%d:%s:%s] Transitioning driver into vehicle\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 		GameObject* vehicle = Commands->Find_Object(vehicleID);
 		GameObject* pilot = Commands->Find_Object(pilotID);
 		if ( pilot )
 		{
 			// Create pilot dummy...
-			pilotDummyPos = Commands->Get_Position ( Commands->Find_Object ( pilotID ) );
+			CreateDummy ( pilot, Commands->Get_Position(pilot), Commands->Get_Facing(pilot) );
 
 			Commands->Control_Enable ( pilot, true );
 			Commands->Set_Position ( pilot, Commands->Get_Position ( vehicle ) );
@@ -2011,6 +2013,9 @@
 
 			// Play control established sound
 			Create_2D_Sound_Player(pilot, Get_Parameter("connectionEstablishedSound") );
+
+			// Set animation frame
+			Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameActive1"), (float)Get_Int_Parameter("animFrameActive2"), false );
 		}
 		else	// This should never actually happen... but just in case...
 		{
@@ -2018,21 +2023,142 @@
 			pilotID = NULL;
 
 			// Enable pokeable indicator
-			Commands->Enable_HUD_Pokable_Indicator(obj, true);
+			Commands->Enable_HUD_Pokable_Indicator(obj, (m_bEnabled && m_nChargeTime == 0));
 		}
 	}
 
 
+	// This can be called for the vehicle being destroyed OR the console becoming disabled
 	else if ( number == TIMER_REMOTECONTROL_DRIVEREXIT )
 	{
+		DestroyDummy();
+		HandleDriverExit ( obj, Commands->Find_Object(pilotID), Commands->Find_Object(vehicleID) );
+		pilotID = NULL;
+	}
+
+
+	// Count down tick for charge time
+	else if ( number == TIMER_REMOTECONTROL_CHARGETICK )
+	{
+		if ( m_bEnabled )
+		{
+			m_nChargeTime--;
+			if ( m_nChargeTime > 0 )
+				Commands->Start_Timer( obj, this, 1.0f, TIMER_REMOTECONTROL_CHARGETICK);
+			else
+			{
+				Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameAvailable1"), (float)Get_Int_Parameter("animFrameAvailable2"), false );
+				Commands->Enable_HUD_Pokable_Indicator(obj, true);
+			}
+		}
+	}
+}
+
+void dp88_RemoteControlConsole::SetEnabled ( GameObject* obj, bool state )
+{
+	if ( state == m_bEnabled )
+		return;
+
+	m_bEnabled = state;
+
+	// If we are no longer enabled evict the driver
+	if ( !m_bEnabled && pilotID != NULL )
+	{
 		GameObject* pilot = Commands->Find_Object(pilotID);
 		if ( pilot )
+		{
+			Soldier_Transition_Vehicle ( pilot );
+			Create_2D_Sound_Player(pilot, Get_Parameter("consoleOfflineSound") );
+			Commands->Start_Timer ( obj, this, 0.5, TIMER_REMOTECONTROL_DRIVEREXIT );
+		}
+	}
+
+	// Set pokeable indicator state
+	Commands->Enable_HUD_Pokable_Indicator(obj, (m_bEnabled && m_nChargeTime == 0));
+
+	// Update the animation frame state
+	if ( !m_bEnabled )
+		Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameDisabled1"), (float)Get_Int_Parameter("animFrameDisabled2"), false );
+	else if ( m_nChargeTime > 0 )
+	{
+		Commands->Start_Timer( obj, this, 1.0f, TIMER_REMOTECONTROL_CHARGETICK);
+		Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameCharging1"), (float)Get_Int_Parameter("animFrameCharging2"), false );
+	}
+	else
+		Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameAvailable1"), (float)Get_Int_Parameter("animFrameAvailable2"), false );
+}
+
+void dp88_RemoteControlConsole::CreateDummy ( GameObject* pilot, Vector3 position, float facing )
+{
+	GameObject* dummy = Commands->Create_Object ( "Invisible_Object", position );
+	if ( dummy )
+	{
+		m_pilotDummyID = Commands->Get_ID(dummy);
+		Commands->Set_Facing(dummy, facing);
+		pilotDummyPos = position;	// Used to put the pilot back in his original location
+
+		// Clone health/armour
+		Set_Skin(dummy, Get_Skin(pilot) );
+		Commands->Set_Shield_Type(dummy, Get_Shield_Type(pilot) );
+		Set_Max_Health(dummy, Commands->Get_Max_Health(pilot) );
+		Set_Max_Shield_Strength(dummy, Commands->Get_Max_Shield_Strength(pilot) );
+		Commands->Set_Health(dummy, Commands->Get_Health(pilot) );
+		Commands->Set_Shield_Strength(dummy, Commands->Get_Shield_Strength(pilot) );
+
+		// Link dummy and pilot health and armour
+		char pilotIdString[12];
+		sprintf ( pilotIdString, "%d", Commands->Get_ID(pilot) );
+		Attach_Script_Once ( dummy, "dp88_linkHealth", pilotIdString );
+
+		// Clone player model onto dummy
+		Commands->Set_Model ( dummy, Get_Model(pilot) );
+	}
+}
+
+void dp88_RemoteControlConsole::DestroyDummy()
+{
+	if ( m_pilotDummyID != NULL )
+	{
+		GameObject* dummy = Commands->Find_Object(m_pilotDummyID);
+		m_pilotDummyID = NULL;
+
+		// Destroy the dummy object rather than killing it - this prevents dp88_linkHealth from also
+		// killing the pilot
+		if ( dummy )
+			Commands->Destroy_Object(dummy);
+	}
+}
+
+void dp88_RemoteControlConsole::HandleDriverExit ( GameObject* obj, GameObject* pilot, GameObject* vehicle )
+{
+	if ( pilot )
 			Commands->Set_Position ( pilot, pilotDummyPos );
-		pilotID = NULL;
+
+	// If the vehicle is still alive set it to its idle state
+	if ( vehicle )
+	{
+		// Set team to correct setting (so it gives points for being damaged)
+		Set_Object_Type ( vehicle, Get_Int_Parameter("team") );
+
+		// Disable transitions on remote vehicle
+		Commands->Enable_Vehicle_Transitions( vehicle, false );
+	}
 
 		// Enable pokeable indicator
-		Commands->Enable_HUD_Pokable_Indicator(obj, true);
+	Commands->Enable_HUD_Pokable_Indicator(obj, (m_bEnabled && m_nChargeTime == 0));
+
+	// Set animation frame
+	if ( !m_bEnabled )
+		Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameDisabled1"), (float)Get_Int_Parameter("animFrameDisabled2"), false );
+	else if ( vehicle )
+		Commands->Set_Animation(obj, Get_Parameter("animFrameIdle1"), true, NULL, (float)Get_Int_Parameter("animFrameIdle2"), (float)Get_Int_Parameter("animFrameActive2"), false );
+	else if ( m_nChargeTime > 0 )
+	{
+		Commands->Start_Timer( obj, this, 1.0f, TIMER_REMOTECONTROL_CHARGETICK);
+		Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameCharging1"), (float)Get_Int_Parameter("animFrameCharging2"), false );
 	}
+	else
+		Commands->Set_Animation(obj, Get_Parameter("animationName"), true, NULL, (float)Get_Int_Parameter("animFrameAvailable1"), (float)Get_Int_Parameter("animFrameAvailable2"), false );
 }
 
 
@@ -2044,7 +2170,7 @@
 
 void dp88_RemoteControlVehicle::Created ( GameObject *obj )
 {
-	Console_Output ( "[%d:%s:%s] Created - remoteControlID %d\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name(), Get_Int_Parameter("remoteControlID") );
+	//Console_Output ( "[%d:%s:%s] Created - remoteControlID %d\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name(), Get_Int_Parameter("remoteControlID") );
 
 	consoleID = NULL;
 	pilotID = NULL;
@@ -2082,7 +2208,7 @@
 	// to accept them as our controller
 	else if ( type == CUSTOM_REMOTECONTROL_CONSOLEID && consoleID == 0 )
 	{
-		Console_Output ( "[%d:%s:%s] Got console, sending ACK\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
+		//Console_Output ( "[%d:%s:%s] Got console, sending ACK\n", Commands->Get_ID(obj), Commands->Get_Preset_Name(obj), this->Get_Name() );
 		consoleID = Commands->Get_ID ( sender );
 		Commands->Send_Custom_Event(obj, sender, CUSTOM_REMOTECONTROL_CONSOLEACK, 1 ,0);
 	}
@@ -2921,8 +3047,8 @@
 ScriptRegistrant<dp88_AR_CLEG_target> dp88_AR_CLEG_target_Registrant( "dp88_AR_CLEG_target", "resistance=20:int,clegEffectPreset=null:string" );
 
 // Ore Harvesting
-ScriptRegistrant<dp88_AR_Miner> dp88_AR_Miner_Registrant("dp88_AR_War_Miner","enableAI=1:int,loadLevels=10:int,orePerLoadLevel=100:int,timePerLoadLevel=2.0:float,unloadTime=8.0:float");
-ScriptRegistrant<dp88_AR_Chrono_Miner> dp88_AR_Chrono_Miner_Registrant("dp88_AR_Chrono_Miner","enableAI=1:int,chronoshift_time=2.5:float,chronoshift_out_effect_preset:string,chronoshift_out_effect_time:float,chronoshift_in_effect_preset:string,chronoshift_in_effect_time:float,chronoshiftKeyhook=VDeploy:string,loadLevels=10:int,orePerLoadLevel=50:int,timePerLoadLevel=1.00:float,unloadTime=4.0:float,emergencyChronoshiftHealthThreshold=30.0:float");
+ScriptRegistrant<dp88_AR_Miner> dp88_AR_Miner_Registrant("dp88_AR_War_Miner","enableAI=1:int,loadLevels=10:int,orePerLoadLevel=100:int,timePerLoadLevel=2.0:float,unloadTime=8.0:float,aiStartDelay=10:int");
+ScriptRegistrant<dp88_AR_Chrono_Miner> dp88_AR_Chrono_Miner_Registrant("dp88_AR_Chrono_Miner","enableAI=1:int,chronoshift_time=2.5:float,chronoshift_out_effect_preset:string,chronoshift_out_effect_time:float,chronoshift_in_effect_preset:string,chronoshift_in_effect_time:float,chronoshiftKeyhook=VDeploy:string,loadLevels=10:int,orePerLoadLevel=50:int,timePerLoadLevel=1.00:float,unloadTime=4.0:float,emergencyChronoshiftHealthThreshold=30.0:float,aiStartDelay=10:int");
 ScriptRegistrant<dp88_AR_Chrono_Miner_Chronozone> dp88_AR_Chrono_Miner_Chronozone_Registrant("dp88_AR_Chrono_Miner_Chronozone","");
 ScriptRegistrant<dp88_AR_Ore_Field_Zone> dp88_AR_Ore_Field_Zone_Registrant("dp88_AR_Ore_Field_Zone","oreValue=1:int");
 ScriptRegistrant<dp88_AR_Ore_Deposit_Zone> dp88_AR_Ore_Deposit_Zone_Registrant("dp88_AR_Ore_Deposit_Zone","teamID=0:int");
@@ -2937,7 +3063,7 @@
 /*ScriptRegistrant<dp88_AR_TerrorDrone> dp88_AR_TerrorDrone_Registrant("dp88_AR_TerrorDrone","");*/
 
 // Remote Control Scripts
-ScriptRegistrant<dp88_RemoteControlConsole> dp88_RemoteControlConsole_Registrant("dp88_RemoteControlConsole","remoteControlID:int,vehiclePreset:string,cost:int,team:int,accessDeniedSound:string,consoleOfflineSound:string,insufficientFundsSound:string,connectionEstablishedSound:string");
+ScriptRegistrant<dp88_RemoteControlConsole> dp88_RemoteControlConsole_Registrant("dp88_RemoteControlConsole","remoteControlID:int,vehiclePreset:string,cost:int,team:int,chargeTime=0:int,accessDeniedSound:string,consoleOfflineSound:string,consoleChargingSound:string,insufficientFundsSound:string,connectionEstablishedSound:string,animationName:string,animFrameAvailable1=0:int,animFrameAvailable2=0:int,animFrameCharging1=0:int,animFrameCharging2=0:int,animFrameActive1=0:int,animFrameActive2=0:int,animFrameIdle1=0:int,animFrameIdle2=0:int,animFrameDisabled1=0:int,animFrameDisabled2=0:int");
 ScriptRegistrant<dp88_RemoteControlVehicle> dp88_RemoteControlVehicle_Registrant("dp88_RemoteControlVehicle","remoteControlID:int");
 
 
diff -uwr source/scripts/dp88_ar.h 4.0/source/scripts/dp88_ar.h
--- source/scripts/dp88_ar.h	2011-06-12 20:51:20.000000000 +0800
+++ 4.0/source/scripts/dp88_ar.h	2011-10-25 07:50:47.747070300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for the ApocRising total conversion mod
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 #include "dp88_customAI.h"
 #include "dp88_custom_timer_defines.h"
@@ -47,7 +47,6 @@
 
 
 
-
 // Class for vehicles (redundant, keeping it temporaraily for terror drone code)
 class dp88_AR_Vehicle : public ScriptImpClass
 {
@@ -66,6 +65,12 @@
 };
 
 
+
+
+/*!
+* A companion script for dp88_veterancyUnit which grants units health and/or armour
+* regeneration dependant upon their promotion level (rookie, veteran, elite)
+*/
 class dp88_AR_Veterancy_HealthArmourRegen : public ScriptImpClass
 {
 	void Created( GameObject *obj );
@@ -79,11 +84,11 @@
 
 
 
-
-
-
-
-
+/*!
+* A companion script for dp88_veterancyUnit which grants units a weapon upon creation
+* which can subsequently be upgraded to a more powerful weapon when the player gets
+* promoted
+*/
 class dp88_AR_grantDefaultWeapon : public ScriptImpClass {
 
 	char weaponName[64];
@@ -95,6 +100,8 @@
 };
 
 
+
+
 /*------------------------
 Deployable Infantry script
   Allows an infantry unit to 'deploy', which involves switching to
@@ -144,6 +151,7 @@
 
 
 
+
 /*------------------------
 Chrono Legionnaire
 --------------------------*/
@@ -322,22 +330,77 @@
 
 
 
-/*------------------------
-Remote Control Console script
---------------------------*/
 
+/*!
+* This script is attached to consoles to allow players to take remote control of a drone vehicle
+* which is spawned by the console on demand. The vehicle preset which is spawned must have the
+* dp88_RemoteControlVehicle script attached with a matching remoteControlID parameter to work
+* correctly
+*
+* \param remoteControlID
+*   Shared ID used by the console and drones to enable them to be linked correctly - each vehicle
+*   preset should use a unique ID, but multiple consoles can share that vehicles ID
+* \param vehiclePreset
+*   Name of the vehicle preset to spawn as the drone
+* \param cost
+*   Cost of purchasing a drone when non exists
+* \param team
+*   ID of the team permitted to use this console (0: Nod, 1: GDI, 2: Both)
+* \param chargeTime
+*   Minimum time, in seconds, for the console to charge up before the purchase of a drone is
+*   permitted and to recharge between drone purchases. Set to 0 to disable charging.
+* \param accessDeniedSound
+*   2D sound to play for a player of the wrong team who tries to use the console
+* \param consoleOfflineSound
+*   2D sound to play for a player trying to use a disabled console
+* \param consoleChargingSound
+*   2D sound to play for a player trying to use a console which is charging
+* \param insufficientFundsSound
+*   2D sound to play for a player trying to purchase a drone with insufficient credits
+* \param connectionEstablishedSound
+*   2D sound to play for a player when they successful take control of a drone
+* \param animationName
+*   Name of the animation for the state frames
+* \param animFrameAvailable1
+*   First frame of the animation to play when the console is available (drone ready to purchase)
+* \param animFrameAvailable2
+*   Last frame of the animation to play when the console is available (drone ready to purchase)
+* \param animFrameCharging1
+*   First frame of the animation to play when the console is charging
+* \param animFrameCharging2
+*   Last frame of the animation to play when the console is charging
+* \param animFrameActive1
+*   First frame of the animation to play when the console is in use
+* \param animFrameActive2
+*   Last frame of the animation to play when the console is in use
+* \param animFrameIdle1
+*   First frame of the animation to play when the console is available (drone idle in field)
+* \param animFrameIdle2
+*   Last frame of the animation to play when the console is available (drone idle in field)
+* \param animFrameDisabled1
+*   First frame of the animation to play when the console is disabled
+* \param animFrameDisabled2
+*   Last frame of the animation to play when the console is disabled
+*/
 class dp88_RemoteControlConsole : public ScriptImpClass
 {
 	void Created( GameObject *obj );
 	void Poked ( GameObject *obj, GameObject *poker );
 	void Custom( GameObject *obj, int type, int param, GameObject *sender );
 	void Timer_Expired( GameObject *obj, int number );
+	void SetEnabled ( GameObject* obj, bool state );
 
 	int vehicleID;
 	int pilotID;
-	int pilotDummyID;
+	int m_pilotDummyID;
 	Vector3 pilotDummyPos;
-	bool enabled;
+	bool m_bEnabled;
+	int m_nChargeTime;
+
+	void CreateDummy ( GameObject* pilot, Vector3 position, float facing );
+	void DestroyDummy();
+
+	void HandleDriverExit ( GameObject* obj, GameObject* pilot, GameObject* vehicle );
 };
 
 
diff -uwr source/scripts/dp88_ar_unitScripts.cpp 4.0/source/scripts/dp88_ar_unitScripts.cpp
--- source/scripts/dp88_ar_unitScripts.cpp	2010-09-29 21:34:48.000000000 +0800
+++ 4.0/source/scripts/dp88_ar_unitScripts.cpp	2011-10-22 21:53:45.732421800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Unit specific scripts for the Apocalypse Rising mod
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,7 +9,6 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
 // Include files
 #include "general.h"
 #include "scripts.h"
diff -uwr source/scripts/dp88_ar_unitScripts.h 4.0/source/scripts/dp88_ar_unitScripts.h
--- source/scripts/dp88_ar_unitScripts.h	2010-09-21 06:27:24.000000000 +0800
+++ 4.0/source/scripts/dp88_ar_unitScripts.h	2011-10-14 22:27:31.918945300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Unit specific scripts for the Apocalypse Rising mod
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 #include "dp88_ar.h"
 
diff -uwr source/scripts/dp88_buildingScripts.cpp 4.0/source/scripts/dp88_buildingScripts.cpp
--- source/scripts/dp88_buildingScripts.cpp	2011-04-11 13:06:52.000000000 +0800
+++ 4.0/source/scripts/dp88_buildingScripts.cpp	2011-10-25 15:38:28.234375000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Building scripts for the Apocalypse Rising mod
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,7 +9,6 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
 // Include files
 #include "general.h"
 #include "scripts.h"
@@ -19,9 +17,10 @@
 #include "dp88_buildingScripts.h"
 #include "definition.h"
 #include "BaseControllerClass.h"
-
-
-
+#include "WarFactoryGameObj.h"
+#include "AirFactoryGameObj.h"
+#include "RefineryGameObj.h"
+#include "PurchaseSettingsDefClass.h"
 
 /*------------------------
 Building Controller Script
@@ -679,15 +678,46 @@
 
 void dp88_buildingScripts_weakpoint_disableVehiclePurchase::applyEffect ( GameObject* obj, GameObject* parent )
 {
-	Set_Can_Generate_Vehicles ( Get_Object_Type(parent), false );
+	if (parent->As_BuildingGameObj() && parent->As_BuildingGameObj()->As_VehicleFactoryGameObj())
+	{
+		parent->As_BuildingGameObj()->As_VehicleFactoryGameObj()->Set_Disabled(true);
+		PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_VEHICLES,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(parent)))->Set_Page_Disabled(true);
+		PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_SECRET_VEHICLES,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(parent)))->Set_Page_Disabled(true);
+	}
 }
 
 void dp88_buildingScripts_weakpoint_disableVehiclePurchase::reverseEffect ( GameObject* obj, GameObject* parent )
 {
-	Set_Can_Generate_Vehicles ( Get_Object_Type(parent), true );
+	if (parent->As_BuildingGameObj() && parent->As_BuildingGameObj()->As_VehicleFactoryGameObj())
+	{
+		parent->As_BuildingGameObj()->As_VehicleFactoryGameObj()->Set_Disabled(false);
+		PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_VEHICLES,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(parent)))->Set_Page_Disabled(false);
+		PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_SECRET_VEHICLES,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(parent)))->Set_Page_Disabled(false);
+	}
 }
 
 
+/*------------------------
+Weakpoint - Disable Air Vehicle Purchase
+--------------------------*/
+
+void dp88_buildingScripts_weakpoint_disableAirVehiclePurchase::applyEffect ( GameObject* obj, GameObject* parent )
+{
+	if (parent->As_BuildingGameObj() && parent->As_BuildingGameObj()->As_AirFactoryGameObj())
+	{
+		parent->As_BuildingGameObj()->As_AirFactoryGameObj()->Set_Disabled(true);
+		PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_AIR,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(parent)))->Set_Page_Disabled(true);
+	}
+}
+
+void dp88_buildingScripts_weakpoint_disableAirVehiclePurchase::reverseEffect ( GameObject* obj, GameObject* parent )
+{
+	if (parent->As_BuildingGameObj() && parent->As_BuildingGameObj()->As_AirFactoryGameObj())
+	{
+		parent->As_BuildingGameObj()->As_AirFactoryGameObj()->Set_Disabled(false);
+		PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_AIR,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(parent)))->Set_Page_Disabled(false);
+	}
+}
 
 
 /*------------------------
@@ -705,8 +735,6 @@
 }
 
 
-
-
 /*------------------------
 Weakpoint - Disable Radar
 --------------------------*/
@@ -722,6 +750,26 @@
 }
 
 
+/*------------------------
+Weakpoint - Disable Refinery
+--------------------------*/
+
+void dp88_buildingScripts_weakpoint_disableRefinery::applyEffect ( GameObject* obj, GameObject* parent )
+{
+	if (parent->As_BuildingGameObj() && parent->As_BuildingGameObj()->As_RefineryGameObj())
+	{
+		parent->As_BuildingGameObj()->As_RefineryGameObj()->Block_Harvester_Spawn();
+	}
+}
+
+void dp88_buildingScripts_weakpoint_disableRefinery::reverseEffect ( GameObject* obj, GameObject* parent )
+{
+	if (parent->As_BuildingGameObj() && parent->As_BuildingGameObj()->As_RefineryGameObj())
+	{
+		parent->As_BuildingGameObj()->As_RefineryGameObj()->Allow_Harvester_Spawn();
+	}
+}
+
 
 
 /*------------------------
@@ -1251,7 +1299,10 @@
 
 ScriptRegistrant<dp88_buildingScripts_weakpoint_disableSoldierPurchase> dp88_buildingScripts_weakpoint_disableSoldierPurchase_Registrant( "dp88_buildingScripts_weakpoint_disableSoldierPurchase", "buildingControllerPreset:string,animName:string,animStartFrame=0:int,animEndFrame=0:int,animLoop=0:int,destroyedAnimName:string,destroyedAnimStartFrame=0:int,destroyedAnimEndFrame=0:int,destroyedAnimLoop=0:int" );
 ScriptRegistrant<dp88_buildingScripts_weakpoint_disableVehiclePurchase> dp88_buildingScripts_weakpoint_disableVehiclePurchase_Registrant( "dp88_buildingScripts_weakpoint_disableVehiclePurchase", "buildingControllerPreset:string,animName:string,animStartFrame=0:int,animEndFrame=0:int,animLoop=0:int,destroyedAnimName:string,destroyedAnimStartFrame=0:int,destroyedAnimEndFrame=0:int,destroyedAnimLoop=0:int" );
+ScriptRegistrant<dp88_buildingScripts_weakpoint_disableAirVehiclePurchase> dp88_buildingScripts_weakpoint_disableAirVehiclePurchase_Registrant( "dp88_buildingScripts_weakpoint_disableAirVehiclePurchase", "buildingControllerPreset:string,animName:string,animStartFrame=0:int,animEndFrame=0:int,animLoop=0:int,destroyedAnimName:string,destroyedAnimStartFrame=0:int,destroyedAnimEndFrame=0:int,destroyedAnimLoop=0:int" );
 ScriptRegistrant<dp88_buildingScripts_weakpoint_disableBasePower> dp88_buildingScripts_weakpoint_disableBasePower_Registrant( "dp88_buildingScripts_weakpoint_disableBasePower", "buildingControllerPreset:string,animName:string,animStartFrame=0:int,animEndFrame=0:int,animLoop=0:int,destroyedAnimName:string,destroyedAnimStartFrame=0:int,destroyedAnimEndFrame=0:int,destroyedAnimLoop=0:int" );
+ScriptRegistrant<dp88_buildingScripts_weakpoint_disableRadar> dp88_buildingScripts_weakpoint_disableRadar_Registrant( "dp88_buildingScripts_weakpoint_disableRadar", "buildingControllerPreset:string,animName:string,animStartFrame=0:int,animEndFrame=0:int,animLoop=0:int,destroyedAnimName:string,destroyedAnimStartFrame=0:int,destroyedAnimEndFrame=0:int,destroyedAnimLoop=0:int" );
+ScriptRegistrant<dp88_buildingScripts_weakpoint_disableRefinery> dp88_buildingScripts_weakpoint_disableRefinery_Registrant( "dp88_buildingScripts_weakpoint_disableRefinery", "buildingControllerPreset:string,animName:string,animStartFrame=0:int,animEndFrame=0:int,animLoop=0:int,destroyedAnimName:string,destroyedAnimStartFrame=0:int,destroyedAnimEndFrame=0:int,destroyedAnimLoop=0:int" );
 
 ScriptRegistrant<dp88_buildingScripts_functionMoneyTrickle> dp88_buildingScripts_functionMoneyTrickle_Registrant( "dp88_buildingScripts_functionMoneyTrickle", "creditsPerSec=3.0:float" );
 ScriptRegistrant<dp88_buildingScripts_functionSpawnTeamZone> dp88_buildingScripts_functionSpawnTeamZone_Registrant( "dp88_buildingScripts_functionSpawnTeamZone", "scriptZonePreset_team0:string,scriptZonePreset_team1:string,scriptZonePreset_team2:string,scriptZoneBone:string,scriptZoneSize:vector3,destroyZoneWhenDisabled=1:int" );
diff -uwr source/scripts/dp88_buildingScripts.h 4.0/source/scripts/dp88_buildingScripts.h
--- source/scripts/dp88_buildingScripts.h	2011-03-15 13:53:18.000000000 +0800
+++ 4.0/source/scripts/dp88_buildingScripts.h	2011-10-22 18:09:56.484375000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Building scripts for the Apocalypse Rising mod
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 // Define building child types
@@ -157,7 +157,15 @@
 };
 
 
+/*------------------------
+Weakpoint - Disable Air Vehicle Purchase
+--------------------------*/
 
+class dp88_buildingScripts_weakpoint_disableAirVehiclePurchase : public MinorWeakpointScriptClass
+{
+	void applyEffect ( GameObject *obj, GameObject *parent );
+	void reverseEffect ( GameObject *obj, GameObject *parent );
+};
 
 /*------------------------
 Weakpoint - Disable Base Power
@@ -183,6 +191,15 @@
 };
 
 
+/*------------------------
+Weakpoint - Disable Refinery
+--------------------------*/
+
+class dp88_buildingScripts_weakpoint_disableRefinery : public MinorWeakpointScriptClass
+{
+	void applyEffect ( GameObject *obj, GameObject *parent );
+	void reverseEffect ( GameObject *obj, GameObject *parent );
+};
 
 
 /*------------------------
diff -uwr source/scripts/dp88_customAI.cpp 4.0/source/scripts/dp88_customAI.cpp
--- source/scripts/dp88_customAI.cpp	2011-04-11 14:28:10.000000000 +0800
+++ 4.0/source/scripts/dp88_customAI.cpp	2011-10-22 21:53:45.773437500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Experimental vehicle AIs
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,13 +9,12 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
 // Include files
 #include "general.h"
 #include "scripts.h"
 #include "engine.h"
 #include "dp88_customAI.h"
-
+#include "VehicleGameObj.h"
 
 /*------------------------
 Base class for custom AI's
@@ -110,7 +108,16 @@
 	// Priority is 0 if the unit is dead or not on teams 0 or 1
 	if ( ( Commands->Get_Health ( target ) + Commands->Get_Shield_Strength ( target ) ) == 0
 		|| ( Commands->Get_Player_Type ( target ) != 0 && Commands->Get_Player_Type ( target ) != 1 ) )
+	{
+		if ( debug ) fprintf ( debugFile, "Target %d is dead or unteamed, ignoring\n", Commands->Get_ID(target));
 		return 0.0;
+	}
+
+	if ( Is_Vehicle(target) && !IsVehicleAIEnabled(target->As_VehicleGameObj()) && IsVehicleEmpty(target->As_VehicleGameObj()) )
+	{
+		if ( debug ) fprintf ( debugFile, "Target %d is an empty, non-AI vehicle, ignoring\n", Commands->Get_ID(target));
+		return 0.0;
+	}
 
 	float priority = 0.0;
 
@@ -200,6 +207,22 @@
 }
 
 
+bool dp88_customAI::IsVehicleEmpty( VehicleGameObj* vobj )
+{
+	if ( vobj == NULL )
+		return false;
+	return (vobj->Get_Occupant_Count() == 0);
+}
+
+
+bool dp88_customAI::IsVehicleAIEnabled( VehicleGameObj* vobj )
+{
+	if ( vobj == NULL )
+		return false;
+	return (vobj->Get_Action()->Is_Acting());
+}
+
+
 
 /*------------------------
 Offensive Tank AI
@@ -419,7 +442,7 @@
 	// If this is our current target update last seen time and priority
 	if ( Commands->Get_ID ( enemy ) == targetID )
 	{
-		if ( debug ) fprintf( debugFile, "Enemy is current target, last seen time and priority\n" );
+		if ( debug ) fprintf( debugFile, "Enemy is current target, last seen time and priority updated\n" );
 		targetLastSeen = (int)time(NULL);
 		targetPriority = getPriority(obj, enemy);
 		return;
@@ -487,9 +510,10 @@
 				|| ( Commands->Get_Health ( target ) + Commands->Get_Shield_Strength ( target ) <= 0 )
 				|| !checkTeam ( obj, target )
 				|| !checkRange ( obj, target, primary_target )
-				|| (int)time(NULL) - targetLastSeen > 3 )	// Not seen target for 3 seconds
+				|| (int)time(NULL) - targetLastSeen > 3
+				|| ( Is_Vehicle(target) && !IsVehicleAIEnabled(target->As_VehicleGameObj()) && IsVehicleEmpty(target->As_VehicleGameObj()) ) )
 			{
-				if ( debug ) fprintf ( debugFile, "Target no longer valid, ceasing attack.\n" );
+				if ( debug ) fprintf ( debugFile, "Target %d no longer valid, ceasing attack.\n", targetID);
 				targetID = 0;
 				targetPriority = 0.0f;
 				targetLastSeen = 0;
diff -uwr source/scripts/dp88_customAI.h 4.0/source/scripts/dp88_customAI.h
--- source/scripts/dp88_customAI.h	2010-09-19 13:19:04.000000000 +0800
+++ 4.0/source/scripts/dp88_customAI.h	2011-10-22 19:50:31.665039000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Experimental vehicle AIs
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 #define TIMER_CHECK_TARGET 100778801
@@ -85,6 +85,10 @@
 	virtual float getPriority( GameObject *obj, GameObject *target );
 	virtual float getPriority( GameObject *obj, int target_id );
 	bool getPrimary ( GameObject *target );
+
+	/* Utility functions for both priority calculations and AI scripts to utilise */
+	virtual bool IsVehicleEmpty( VehicleGameObj* vobj );
+	virtual bool IsVehicleAIEnabled( VehicleGameObj* vobj );
 };
 
 
diff -uwr source/scripts/dp88_custom_timer_defines.h 4.0/source/scripts/dp88_custom_timer_defines.h
--- source/scripts/dp88_custom_timer_defines.h	2011-03-15 13:53:18.000000000 +0800
+++ 4.0/source/scripts/dp88_custom_timer_defines.h	2011-10-25 07:50:47.753906200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Custom and Timer number definitions for the ApocRising total conversion mod
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 /****************************
@@ -83,6 +83,8 @@
 #define CUSTOM_REMOTECONTROL_DESTROYED				1144070003		// Sent by a remote controlled vehicle when it is destroyed
 #define CUSTOM_REMOTECONTROL_CONSOLEID				1144070004
 #define CUSTOM_REMOTECONTROL_CONSOLEACK				1144070005
+#define CUSTOM_REMOTECONTROL_DISABLED				1144070006		// Send to a remote control console to disable it
+#define CUSTOM_REMOTECONTROL_ENABLED				1144070007		// Send to a remote control console to enable it
 
 
 
@@ -140,3 +142,4 @@
 #define TIMER_REMOTECONTROL_TIMEOUT					2244070001		// Timer to time out a remote vehicle purchase if we don't get confirmation within the deadline
 #define TIMER_REMOTECONTROL_DRIVERENTER				2244070002		// Timer to place driver into remove vehicle once transitions are enabled
 #define TIMER_REMOTECONTROL_DRIVEREXIT				2244070003		// Timer to return driver from a dead remote vehicle
\ No newline at end of file
+#define TIMER_REMOTECONTROL_CHARGETICK				2244070004		// Timer to count down charge time
\ No newline at end of file
diff -uwr source/scripts/dp88_misc.cpp 4.0/source/scripts/dp88_misc.cpp
--- source/scripts/dp88_misc.cpp	2011-04-11 11:56:44.000000000 +0800
+++ 4.0/source/scripts/dp88_misc.cpp	2011-10-11 23:03:39.628906200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Miscellaneous scripts by danpaul88
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,7 +9,6 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
 #include "general.h"
 #include "dp88_misc.h"
 #include "dp88_custom_timer_defines.h"
@@ -1333,9 +1331,12 @@
 	float points = ((bRepair) ? repairPoints : damagePoints) * amount;
 	float money = ((bRepair) ? repairMoney : damageMoney) * amount;
 
+	// Is this player an APB spy?
+	bool bSpy = ( Find_Script_On_Object(damager, "RA_Infantry_Spy") != NULL );
+
 	// Repaired other team or damaged own team? That would be negative points and no
-	// money for you then...
-	if ( (Get_Object_Type(obj) == Get_Object_Type(damager)) != bRepair )
+	// money for you then... unless your spy, then the logic is inverted...
+	if ( bSpy ^ ((Get_Object_Type(obj) == Get_Object_Type(damager)) != bRepair) )
 	{
 		points *= -1.0f;
 		money = 0.0f;
diff -uwr source/scripts/dp88_misc.h 4.0/source/scripts/dp88_misc.h
--- source/scripts/dp88_misc.h	2011-03-15 13:53:18.000000000 +0800
+++ 4.0/source/scripts/dp88_misc.h	2011-10-14 22:27:32.112304600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Miscellaneous scripts by danpaul88
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 #include "scripts.h"
 #include "engine.h"
diff -uwr source/scripts/dp88_securitySystem.cpp 4.0/source/scripts/dp88_securitySystem.cpp
--- source/scripts/dp88_securitySystem.cpp	2010-04-14 10:13:20.000000000 +0800
+++ 4.0/source/scripts/dp88_securitySystem.cpp	2011-10-11 23:03:38.137695300 +0800
@@ -1,9 +1,5 @@
 /*	Renegade Scripts.dll
-	
-	Scripts to create a security system based on cameras, security doors and
-	internal defenses.
-
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -13,7 +9,6 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
 #include "general.h"
 #include "scripts.h"
 #include "engine.h"
diff -uwr source/scripts/dp88_securitySystem.h 4.0/source/scripts/dp88_securitySystem.h
--- source/scripts/dp88_securitySystem.h	2010-04-14 10:13:24.000000000 +0800
+++ 4.0/source/scripts/dp88_securitySystem.h	2011-10-14 22:27:32.145507800 +0800
@@ -1,9 +1,5 @@
 /*	Renegade Scripts.dll
-	
-	Scripts to create a security system based on cameras, security doors and
-	internal defenses.
-
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -13,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 #define SECURITYSYSTEM_TIMER_POSTINITIALISE 1450001
diff -uwr source/scripts/dp88_veterancy.cpp 4.0/source/scripts/dp88_veterancy.cpp
--- source/scripts/dp88_veterancy.cpp	2011-04-11 14:28:10.000000000 +0800
+++ 4.0/source/scripts/dp88_veterancy.cpp	2011-10-23 09:34:51.542968900 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Veterancy system by danpaul88
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,7 +9,6 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
 // Include files
 #include "general.h"
 #include "dp88_veterancy.h"
@@ -1002,3 +1000,88 @@
 ScriptRegistrant<dp88_linkVetPoints> dp88_linkVetPoints_Registrant(
 	"dp88_linkVetPoints",
 	"parentObjectId=0:int");
+
+
+
+
+
+
+
+
+/*------------------------
+Veterancy - Promotion health/armour boost
+--------------------------*/
+
+void dp88_veterancyPromotionHealthArmourIncrease::Created( GameObject *obj )
+{
+	// Set initial veterancy level
+	m_veterancyLevel = 0;
+}
+
+
+void dp88_veterancyPromotionHealthArmourIncrease::Custom( GameObject *obj, int type, int param, GameObject *sender )
+{
+	// If custom == CUSTOM_VETERANCY_PROMOTED update veterancyLevel
+	if ( type == CUSTOM_VETERANCY_PROMOTED )
+	{
+		int oldVeterancy = m_veterancyLevel;
+		m_veterancyLevel = param;
+
+		int healthChange = 0;
+		int armourChange = 0;
+
+		// Handle promotions
+		if ( oldVeterancy < m_veterancyLevel )
+		{
+			// Elite promotion
+			if ( m_veterancyLevel == 2 )
+			{
+				healthChange += Get_Int_Parameter ( "eliteHealthIncrease" );
+				armourChange += Get_Int_Parameter ( "eliteArmourIncrease" );
+			}
+
+			// Veteran promotion
+			if ( oldVeterancy == 0 )	// Must be either veteran OR elite now, so apply veteran bonus
+			{
+				healthChange += Get_Int_Parameter ( "veteranHealthIncrease" );
+				armourChange += Get_Int_Parameter ( "veteranArmourIncrease" );
+			}
+		}
+
+
+		// And demotions (specifically vehicles)
+		else
+		{
+			// Elite promotion
+			if ( oldVeterancy == 2 )
+			{
+				healthChange -= Get_Int_Parameter ( "eliteHealthIncrease" );
+				armourChange -= Get_Int_Parameter ( "eliteArmourIncrease" );
+			}
+
+			if ( m_veterancyLevel == 0 )	// Must have been either veteran OR elite, so remove veteran bonus
+			{
+				healthChange -= Get_Int_Parameter ( "veteranHealthIncrease" );
+				armourChange -= Get_Int_Parameter ( "veteranArmourIncrease" );
+			}
+		}
+
+		// Calculate new health/armour values - changing the max values might alter the
+		// current values so we calculate this first to avoid problems with this
+		int newHealth = (int)Commands->Get_Health(obj)+healthChange;
+		int newArmour = (int)Commands->Get_Shield_Strength(obj)+armourChange;
+
+		// Apply changes
+		Set_Max_Health ( obj, Commands->Get_Max_Health(obj)+healthChange );
+		Commands->Set_Health ( obj, (float)newHealth );
+		Set_Max_Shield_Strength ( obj, Commands->Get_Max_Shield_Strength(obj)+armourChange );
+		Commands->Set_Shield_Strength ( obj, (float)newArmour );
+	}
+}
+
+ScriptRegistrant<dp88_veterancyPromotionHealthArmourIncrease> dp88_veterancyPromotionHealthArmourIncrease_Registrant(
+	"dp88_veterancyPromotionHealthArmourIncrease",
+	"veteranHealthIncrease=0:int,"
+	"veteranArmourIncrease=0:int,"
+	"eliteHealthIncrease=0:int,"
+	"eliteArmourIncrease=0:int");
\ No newline at end of file
diff -uwr source/scripts/dp88_veterancy.h 4.0/source/scripts/dp88_veterancy.h
--- source/scripts/dp88_veterancy.h	2010-11-19 06:38:36.000000000 +0800
+++ 4.0/source/scripts/dp88_veterancy.h	2011-10-22 18:09:56.480468700 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Veterancy system by danpaul88
-	Copyright 2010 Danpaul88, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 #include "scripts.h"
 #include "engine.h"
@@ -122,3 +122,14 @@
 	float lastInfantryPoints;
 	float lastVehiclePoints;
 };
\ No newline at end of file
+
+
+// Script to grant extra health / armour upon promotion
+class dp88_veterancyPromotionHealthArmourIncrease : public ScriptImpClass
+{
+	void Created( GameObject *obj );
+	void Custom( GameObject *obj, int type, int param, GameObject *sender );
+
+	private:
+		int m_veterancyLevel;
+};
\ No newline at end of file
diff -uwr source/scripts/engine.h 4.0/source/scripts/engine.h
--- source/scripts/engine.h	2010-04-14 10:13:24.000000000 +0800
+++ 4.0/source/scripts/engine.h	2011-10-14 22:27:32.064453100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Engine classes and calls
-	Copyright 2010 WhiteDragon(MDB), Joshua "NeoSaber" Kraft, Jonathan Wilson, Mark Sarau
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 #include "engine_common.h"
 #include "engine_vector.h"
 #include "engine_threading.h"
diff -uwr source/scripts/engine_3dre.h 4.0/source/scripts/engine_3dre.h
--- source/scripts/engine_3dre.h	2010-12-13 06:30:26.000000000 +0800
+++ 4.0/source/scripts/engine_3dre.h	2011-10-11 21:54:26.711914000 +0800
@@ -1,6 +1,5 @@
 /* Renegade Scripts.dll
-	Base 3D drawing related engine classes and calls
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_common.cpp 4.0/source/scripts/engine_common.cpp
--- source/scripts/engine_common.cpp	2011-08-09 11:12:30.000000000 +0800
+++ 4.0/source/scripts/engine_common.cpp	2011-10-11 23:03:34.733398400 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Engine call common definitions
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -172,11 +171,6 @@
 	return Exe;
 };
 
-void* HookupAT3x(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
-{
-	return HookupAT3(a,b,c,patch_start,patch_end,version_selector);
-}
-
 SCRIPTS_API void* HookupAT3(void* a, void* b, void* c, void* patch_start, void* patch_end, int (*version_selector)())
 {
 	static const char relJumpOp = '\xE9';					
diff -uwr source/scripts/engine_common.h 4.0/source/scripts/engine_common.h
--- source/scripts/engine_common.h	2011-08-14 12:11:22.000000000 +0800
+++ 4.0/source/scripts/engine_common.h	2011-10-11 21:54:22.270507800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Engine call common definitions
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_def.cpp 4.0/source/scripts/engine_def.cpp
--- source/scripts/engine_def.cpp	2011-08-12 06:39:30.000000000 +0800
+++ 4.0/source/scripts/engine_def.cpp	2011-10-11 23:03:32.718750000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	General ingame data related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_def.h 4.0/source/scripts/engine_def.h
--- source/scripts/engine_def.h	2010-05-31 12:24:30.000000000 +0800
+++ 4.0/source/scripts/engine_def.h	2011-10-11 21:54:12.960937500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	General ingame data related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_dmg.cpp 4.0/source/scripts/engine_dmg.cpp
--- source/scripts/engine_dmg.cpp	2011-08-25 15:31:22.000000000 +0800
+++ 4.0/source/scripts/engine_dmg.cpp	2011-10-11 23:03:31.418945300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Classes and engine calls related to health, damage and repair
-	Copyright 2010 Jonathan Wilson, Mark Sararu, Joshua "NeoSaber" Kraft, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -29,6 +28,14 @@
 RENEGADE_FUNCTION
 ArmorType ArmorWarheadManager::Get_Armor_Type(const char*)
 AT3(0x00687750, 0x00686FF0, 0x005191A0);
+
+RENEGADE_FUNCTION
+WarheadType ArmorWarheadManager::Get_Warhead_Type(const char*)
+AT3(0x00687790, 0x00687030, 0x005191F0);
+
+RENEGADE_FUNCTION
+const char *ArmorWarheadManager::Get_Warhead_Name(WarheadType)
+AT3(0x006877E0, 0x00687080, 0x005192A0);
 #endif
 #ifndef TTLE_EXPORTS
 #include "Engine_Game.h"
diff -uwr source/scripts/engine_dmg.h 4.0/source/scripts/engine_dmg.h
--- source/scripts/engine_dmg.h	2010-05-31 12:27:14.000000000 +0800
+++ 4.0/source/scripts/engine_dmg.h	2011-10-11 21:55:07.666015600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Classes and engine calls related to health, damage and repair
-	Copyright 2010 Jonathan Wilson, Mark Sararu, Joshua "NeoSaber" Kraft, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_game.cpp 4.0/source/scripts/engine_game.cpp
--- source/scripts/engine_game.cpp	2011-08-12 06:39:30.000000000 +0800
+++ 4.0/source/scripts/engine_game.cpp	2011-10-22 19:44:00.545898400 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Global ingame classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -24,6 +23,7 @@
 #include "CombatManager.h"
 #include "VehicleFactoryGameObj.h"
 #include "VehicleFactoryGameObjDef.h"
+#include "HarvesterClass.h"
 REF_DEF2(CombatManager::IAmServer, bool, 0x00855EC8, 0x008550B0);
 RENEGADE_FUNCTION
 void *Game_Mode_Find(const char *)
@@ -35,9 +35,6 @@
 RENEGADE_FUNCTION
 void BaseControllerClass::On_Vehicle_Generated(VehicleGameObj* vehicle)
 AT2(0x006EEF00,0x006EE4C0);
-RENEGADE_FUNCTION
-VehicleGameObj *BaseControllerClass::Get_Harvester_Vehicle()
-AT2(0x006EFD60,0x006EF320);
 #endif
 RENEGADE_FUNCTION
 cGameData SCRIPTS_API *The_Game()
@@ -48,6 +45,11 @@
 RENEGADE_FUNCTION
 void BaseControllerClass::Power_Base(bool Power)
 AT2(0x006EF310,0x006EE8D0);
+VehicleGameObj *BaseControllerClass::Get_Harvester_Vehicle()
+{
+	BuildingGameObj* refinery = Find_Building(BuildingConstants::TYPE_REFINERY);
+	return refinery ? refinery->As_RefineryGameObj()->Get_Harvester_Vehicle() : nullptr;
+}
 void BaseControllerClass::Set_Can_Generate_Soldiers(bool CanGenerate)
 {
 	CanGenerateSoldiers = CanGenerate;
@@ -294,6 +296,26 @@
 	return 0;
 }
 
+void RefineryGameObj::Destroy_Harvester()
+{
+	if (Get_Harvester_Vehicle())
+	{
+		Commands->Apply_Damage(Get_Harvester_Vehicle(),99999,"Death",0);
+	}
+}
+
+VehicleGameObj *
+RefineryGameObj::Get_Harvester_Vehicle (void)
+{
+	VehicleGameObj *vehicle = NULL;
+
+	if (Harvester != NULL) {
+		vehicle = Harvester->Get_Vehicle ();
+	}
+
+	return vehicle;
+}
+
 GameObject SCRIPTS_API *Find_Harvester(int team)
 {
 	BaseControllerClass *c = BaseControllerClass::Find_Base(team);
diff -uwr source/scripts/engine_game.h 4.0/source/scripts/engine_game.h
--- source/scripts/engine_game.h	2011-04-27 12:07:22.000000000 +0800
+++ 4.0/source/scripts/engine_game.h	2011-10-11 21:54:02.241210900 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Global ingame classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_io.cpp 4.0/source/scripts/engine_io.cpp
--- source/scripts/engine_io.cpp	2011-09-04 18:16:04.000000000 +0800
+++ 4.0/source/scripts/engine_io.cpp	2011-10-13 01:39:18.449218700 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	File Input/Output related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -46,19 +45,23 @@
 {
 	_TheFileFactory->Return_File(file);
 }
+char FilePath[MAX_PATH];
+char AppDataPath[MAX_PATH];
+char RegPath[MAX_PATH];
+bool PathsInit = false;
+void Read_Paths()
+{
+	const bool isClient = (Exe == 0);
+
 char RegBase[MAX_PATH];
 char RegClient[MAX_PATH];
 char RegFDS[MAX_PATH];
 char FileBase[MAX_PATH];
 char FileClient[MAX_PATH];
 char FileFDS[MAX_PATH];
-char FilePath[MAX_PATH];
-char RegPath[MAX_PATH];
-bool PathsInit = false;
-void Read_Paths()
-{
+
 	PathsInit = true;
-	bool UseRenFolder = (!Exe) ? false : true;
+	bool UseRenFolder = !isClient;
 	INIClass *ini = Get_INI("paths.ini");
 	if (ini)
 	{
@@ -67,15 +70,8 @@
 		ini->Get_String("paths","RegFDS","RenegadeFDS",RegFDS,MAX_PATH);
 		ini->Get_String("paths","FileBase","Renegade",FileBase,MAX_PATH);
 		ini->Get_String("paths","FileClient","Client",FileClient,MAX_PATH);
-		ini->Get_String("paths","FileFDS","FDS",FileFDS,MAX_PATH);
-		if (!Exe)
-		{
-			UseRenFolder = ini->Get_Bool("paths","UseRenFolder",false);
-		}
-		else
-		{
-			UseRenFolder = ini->Get_Bool("paths","UseRenFolder",true);
-		}
+		ini->Get_String("paths","","FDS",FileFDS,MAX_PATH);
+		UseRenFolder = ini->Get_Bool("paths","UseRenFolder",UseRenFolder);
 		Release_INI(ini);
 	}
 	else
@@ -120,26 +116,49 @@
 	strcat(FilePath,"\\");
 	strcat(FilePath,FileBase);
 	strcat(FilePath,"\\");
-	if (!Exe)
+	strcat(FilePath,isClient ? FileClient : FileFDS);
+	strcat(FilePath,"\\");
+
+	AppDataPath[0] = 0;
+	if (!UseRenFolder)
+	{
+		wchar_t fpath[MAX_PATH];
+		SHGetSpecialFolderPathW(NULL, fpath, CSIDL_MYDOCUMENTS, FALSE);
+		bool unicode = false;
+		for (int i = 0;fpath[i] != 0;i++)
 	{
-		strcat(FilePath,FileClient);
+			unsigned short value = fpath[i];
+			if (value > 255)
+			{
+				unicode = true;
+				break;
 	}
-	else
+		}
+		if (unicode)
 	{
-		strcat(FilePath,FileFDS);
+			GetModuleFileName(NULL,AppDataPath,MAX_PATH);
+			strrchr(AppDataPath,'\\')[0] = 0;
 	}
-	strcat(FilePath,"\\");
-	strcpy(RegPath,"Software\\");
-	strcat(RegPath,RegBase);
-	strcat(RegPath,"\\");
-	if (!Exe)
+		else
 	{
-		strcat(RegPath,RegClient);
+			SHGetSpecialFolderPath(NULL, AppDataPath, CSIDL_APPDATA, FALSE);
+		}
 	}
 	else
 	{
-		strcat(RegPath,RegFDS);
+		GetModuleFileName(NULL,AppDataPath,MAX_PATH);
+		strrchr(AppDataPath,'\\')[0] = 0;
 	}
+	strcat(AppDataPath,"\\");
+	strcat(AppDataPath,FileBase);
+	strcat(AppDataPath,"\\");
+	strcat(AppDataPath,isClient ? FileClient : FileFDS);
+	strcat(AppDataPath,"\\");
+
+	strcpy(RegPath,"Software\\");
+	strcat(RegPath,RegBase);
+	strcat(RegPath,"\\");
+	strcat(RegPath,isClient ? RegClient : RegFDS);
 }
 const char SCRIPTS_API *Get_File_Path()
 {
@@ -149,6 +168,14 @@
 	}
 	return FilePath;
 }
+const char SCRIPTS_API *Get_App_Data_Path()
+{
+	if (!PathsInit)
+	{
+		Read_Paths();
+	}
+	return AppDataPath;
+}
 const char SCRIPTS_API *Get_Registry_Path()
 {
 	if (!PathsInit)
diff -uwr source/scripts/engine_io.h 4.0/source/scripts/engine_io.h
--- source/scripts/engine_io.h	2011-08-25 15:49:48.000000000 +0800
+++ 4.0/source/scripts/engine_io.h	2011-10-12 09:16:50.970703100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	File Input/Output related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -197,12 +196,15 @@
 unsigned int SCRIPTS_API Get_Registry_Int(const char *entry,int defaultvalue); //Get an int value from the renegade registry key
 #ifndef TTLE_EXPORTS
 #ifndef WWCONFIG
+#ifndef PACKAGEEDITOR
 #ifndef EXTERNAL
 extern SCRIPTS_API REF_DECL2(_TheFileFactory, FileFactoryClass*);
 #endif
 #endif
 #endif
+#endif
 const char SCRIPTS_API *Get_File_Path();
+const char SCRIPTS_API *Get_App_Data_Path();
 const char SCRIPTS_API *Get_Registry_Path();
 void SCRIPTS_API Strip_Path_From_Filename(StringClass& target, const char* fileName);
 #endif
diff -uwr source/scripts/engine_math.cpp 4.0/source/scripts/engine_math.cpp
--- source/scripts/engine_math.cpp	2011-08-20 10:06:48.000000000 +0800
+++ 4.0/source/scripts/engine_math.cpp	2011-10-11 23:03:26.540039000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Math related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_math.h 4.0/source/scripts/engine_math.h
--- source/scripts/engine_math.h	2011-08-20 10:06:48.000000000 +0800
+++ 4.0/source/scripts/engine_math.h	2011-10-11 21:55:04.250976500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Math related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_obj.cpp 4.0/source/scripts/engine_obj.cpp
--- source/scripts/engine_obj.cpp	2011-09-04 13:49:10.000000000 +0800
+++ 4.0/source/scripts/engine_obj.cpp	2011-10-14 22:25:11.520507800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	GameObject classes and related engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -27,6 +26,113 @@
 #include "SmartGameObjDef.h"
 #include "VehicleFactoryGameObj.h"
 #include "VehicleFactoryGameObjDef.h"
+#include "TransitionGameObjDef.h"
+#include "AirFactoryGameObjDef.h"
+#include "AirFactoryGameObj.h"
+#include "AirStripGameObjDef.h"
+#include "AirStripGameObj.h"
+#include "BeaconGameObjDef.h"
+#include "BeaconGameObj.h"
+#include "C4GameObjDef.h"
+#include "C4GameObj.h"
+#include "CinematicGameObjDef.h"
+#include "CinematicGameObj.h"
+#include "ComCenterGameObjDef.h"
+#include "ComCenterGameObj.h"
+#include "ConstructionYardGameObjDef.h"
+#include "ConstructionYardGameObj.h"
+#include "DamageZoneGameObjDef.h"
+#include "DamageZoneGameObj.h"
+#include "PowerPlantGameObjDef.h"
+#include "PowerPlantGameObj.h"
+#include "RepairBayGameObjDef.h"
+#include "RepairBayGameObj.h"
+#include "SamSiteGameObjDef.h"
+#include "SamSiteGameObj.h"
+#include "SoldierFactoryGameObjDef.h"
+#include "SoldierFactoryGameObj.h"
+#include "SpecialEffectsGameObjDef.h"
+#include "SpecialEffectsGameObj.h"
+#include "TransitionGameObjDef.h"
+#include "TransitionGameObj.h"
+#include "WarFactoryGameObjDef.h"
+#include "WarFactoryGameObj.h"
+
+const AirFactoryGameObjDef &
+AirFactoryGameObj::Get_Definition (void) const
+{
+	return (const AirFactoryGameObjDef &)BaseGameObj::Get_Definition ();
+}
+const AirStripGameObjDef & AirStripGameObj::Get_Definition( void ) const
+{
+	return (const AirStripGameObjDef &)BaseGameObj::Get_Definition();
+}
+const ArmedGameObjDef & ArmedGameObj::Get_Definition( void ) const
+{
+	return (const ArmedGameObjDef &)BaseGameObj::Get_Definition();
+}
+const BeaconGameObjDef & BeaconGameObj::Get_Definition( void ) const
+{
+	return (const BeaconGameObjDef &)BaseGameObj::Get_Definition();
+}
+const C4GameObjDef & C4GameObj::Get_Definition( void ) const
+{
+	return (const C4GameObjDef &)BaseGameObj::Get_Definition();
+}
+const CinematicGameObjDef & CinematicGameObj::Get_Definition( void ) const
+{
+	return (const CinematicGameObjDef &)BaseGameObj::Get_Definition();
+}
+const ComCenterGameObjDef &
+ComCenterGameObj::Get_Definition (void) const
+{
+	return (const ComCenterGameObjDef &)BaseGameObj::Get_Definition ();
+}
+const ConstructionYardGameObjDef &
+ConstructionYardGameObj::Get_Definition (void) const
+{
+	return (const ConstructionYardGameObjDef &)BaseGameObj::Get_Definition ();
+}
+const DamageZoneGameObjDef & DamageZoneGameObj::Get_Definition( void ) const
+{
+	return (const DamageZoneGameObjDef &)BaseGameObj::Get_Definition();
+}
+const PowerPlantGameObjDef &
+PowerPlantGameObj::Get_Definition (void) const
+{
+	return (const PowerPlantGameObjDef &)BaseGameObj::Get_Definition ();
+}
+const RepairBayGameObjDef &
+RepairBayGameObj::Get_Definition (void) const
+{
+	return (const RepairBayGameObjDef &)BaseGameObj::Get_Definition ();
+}
+const SamSiteGameObjDef & SamSiteGameObj::Get_Definition( void ) const
+{
+	return (const SamSiteGameObjDef &)BaseGameObj::Get_Definition();
+}
+const SoldierGameObjDef & SoldierGameObj::Get_Definition( void ) const
+{
+	return (const SoldierGameObjDef &)BaseGameObj::Get_Definition();
+}
+const SoldierFactoryGameObjDef &
+SoldierFactoryGameObj::Get_Definition (void) const
+{
+	return (const SoldierFactoryGameObjDef &)BaseGameObj::Get_Definition ();
+}
+const SpecialEffectsGameObjDef & SpecialEffectsGameObj::Get_Definition( void ) const
+{
+	return (const SpecialEffectsGameObjDef &)BaseGameObj::Get_Definition();
+}
+const TransitionGameObjDef & TransitionGameObj::Get_Definition( void ) const
+{
+	return (const TransitionGameObjDef &)BaseGameObj::Get_Definition();
+}
+const WarFactoryGameObjDef &
+WarFactoryGameObj::Get_Definition (void) const
+{
+	return (const WarFactoryGameObjDef &)BaseGameObj::Get_Definition ();
+}
 
 const VehicleFactoryGameObjDef &
 VehicleFactoryGameObj::Get_Definition (void) const
@@ -1310,7 +1416,7 @@
 }
 
 
-GameObject SCRIPTS_API *Get_Closest_Armed_Object_To_Object( GameObject* obj, int team = 2 )
+GameObject SCRIPTS_API *Get_Closest_Armed_Object_To_Object( GameObject* obj, int team )
 {
 	float closestdist = FLT_MAX;
 	GameObject *closest = 0;
@@ -1358,23 +1464,23 @@
 
 
 
-RENEGADE_FUNCTION
 void PhysicalGameObj::Set_Transform(const Matrix3D& mat)
-AT2(0x006A5EF0,0x006A5790);
-
-
+{
+	PhysObj->Set_Transform(mat);
+}
 
-RENEGADE_FUNCTION
 const Matrix3D &PhysicalGameObj::Get_Transform() const
-AT2(0x006A5F10,0x006A57B0);
-
-
+{
+	return PhysObj->Get_Transform();
+}
 
-RENEGADE_FUNCTION
 void PhysicalGameObj::Set_Position(const Vector3& position)
-AT2(0x006A5F50, 0x006A57F0);
-
-
+{
+	const Matrix3D &mat = PhysObj->Get_Transform();
+	Matrix3D tm = mat;
+	tm.Set_Translation(position);
+	PhysObj->Set_Transform(tm);
+}
 
 RENEGADE_FUNCTION
 void PhysicalGameObj::Post_Think()
@@ -1387,7 +1493,7 @@
 	return ((p_obj == this) || (Is_Team_Player() && Get_Player_Type() == p_obj->Get_Player_Type()));
 }
 
-int VehicleGameObj::Get_Occupant_Count(void)
+int SCRIPTS_API VehicleGameObj::Get_Occupant_Count(void)
 {
 	int count = 0;
 	for ( int i = 0; i < SeatOccupants.Length(); i++ ) {
@@ -1398,9 +1504,21 @@
 	return count;
 }
 
-RENEGADE_FUNCTION
 VehicleGameObj* SoldierGameObj::Get_Profile_Vehicle( void )
-AT2(0x006CE640,0x006CDEE0)
+{
+	if (( Get_State() == HumanStateClass::IN_VEHICLE ) && Vehicle )
+	{
+		return Vehicle;
+	}
+	if (( Get_State() == HumanStateClass::TRANSITION ) && ( TransitionCompletionData != NULL ))
+	{
+		if ( TransitionCompletionData->Type == TransitionDataClass::VEHICLE_ENTER )
+		{
+			return (VehicleGameObj *)TransitionCompletionData->Vehicle.Get_Ptr();
+		}
+	}
+	return NULL;
+}
 
 bool DamageableGameObj::Is_Team_Player(void) 
 {
diff -uwr source/scripts/engine_obj.h 4.0/source/scripts/engine_obj.h
--- source/scripts/engine_obj.h	2011-08-20 09:50:42.000000000 +0800
+++ 4.0/source/scripts/engine_obj.h	2011-10-11 21:54:59.320312500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	GameObject classes and related engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_obj2.cpp 4.0/source/scripts/engine_obj2.cpp
--- source/scripts/engine_obj2.cpp	2011-08-12 06:39:28.000000000 +0800
+++ 4.0/source/scripts/engine_obj2.cpp	2011-10-22 13:31:31.273437500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Soldier, Vehicle and Script Zone related engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu, Joshua "NeoSaber" Kraft
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -12,6 +11,7 @@
 */
 #include "general.h"
 #include "SoldierGameObj.h"
+#include "SoldierGameObjDef.h"
 #include "VehicleGameObj.h"
 #include "VehicleGameObjDef.h"
 #include "VehicleFactoryGameObj.h"
@@ -23,6 +23,9 @@
 #include "engine_def.h"
 #include "CollisionMath.h"
 #include "PhysicsSceneClass.h"
+#include "AirFactoryGameObj.h"
+#include "AirFactoryGameObjDef.h"
+#include "VehicleFactoryGameObjDef.h"
 
 RENEGADE_FUNCTION
 GameObject *Create_Library_Object(const char *preset)
@@ -32,6 +35,15 @@
 void SoldierGameObj::Toggle_Fly_Mode()
 AT2(0x006CFC80,0x006CF520);
 RENEGADE_FUNCTION
+void AirFactoryGameObj::Create_Vehicle(int defintion_id,SoldierGameObj * player)
+AT2(0x006EDC80,0x006ED240);
+RENEGADE_FUNCTION
+int AirFactoryGameObj::Get_Team_Vehicle_Count() const
+AT2(0x006F16B0,0x006F0C70);
+RENEGADE_FUNCTION
+bool AirFactoryGameObj::Is_Available_For_Purchase() const
+AT2(0x0070B6F0,0x0070ACB0);
+RENEGADE_FUNCTION
 bool VehicleFactoryGameObj::Request_Vehicle(int defintion_id, float generation_time,SoldierGameObj * player)
 AT2(0x006EE1A0,0x006ED760);
 RENEGADE_FUNCTION
@@ -124,16 +136,6 @@
 	}
 }
 
-void SCRIPTS_API Soldier_Re_Init(GameObject *obj,DefinitionClass *def)
-{
-	if (!obj || !Commands->Get_ID(obj))
-	{
-		return;
-	}
-	SoldierGameObj *o = (SoldierGameObj *)As_SoldierGameObj(obj);
-	o->Re_Init(*(const SoldierGameObjDef *)def);
-}
-
 bool SCRIPTS_API Change_Character(GameObject *obj,const char *Preset_Name)
 {
 	if (!Commands->Get_ID(obj) || !obj || Get_Vehicle(obj))
@@ -149,43 +151,29 @@
 	{
 		return false;
 	}
-	GameObject *o = As_SoldierGameObj(obj);
+	SoldierGameObj *o = obj->As_SoldierGameObj();
 	if (!o)
 	{
 		return false;
 	}
-	Soldier_Re_Init(o,def);
-	((ScriptableGameObj *)obj)->Post_Re_Init();
+	o->Re_Init(*(SoldierGameObjDef *)def);
+	o->Post_Re_Init();
 	return true;
 }
 
-bool SCRIPTS_API IsAvailableForPurchase(GameObject *factory)
-{
-	return ((VehicleFactoryGameObj *)factory)->Is_Available_For_Purchase();
-}
-
-void SCRIPTS_API Create_Vehicle(const char *Preset_Name,float Delay,GameObject *Owner,int Team)
+bool SCRIPTS_API Is_Available_For_Purchase(GameObject *factory)
 {
-	GameObject *o = 0;
-	if (Owner)
+	if (factory->As_BuildingGameObj() && factory->As_BuildingGameObj()->As_VehicleFactoryGameObj())
 	{
-		o = As_SoldierGameObj(Owner);
+		return factory->As_BuildingGameObj()->As_VehicleFactoryGameObj()->Is_Available_For_Purchase();
 	}
-	DefinitionClass *def = Find_Named_Definition(Preset_Name);
-	if (def)
-	{
-		if (!Get_Vehicle(o))
+	else if (factory->As_BuildingGameObj() && factory->As_BuildingGameObj()->As_AirFactoryGameObj())
 		{
-			GameObject *factory = Find_Vehicle_Factory(Team);
-			if (factory)
-			{
-				if (IsAvailableForPurchase(factory))
-				{
-					unsigned int ID = def->Get_ID();
-					((VehicleFactoryGameObj *)factory)->Request_Vehicle(ID,Delay,(SoldierGameObj *)o);
-				}
-			}
+		return factory->As_BuildingGameObj()->As_AirFactoryGameObj()->Is_Available_For_Purchase();
 		}
+	else
+	{
+		return false;
 	}
 }
 
@@ -409,16 +397,6 @@
 	return (Get_Vehicle_Mode(obj) == VEHICLE_TYPE_FLYING) || Get_Fly_Mode(obj);
 }
 
-int SCRIPTS_API Get_Team_Vehicle_Count(int team)
-{
-	VehicleFactoryGameObj *o = (VehicleFactoryGameObj *)Find_Vehicle_Factory(team);
-	if (!o)
-	{
-		return 0;
-	}
-	return o->Get_Team_Vehicle_Count();
-}
-
 GameObject SCRIPTS_API *Get_Vehicle_Owner(GameObject *obj)
 {	
 	if (!obj || !Commands->Get_ID(obj))
@@ -677,4 +655,9 @@
 	return (const SmartGameObjDef &)BaseGameObj::Get_Definition();
 }
 
+bool SCRIPTS_API ActionClass::Is_Acting( void )
+{
+	return ( ActionCode != NULL );
+}
+
 REF_DEF2(SmartGameObj::GlobalSightRangeScale,float,0x00811E64,0x0081103C);
diff -uwr source/scripts/engine_obj2.h 4.0/source/scripts/engine_obj2.h
--- source/scripts/engine_obj2.h	2010-05-31 12:52:02.000000000 +0800
+++ 4.0/source/scripts/engine_obj2.h	2011-10-20 22:21:42.989257800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Soldier, Vehicle and Script Zone related engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu, Joshua "NeoSaber" Kraft
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -17,7 +16,7 @@
 GameObject SCRIPTS_API *Get_Vehicle(GameObject *obj); //gets the vechicle that obj is driving
 void SCRIPTS_API Grant_Refill(GameObject *obj); //triggers the same code as the refill button on the PT
 bool SCRIPTS_API Change_Character(GameObject *obj,const char *Preset_Name); //will change the character of the passed in object to the passed in preset
-void SCRIPTS_API Create_Vehicle(const char *Preset_Name,float Delay,GameObject *Owner,int Team); //creates a vechicle,dont know what Delay is for,Owner is for the owner of the vechicle,Team says which sides factories to create it at
+bool SCRIPTS_API Create_Vehicle(const char *Preset_Name,float Delay,GameObject *Owner,int Team); //creates a vechicle,dont know what Delay is for,Owner is for the owner of the vechicle,Team says which sides factories to create it at
 void SCRIPTS_API Toggle_Fly_Mode(GameObject *obj); //makes a soldier fly if they arent flying or not fly if they are
 int SCRIPTS_API Get_Vehicle_Occupant_Count(GameObject *obj); //gets the count of occupants in a vehicle
 //these next 3 may return NULL (e.g. if no-one is in the seat or if its not a vehicle)
@@ -33,7 +32,6 @@
 void SCRIPTS_API Soldier_Transition_Vehicle(GameObject *obj); //makes the soldier exit the vehicle they are in (or if right next to a vehicle, get in)
 unsigned int SCRIPTS_API Get_Vehicle_Mode(GameObject *obj); //Gets the mode of a vehicle
 bool SCRIPTS_API Is_VTOL(GameObject *obj); //is this something that should be targeted as a VTOL
-int SCRIPTS_API Get_Team_Vehicle_Count(int team); //Gets the current vehicle count for a team
 GameObject SCRIPTS_API *Get_Vehicle_Owner(GameObject *obj); //Gets the owner (if any) of a vehicle. Will not work if used within the first second after the ::Created event is called
 void SCRIPTS_API Force_Occupants_Exit_Team(GameObject *obj,int team); //kick all occupants not of a given team out of the vehicle
 unsigned int SCRIPTS_API Get_Vehicle_Definition_Mode(const char *preset); //get the mode of a vehicle given its preset name
@@ -45,7 +43,7 @@
 void SCRIPTS_API Set_Zone_Box(GameObject *obj,OBBoxClass &box); //Set the box (size/position) of a ScriptZoneGameObj
 GameObject SCRIPTS_API *Create_Zone(const char *preset,OBBoxClass &box); //Create a script zone and set its box
 bool SCRIPTS_API PointInZone(GameObject *obj,const Vector3 &v); //Is a point in a zone
-bool SCRIPTS_API IsAvailableForPurchase(GameObject *factory); //Is it possible to purchase a vehicle from this factory
+bool SCRIPTS_API Is_Available_For_Purchase(GameObject *factory); //Is it possible to purchase a vehicle from this factory
 GameObject SCRIPTS_API *Get_Vehicle_Gunner_Pos(GameObject *obj); //Get the vehicle gunner, returns zero if there is no gunner
 void SCRIPTS_API Set_Vehicle_Is_Visible(GameObject *obj,bool visible); //works like Set_Is_Visible but for vehicles, makes them be ignored by Enemy_Seen
 void SCRIPTS_API Set_Vehicle_Gunner(GameObject *obj,int seat); //set gunner for this vehicle
diff -uwr source/scripts/engine_phys.cpp 4.0/source/scripts/engine_phys.cpp
--- source/scripts/engine_phys.cpp	2011-08-12 06:39:28.000000000 +0800
+++ 4.0/source/scripts/engine_phys.cpp	2011-10-22 20:22:09.932617100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Physics,3d geometry and animation related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -24,6 +23,7 @@
 #include "GameObjManager.h"
 #include "engine_obj2.h"
 #include "SmartGameObj.h"
+#include "VehicleGameObj.h"
 const char SCRIPTS_API *Get_Model(GameObject *obj)
 {
 	if (!obj || !Commands->Get_ID(obj))
@@ -655,7 +655,8 @@
 				if ((Get_Object_Type(obj) == team) || (team == 2))
 				{
 					bool stealth = Is_Stealth(obj);
-					if (stealth)
+					bool underground = obj->As_VehicleGameObj()->Is_Underground();
+					if (stealth || underground)
 					{
 						ObjPosition = Commands->Get_Position(obj);
 						ObjPosition.X += offset.X;
diff -uwr source/scripts/engine_phys.h 4.0/source/scripts/engine_phys.h
--- source/scripts/engine_phys.h	2010-05-31 13:00:46.000000000 +0800
+++ 4.0/source/scripts/engine_phys.h	2011-10-11 21:53:38.783203100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Physics,3d geometry and animation related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_player.cpp 4.0/source/scripts/engine_player.cpp
--- source/scripts/engine_player.cpp	2011-09-03 08:29:42.000000000 +0800
+++ 4.0/source/scripts/engine_player.cpp	2011-10-11 23:03:20.238281200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Team and player data related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -26,9 +25,11 @@
 RENEGADE_FUNCTION
 int SCRIPTS_API Get_Player_Count()
 AT2(0x00417040,0x00417040);
+#ifndef TT_EXPORTS
 RENEGADE_FUNCTION
-void cPlayer::Set_Player_Type(int type)
+void SCRIPTS_API cPlayer::Set_Player_Type(int type)
 AT2(0x0040D600,0x0040D600);
+#endif
 RENEGADE_FUNCTION
 void cPlayer::Set_Ladder_Points(int amount)
 AT2(0x0040FC90,0x0040FC90);
diff -uwr source/scripts/engine_player.h 4.0/source/scripts/engine_player.h
--- source/scripts/engine_player.h	2011-09-03 08:29:40.000000000 +0800
+++ 4.0/source/scripts/engine_player.h	2011-10-11 21:54:40.969726500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Team and player data related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_pt.cpp 4.0/source/scripts/engine_pt.cpp
--- source/scripts/engine_pt.cpp	2010-08-19 18:54:10.000000000 +0800
+++ 4.0/source/scripts/engine_pt.cpp	2011-10-11 23:03:18.812500000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Weapon related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_pt.h 4.0/source/scripts/engine_pt.h
--- source/scripts/engine_pt.h	2010-05-31 12:58:36.000000000 +0800
+++ 4.0/source/scripts/engine_pt.h	2011-10-11 21:53:31.451171800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Classes and engine calls related to what can be bought from the PT/sidebar
-	Copyright 2010 Jonathan Wilson, Mark Sararu, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_script.cpp 4.0/source/scripts/engine_script.cpp
--- source/scripts/engine_script.cpp	2011-08-12 06:39:26.000000000 +0800
+++ 4.0/source/scripts/engine_script.cpp	2011-10-11 23:03:17.410156200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Script manipulation related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_script.h 4.0/source/scripts/engine_script.h
--- source/scripts/engine_script.h	2011-03-15 13:53:18.000000000 +0800
+++ 4.0/source/scripts/engine_script.h	2011-10-11 21:53:56.809570300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Script manipulation related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_string.cpp 4.0/source/scripts/engine_string.cpp
--- source/scripts/engine_string.cpp	2010-12-11 12:22:10.000000000 +0800
+++ 4.0/source/scripts/engine_string.cpp	2011-10-11 23:03:15.960937500 +0800
@@ -1,6 +1,5 @@
 /* Renegade Scripts.dll
-	String related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_string.h 4.0/source/scripts/engine_string.h
--- source/scripts/engine_string.h	2010-12-06 07:57:18.000000000 +0800
+++ 4.0/source/scripts/engine_string.h	2011-10-11 21:53:52.137695300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	String related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_tdb.cpp 4.0/source/scripts/engine_tdb.cpp
--- source/scripts/engine_tdb.cpp	2011-08-12 06:39:24.000000000 +0800
+++ 4.0/source/scripts/engine_tdb.cpp	2011-10-11 23:03:14.446289000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Classes and engine calls that deal with strings.tdb
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -111,7 +110,7 @@
 		return newstr("");
 	}
 	WeaponBagClass *w = ((ArmedGameObj *)o)->Get_Weapon_Bag();
-	if (w->Peek_Weapon(position))
+	if ((position) && (position < w->Get_Count()))
 	{
 		return Get_Translated_String(w->Peek_Weapon(position)->Get_Definition()->IconNameID);
 	}
diff -uwr source/scripts/engine_tdb.h 4.0/source/scripts/engine_tdb.h
--- source/scripts/engine_tdb.h	2010-05-31 13:16:46.000000000 +0800
+++ 4.0/source/scripts/engine_tdb.h	2011-10-11 21:53:48.353515600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Classes and engine calls that deal with strings.tdb
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_threading.cpp 4.0/source/scripts/engine_threading.cpp
--- source/scripts/engine_threading.cpp	2010-04-14 10:13:12.000000000 +0800
+++ 4.0/source/scripts/engine_threading.cpp	2011-10-11 23:03:12.640625000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Threading related Engine Calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_threading.h 4.0/source/scripts/engine_threading.h
--- source/scripts/engine_threading.h	2010-04-14 10:13:16.000000000 +0800
+++ 4.0/source/scripts/engine_threading.h	2011-10-11 21:53:44.601562500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Threading related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_tt.cpp 4.0/source/scripts/engine_tt.cpp
--- source/scripts/engine_tt.cpp	2011-09-03 08:29:48.000000000 +0800
+++ 4.0/source/scripts/engine_tt.cpp	2011-10-20 22:43:20.420898400 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Definitions and code related to functions in tt.dll
-	Copyright 2010 Jonathan Wilson, Mark Sararu, Joshua "NeoSaber" Kraft
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -26,7 +25,8 @@
 #include "VehicleGameObj.h"
 #include "SoldierGameObj.h"
 #include "VehicleFactoryGameObj.h"
-
+#include "VehicleFactoryGameObjDef.h"
+#include "AirFactoryGameObj.h"
 class WideStringClass;
 
 
@@ -160,9 +160,9 @@
 		return false;
 	}
 	GameObject *factory = Find_Vehicle_Factory(Team);
-	if (factory && !Is_Building_Dead(factory))
+	if (factory)
 	{
-		return IsAvailableForPurchase(factory);
+		return Is_Available_For_Purchase(factory);
 	}
 	return true;
 }
@@ -737,6 +737,83 @@
 	Set_Special_Base_Destruction();
 }
 
+bool Vehicle_Preset_Is_Air(int preset)
+{
+	DefinitionClass *def = Find_Definition(preset);
+	if (!def)
+	{
+		return false;
+	}
+	if (def->Get_Class_ID() == 12304)
+	{
+		VehicleGameObjDef *def2 = (VehicleGameObjDef *)def;
+		if (def2->Get_Type() == VEHICLE_TYPE_FLYING)
+		{
+			return true;
+		}
+	}
+	return false;
+}
+
+bool SCRIPTS_API Create_Vehicle(const char *Preset_Name,float Delay,GameObject *Owner,int Team)
+{
+	if (Get_Vehicle(Owner))
+	{
+		return false;
+	}
+	int preset = Get_Definition_ID(Preset_Name);
+	BaseControllerClass *base = BaseControllerClass::Find_Base(Team);
+	DefinitionClass *vehicle = Find_Definition(preset);
+	if (!vehicle)
+	{
+		return false;
+	}
+	BuildingGameObj *bg2 = ((BuildingGameObj *)base->Find_Building(BuildingConstants::TYPE_VEHICLE_FACTORY));
+	VehicleFactoryGameObj *vf = 0;
+	if (bg2)
+	{
+		vf = bg2->As_VehicleFactoryGameObj();
+	}
+	if (!vf && !Vehicle_Preset_Is_Air(preset))
+	{
+		return false;
+	}
+	if (vf && ((vf->Is_Destroyed()) || (vf->Is_Busy())))
+	{
+		if ((!Vehicle_Preset_Is_Air(preset)) || (!vf->Get_Definition().Get_Build_Ground_Only()))
+		{
+			return false;
+		}
+	}
+	if (vf && (!Vehicle_Preset_Is_Air(preset) || !vf->Get_Definition().Get_Build_Ground_Only()))
+	{
+		float delay = 5.0;
+		if (!base->Is_Base_Powered())
+		{
+			delay *= Get_Build_Time_Multiplier(Team);
+		}
+		vf->Request_Vehicle(preset,delay,Owner->As_SoldierGameObj());
+	}
+	else
+	{
+		BuildingGameObj *bg = ((BuildingGameObj *)base->Find_Building(BuildingConstants::TYPE_HELIPAD));
+		AirFactoryGameObj *af = 0;
+		if (bg)
+		{
+			af = bg->As_AirFactoryGameObj();
+		}
+		if (af && !af->Is_Destroyed() && !af->Is_Busy() && Vehicle_Preset_Is_Air(preset))
+		{
+			af->Create_Vehicle(preset,Owner->As_SoldierGameObj());
+		}
+		else
+		{
+			return false;
+		}
+	}
+	return true;
+}
+
 SCRIPTS_API REF_DEF2(ConsoleFunctionList,DynamicVectorClass<ConsoleFunctionClass *>,0x0081DEB8,0x0081D098);
 
 RENEGADE_FUNCTION
diff -uwr source/scripts/engine_tt.h 4.0/source/scripts/engine_tt.h
--- source/scripts/engine_tt.h	2011-09-03 08:33:42.000000000 +0800
+++ 4.0/source/scripts/engine_tt.h	2011-10-11 21:53:26.168945300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Definitions and code related to functions in tt.dll
-	Copyright 2010 Jonathan Wilson, Mark Sararu, Joshua "NeoSaber" Kraft
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_ttdef.h 4.0/source/scripts/engine_ttdef.h
--- source/scripts/engine_ttdef.h	2011-08-30 23:13:42.000000000 +0800
+++ 4.0/source/scripts/engine_ttdef.h	2011-10-11 21:53:21.451171800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Definitions and code related to functions in tt.dll that are shared with tt.dll
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_vector.h 4.0/source/scripts/engine_vector.h
--- source/scripts/engine_vector.h	2011-03-09 14:10:32.000000000 +0800
+++ 4.0/source/scripts/engine_vector.h	2011-10-12 09:16:51.028320300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Container classes
-	Copyright 2010 Jonathan Wilson, Mark Sararu
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/engine_weap.cpp 4.0/source/scripts/engine_weap.cpp
--- source/scripts/engine_weap.cpp	2011-09-04 17:08:26.000000000 +0800
+++ 4.0/source/scripts/engine_weap.cpp	2011-10-11 23:03:09.419921800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Weapon related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -29,6 +28,7 @@
 #include "engine_player.h"
 #include "SoldierGameObj.h"
 #include "engine_weap.h"
+#include "OffenseObjectClass.h"
 #include <limits>
 
 SoldierGameObj* BeaconGameObj::Get_Owner()
@@ -621,7 +621,7 @@
 	return "None";
 }
 
-SCRIPTS_API AmmoDefinitionClass *Get_Weapon_Ammo_Definition(const char *weapon,bool PrimaryFire)
+SCRIPTS_API const AmmoDefinitionClass *Get_Weapon_Ammo_Definition(const char *weapon,bool PrimaryFire)
 {
 	WeaponDefinitionClass *d = (WeaponDefinitionClass *)Find_Named_Definition(weapon);
 	if (d)
@@ -642,7 +642,7 @@
 	return 0;
 }
 
-SCRIPTS_API WeaponDefinitionClass *Get_Current_Weapon_Definition(GameObject *obj)
+SCRIPTS_API const WeaponDefinitionClass *Get_Current_Weapon_Definition(GameObject *obj)
 {
 	if (!obj || !Commands->Get_ID(obj))
 	{
@@ -661,17 +661,17 @@
 	WeaponBagClass *w = o3->Get_Weapon_Bag();
 	if ((w->Get_Index()) && (w->Get_Index() < w->Get_Count()))
 	{
-		return *(WeaponDefinitionClass **)w->Peek_Weapon(w->Get_Index());
+		return w->Peek_Weapon(w->Get_Index())->Get_Definition();
 	}
 	return 0;
 }
 
-SCRIPTS_API WeaponDefinitionClass *Get_Weapon_Definition(const char *weapon)
+SCRIPTS_API const WeaponDefinitionClass *Get_Weapon_Definition(const char *weapon)
 {
 	return (WeaponDefinitionClass *)Find_Named_Definition(weapon);
 }
 
-SCRIPTS_API WeaponDefinitionClass *Get_Position_Weapon_Definition(GameObject *obj,int position)
+SCRIPTS_API const WeaponDefinitionClass *Get_Position_Weapon_Definition(GameObject *obj,int position)
 {
 	if (!obj || !Commands->Get_ID(obj))
 	{
@@ -688,14 +688,14 @@
 		return 0;
 	}
 	WeaponBagClass *w = o3->Get_Weapon_Bag();
-	if ((position < w->Get_Count()) && (w->Peek_Weapon(w->Get_Index())))
+	if ((position) && (position < w->Get_Count()))
 	{
-		return *(WeaponDefinitionClass **)w->Peek_Weapon(w->Get_Index());
+		return w->Peek_Weapon(position)->Get_Definition();
 	}
 	return 0;
 }
 
-SCRIPTS_API ExplosionDefinitionClass *Get_Explosion(const char *explosion)
+SCRIPTS_API const ExplosionDefinitionClass *Get_Explosion(const char *explosion)
 {
 	return (ExplosionDefinitionClass *)Find_Named_Definition(explosion);
 }
@@ -814,7 +814,8 @@
 	{
 		return;
 	}
-	o3->Completely_Damaged(*(OffenseObjectClass *)0);
+	OffenseObjectClass offense(0);
+	o3->Completely_Damaged(offense);
 }
 
 SCRIPTS_API GameObject *Get_Beacon_Planter(GameObject *obj)
@@ -1039,7 +1040,7 @@
 		return 0;
 	}
 	WeaponBagClass *w = o3->Get_Weapon_Bag();
-	if (w->Peek_Weapon(position))
+	if ((position) && (position < w->Get_Count()))
 	{
 		return (w->Peek_Weapon(position)->Get_Name());
 	}
diff -uwr source/scripts/engine_weap.h 4.0/source/scripts/engine_weap.h
--- source/scripts/engine_weap.h	2011-02-18 08:29:48.000000000 +0800
+++ 4.0/source/scripts/engine_weap.h	2011-10-11 21:53:12.073242100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Weapon related classes and engine calls
-	Copyright 2010 Jonathan Wilson, Mark Sararu, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -37,11 +36,11 @@
 SCRIPTS_API int Get_Position_Clip_Max_Bullets(GameObject *obj,int position); //Get clip/backpack bullets for an objects gun at a specific position
 //For all of these, -1 means "infinate ammo"
 SCRIPTS_API const char *Get_Powerup_Weapon(const char *Powerup); //Get the weapon name that a powerup will grant if collected
-SCRIPTS_API AmmoDefinitionClass *Get_Weapon_Ammo_Definition(const char *weapon,bool PrimaryFire); //Get the AmmoDefinitionClass of a weapon given its preset name
-SCRIPTS_API WeaponDefinitionClass *Get_Weapon_Definition(const char *weapon); //Get the WeaponDefinitionClass of a weapon given its preset name
-SCRIPTS_API WeaponDefinitionClass *Get_Current_Weapon_Definition(GameObject *obj); //Get the WeaponDefinitionClass of an objects current weapon
-SCRIPTS_API WeaponDefinitionClass *Get_Position_Weapon_Definition(GameObject *obj,int position); //Get the WeaponDefinitionClass of an objects weapon at the specified position
-SCRIPTS_API ExplosionDefinitionClass *Get_Explosion(const char *explosion); //Get the ExplosionDefinitionClass of an explosion given its preset name
+SCRIPTS_API const AmmoDefinitionClass *Get_Weapon_Ammo_Definition(const char *weapon,bool PrimaryFire); //Get the AmmoDefinitionClass of a weapon given its preset name
+SCRIPTS_API const WeaponDefinitionClass *Get_Weapon_Definition(const char *weapon); //Get the WeaponDefinitionClass of a weapon given its preset name
+SCRIPTS_API const WeaponDefinitionClass *Get_Current_Weapon_Definition(GameObject *obj); //Get the WeaponDefinitionClass of an objects current weapon
+SCRIPTS_API const WeaponDefinitionClass *Get_Position_Weapon_Definition(GameObject *obj,int position); //Get the WeaponDefinitionClass of an objects weapon at the specified position
+SCRIPTS_API const ExplosionDefinitionClass *Get_Explosion(const char *explosion); //Get the ExplosionDefinitionClass of an explosion given its preset name
 SCRIPTS_API const char *Get_Powerup_Weapon_By_Obj(GameObject *Powerup); //Get the name of a powerup weapon given a PowerUpGameObj
 SCRIPTS_API int Get_Current_Weapon_Style(GameObject *obj); //Get weapon style for an objects current gun
 SCRIPTS_API int Get_Position_Weapon_Style(GameObject *obj,int position); //Get weapon style for an objects gun at a specific position
diff -uwr source/scripts/gap.cpp 4.0/source/scripts/gap.cpp
--- source/scripts/gap.cpp	2010-09-11 21:22:42.000000000 +0800
+++ 4.0/source/scripts/gap.cpp	2011-10-11 23:04:42.054687500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Gap Generator scripts
-	Copyright 2010 Joshua "NeoSaber" Kraft, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/gap.h 4.0/source/scripts/gap.h
--- source/scripts/gap.h	2010-04-14 10:13:26.000000000 +0800
+++ 4.0/source/scripts/gap.h	2011-10-14 22:27:32.132812500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Gap Generator scripts
-	Copyright 2010 Joshua "NeoSaber" Kraft, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class RA_Global_Gap_Controller : public ScriptImpClass {
 	Gap_ListNode *ListHead;
 	void Created(GameObject *obj);
diff -uwr source/scripts/gmbuilding.cpp 4.0/source/scripts/gmbuilding.cpp
--- source/scripts/gmbuilding.cpp	2011-08-21 08:13:58.000000000 +0800
+++ 4.0/source/scripts/gmbuilding.cpp	2011-10-11 23:04:38.933593700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "scripts.h"
 #include "gmbuilding.h"
diff -uwr source/scripts/gmbuilding.h 4.0/source/scripts/gmbuilding.h
--- source/scripts/gmbuilding.h	2011-08-20 13:51:12.000000000 +0800
+++ 4.0/source/scripts/gmbuilding.h	2011-10-11 21:52:47.537109300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_GMBUILDING_H
 #define TT_INCLUDE_GMBUILDING_H
 class SSGM_Building : public ScriptImpClass {
diff -uwr source/scripts/gmgame.cpp 4.0/source/scripts/gmgame.cpp
--- source/scripts/gmgame.cpp	2011-09-04 17:08:04.000000000 +0800
+++ 4.0/source/scripts/gmgame.cpp	2011-10-14 21:29:00.915039000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "gmgame.h"
 #include "engine.h"
@@ -189,7 +200,8 @@
 	if (SSGMIni)
 	{
 		ReadConfig(SSGMIni);
-
+		unsigned short port = (unsigned short)SSGMIni->Get_Int("General","Port",0);
+		SSGMGameLog::Init(port);
 		int count = SSGMIni->Entry_Count("Plugins");
 		for (int i = 0;i < count;i++)
 		{
@@ -240,10 +252,12 @@
 	AddThinkHook(ThinkHook);
 	AddConsoleOutputHook(ConsoleOutputHook);
 	AddLogFileHook(LogFileHook);
+	AddRefillHook(RefillHook);
 }
 
 void SSGMGameManager::Shutdown()
 {
+	SSGMGameLog::Shutdown();
 	FreeData();
 	FreeMapData();
 	for (int i = 0;i < Plugins.Count();i++)
@@ -376,17 +390,17 @@
 		if (DisableExtraWeapons)
 		{
 			const SimpleDynVecClass<GameObjObserverClass *> &observers = obj->Get_Observers();
-			SimpleDynVecClass<GameObjObserverClass *> deleteobservers;
+			SimpleDynVecClass<ScriptImpClass *> deleteobservers;
 			for (int i = 0;i < observers.Count();i++)
 			{
 				if (!_stricmp(observers[i]->Get_Name(),"M00_GrantPowerup_Created"))
 				{
-					deleteobservers.Add(observers[i]);
+					deleteobservers.Add((ScriptImpClass *)observers[i]);
 				}
 			}
 			for (int i = 0;i < deleteobservers.Count();i++)
 			{
-				obj->Remove_Observer(deleteobservers[i]);
+				deleteobservers[i]->Destroy_Script();
 			}
 		}
 		Attach_Script_Once(obj,"SSGM_Soldier","");
@@ -447,7 +461,6 @@
 	delete[] GDISpawnChar;
 	delete[] NodSpawnChar;
 	delete[] ObjectsFilename;
-	SSGMGameLog::Shutdown();
 	for (int i = 0;i < RegisteredEvents[EVENT_GLOBAL_INI].Count();i++)
 	{
 		RegisteredEvents[EVENT_GLOBAL_INI][i]->OnFreeData();
@@ -570,8 +583,6 @@
 			SSGMIni->Get_String(translation,"Translation_Overrides",Entry);
 			Translation_Overrides.Insert(Entry,translation);
 		}
-		unsigned short port = (unsigned short)SSGMIni->Get_Int("General","Port",0);
-		SSGMGameLog::Init(port);
 		for (int i = 0;i < RegisteredEvents[EVENT_GLOBAL_INI].Count();i++)
 		{
 			RegisteredEvents[EVENT_GLOBAL_INI][i]->OnLoadGlobalINISettings(SSGMIni);
@@ -1225,21 +1236,6 @@
 		}
 		else if ( (strstr(Commands->Get_Preset_Name(obj),"POW_Chaingun_Player")) || (strstr(Commands->Get_Preset_Name(obj),"POW_Chaingun_Player_Nod")) )
 		{
-			if ( (Has_Weapon(sender,"Weapon_Chaingun_Player")) || (Has_Weapon(sender,"Weapon_Chaingun_Player_Nod")) )
-			{
-				Send_Message_Player(sender,104,234,40,"Chaingun ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00pacg_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_Chaingun_Player");
-						Remove_Weapon(sender,"Weapon_Chaingun_Player_Nod");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Chaingun acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwcg_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1251,7 +1247,6 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_MineProximity_05"))
 		{
 			Send_Message_Player(sender,104,234,40,"Proximity C4 acquired.");
@@ -1266,20 +1261,6 @@
 		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_ChemSprayer_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_ChemSprayer_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Chemsprayer fluid acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00pacs_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_ChemSprayer_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Chemsprayer acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwcs_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1290,7 +1271,6 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_POW_MineTimed_Player_02"))
 		{
 			Send_Message_Player(sender,104,234,40,"Timed C4 acquired.");
@@ -1305,20 +1285,6 @@
 		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_Flamethrower_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_Flamethrower_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Flamethrower fuel acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00paft_aqob0001i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_Flamethrower_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Flamethrower acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwft_aqob0001i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1329,23 +1295,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_GrenadeLauncher_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_GrenadeLauncher_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Grenades acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00pagn_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_GrenadeLauncher_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Grenade Launcher acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwgl_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1356,7 +1307,6 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_POW_IonCannonBeacon_Player"))
 		{
 			Send_Message_Player(sender,104,234,40,"Ion Cannon Beacon acquired.");
@@ -1374,20 +1324,6 @@
 		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_LaserChaingun_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_LaserChaingun_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Laser Chaingun battery acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00palc_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_LaserChaingun_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Laser Chaingun acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwlc_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1398,37 +1334,13 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_LaserRifle_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_LaserRifle_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Laser Rifle battery acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00palr_aqob0004i1evag_snd.wav");
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Laser Rifle acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwlr_aqob0004i1evag_snd.wav");
 			}
-		}
 		else if ((strstr(Commands->Get_Preset_Name(obj),"POW_VoltAutoRifle_Player")) || (strstr(Commands->Get_Preset_Name(obj),"CnC_POW_VoltAutoRifle_Player_Nod")))
 		{
-			if ( (Has_Weapon(sender,"Weapon_VoltAutoRifle_Player")) || (Has_Weapon(sender,"Weapon_VoltAutoRifle_Player_Nod")) )
-			{
-				Send_Message_Player(sender,104,234,40,"Volt Auto Rifle battery acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00pavr_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_VoltAutoRifle_Player");
-						Remove_Weapon(sender,"Weapon_VoltAutoRifle_Player_Nod");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Volt Auto Rifle acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwvr_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1440,23 +1352,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_Railgun_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_Railgun_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Railgun ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00parg_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_Railgun_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Railgun acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwrg_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1467,24 +1364,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_RamjetRifle_Player"))
 		{
-			if ( (Has_Weapon(sender,"CnC_Weapon_RamjetRifle_Player")) || (Has_Weapon(sender,"Weapon_RamjetRifle_Player")) )
-			{
-				Send_Message_Player(sender,104,234,40,"Ramjet Rifle ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00parj_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"CnC_Weapon_RamjetRifle_Player");
-						Remove_Weapon(sender,"Weapon_RamjetRifle_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Ramjet Rifle acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwrj_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1496,26 +1377,10 @@
 					}
 				}
 			}
-		}
 		else if ((strstr(Commands->Get_Preset_Name(obj),"POW_RocketLauncher_Player")) || 
 			     (strstr(Commands->Get_Preset_Name(obj),"CnC_POW_RocketLauncher_Player")) || 
 				 (strstr(Commands->Get_Preset_Name(obj),"M02_POW_Rocket_FullAmmo")) )
 		{
-			if ( (Has_Weapon(sender,"Weapon_RocketLauncher_Player")) || (Has_Weapon(sender,"CnC_Weapon_RocketLauncher_Player")) )
-			{
-				Send_Message_Player(sender,104,234,40,"Rockets acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00park_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_RocketLauncher_Player");
-						Remove_Weapon(sender,"CnC_Weapon_RocketLauncher_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Rocket Launcher acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwrl_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1527,24 +1392,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_POW_RepairGun_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_RepairGun_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Maintenance Tool Battery acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00parp_aqob0004i1evag_snd.wav");
-				Remove_Weapon(sender,"Weapon_RepairGun_Player");//remove the dubplicate weak repairgun
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_RepairGun_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Maintenance Tool acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwrp_aqob0001i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1555,24 +1404,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_RepairGun_Player"))		
 		{
-			if (Has_Weapon(sender,"CnC_Weapon_RepairGun_Player_Special"))
-			{
-				Send_Message_Player(sender,104,234,40,"Maintenance Tool Battery acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00parp_aqob0004i1evag_snd.wav");
-				Remove_Weapon(sender,"Weapon_RepairGun_Player");//remove the dubplicate weak repairgun
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"CnC_Weapon_RepairGun_Player_Special");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Maintenance Tool acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwrp_aqob0001i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1583,27 +1416,8 @@
 					}
 				}
 			}
-		}
 		else if ((strstr(Commands->Get_Preset_Name(obj),"POW_SniperRifle_Player")) || (strstr(Commands->Get_Preset_Name(obj),"POW_SniperRifle_Player_Nod")))
 		{
-			if ( (Has_Weapon(sender,"Weapon_SniperRifle_Player")) || (Has_Weapon(sender,"CnC_Weapon_SniperRifle_Player")) || 
-				 (Has_Weapon(sender,"Weapon_SniperRifle_Player_Nod")) || (Has_Weapon(sender,"CnC_Weapon_SniperRifle_Player_Nod")) )
-			{
-				Send_Message_Player(sender,104,234,40,"Sniper Rifle ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00pasr_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_SniperRifle_Player");
-						Remove_Weapon(sender,"Weapon_SniperRifle_Player_Nod");
-						Remove_Weapon(sender,"CnC_Weapon_SniperRifle_Player");
-						Remove_Weapon(sender,"CnC_Weapon_SniperRifle_Player_Nod");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Sniper Rifle acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwsr_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1617,23 +1431,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_Shotgun_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_Shotgun_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Shotgun ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00pass_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_Shotgun_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Shotgun acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwps_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1644,23 +1443,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_TiberiumFlechetteGun_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_TiberiumFlechetteGun_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Tiberium Flechette ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00patf_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_TiberiumFlechetteGun_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Tiberium Flechette Rifle acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwtf_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1671,23 +1455,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_TiberiumAutoRifle_Player"))
 		{
-			if (Has_Weapon(sender,"Weapon_TiberiumAutoRifle_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Tiberium Auto Rifle ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00patr_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_TiberiumAutoRifle_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Tiberium Auto Rifle acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwtr_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1698,7 +1467,6 @@
 					}
 				}
 			}
-		}
 		else if ( (strstr(Commands->Get_Preset_Name(obj),"CnC_POW_Armor_Max")) || (strstr(Commands->Get_Preset_Name(obj),"POW_Armor_100")) )
 		{
 			Send_Message_Player(sender,104,234,40,"Full Body Armor acquired.");
@@ -1726,20 +1494,6 @@
 		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_AutoRifle_Player"))		
 		{
-			if (Has_Weapon(sender,"Weapon_AutoRifle_Player"))
-			{
-				Send_Message_Player(sender,104,234,40,"Automatic Rifle ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00paar_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_AutoRifle_Player");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Automatic Rifle acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwar_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1750,23 +1504,8 @@
 					}
 				}
 			}
-		}
 		else if (strstr(Commands->Get_Preset_Name(obj),"POW_AutoRifle_Player_Nod"))		
 		{
-			if (Has_Weapon(sender,"Weapon_AutoRifle_Player_Nod"))
-			{
-				Send_Message_Player(sender,104,234,40,"Automatic Rifle ammunition acquired.");
-				Create_2D_WAV_Sound_Player(sender,"m00paar_aqob0004i1evag_snd.wav");
-				if (!SBHCanPickupDropWeapons)
-				{
-					if (strcmp(Commands->Get_Preset_Name(sender),"CnC_Nod_FlameThrower_2SF") == 0)
-					{
-						Remove_Weapon(sender,"Weapon_AutoRifle_Player_Nod");
-					}
-				}
-			}
-			else
-			{
 				Send_Message_Player(sender,104,234,40,"Automatic Rifle acquired.");
 				Create_2D_WAV_Sound_Player(sender,"m00pwar_aqob0004i1evag_snd.wav");
 				if (!SBHCanPickupDropWeapons)
@@ -1777,7 +1516,6 @@
 					}
 				}
 			}
-		}
 	}
 }
 
diff -uwr source/scripts/gmgame.h 4.0/source/scripts/gmgame.h
--- source/scripts/gmgame.h	2011-08-30 23:20:46.000000000 +0800
+++ 4.0/source/scripts/gmgame.h	2011-10-11 21:52:45.681640600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_GMGAME_H
 #define TT_INCLUDE_GMGAME_H
 #include "gmplugin.h"
diff -uwr source/scripts/gmlog.cpp 4.0/source/scripts/gmlog.cpp
--- source/scripts/gmlog.cpp	2010-08-14 10:21:28.000000000 +0800
+++ 4.0/source/scripts/gmlog.cpp	2011-10-11 23:04:36.381835900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "gmlog.h"
 #include "engine.h"
diff -uwr source/scripts/gmlog.h 4.0/source/scripts/gmlog.h
--- source/scripts/gmlog.h	2010-05-31 13:40:04.000000000 +0800
+++ 4.0/source/scripts/gmlog.h	2011-10-11 21:52:43.539062500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_GMLOG_H
 #define TT_INCLUDE_GMLOG_H
 
diff -uwr source/scripts/gmplugin.h 4.0/source/scripts/gmplugin.h
--- source/scripts/gmplugin.h	2011-08-30 23:20:46.000000000 +0800
+++ 4.0/source/scripts/gmplugin.h	2011-10-11 21:52:40.915039000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_GMPLUGIN_H
 #define TT_INCLUDE_GMPLUGIN_H
 #include "scripts.h"
diff -uwr source/scripts/gmsoldier.cpp 4.0/source/scripts/gmsoldier.cpp
--- source/scripts/gmsoldier.cpp	2011-08-20 09:50:42.000000000 +0800
+++ 4.0/source/scripts/gmsoldier.cpp	2011-10-11 23:04:34.123046800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "scripts.h"
 #include "engine.h"
diff -uwr source/scripts/gmsoldier.h 4.0/source/scripts/gmsoldier.h
--- source/scripts/gmsoldier.h	2011-08-17 19:55:54.000000000 +0800
+++ 4.0/source/scripts/gmsoldier.h	2011-10-11 21:52:39.229492100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_GMSOLDIER_H
 #define TT_INCLUDE_GMSOLDIER_H
 class SSGM_Soldier : public ScriptImpClass {
diff -uwr source/scripts/gmvehicle.cpp 4.0/source/scripts/gmvehicle.cpp
--- source/scripts/gmvehicle.cpp	2011-08-29 08:56:56.000000000 +0800
+++ 4.0/source/scripts/gmvehicle.cpp	2011-10-11 23:04:32.766601500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "scripts.h"
 #include "gmvehicle.h"
diff -uwr source/scripts/gmvehicle.h 4.0/source/scripts/gmvehicle.h
--- source/scripts/gmvehicle.h	2011-08-21 20:37:16.000000000 +0800
+++ 4.0/source/scripts/gmvehicle.h	2011-10-11 21:52:37.589843700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_GMVEHICLE_H
 #define TT_INCLUDE_GMVEHICLE_H
 class VehicleGameObj;
diff -uwr source/scripts/inttest.h 4.0/source/scripts/inttest.h
--- source/scripts/inttest.h	2009-11-09 18:58:08.000000000 +0800
+++ 4.0/source/scripts/inttest.h	2011-10-11 21:51:53.560546800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_INTTEST_H
 #define TT_INCLUDE_INTTEST_H
 #include "OBBoxClass.h"
diff -uwr source/scripts/jfwcine.cpp 4.0/source/scripts/jfwcine.cpp
--- source/scripts/jfwcine.cpp	2011-04-25 13:36:04.000000000 +0800
+++ 4.0/source/scripts/jfwcine.cpp	2011-10-11 23:05:22.311523400 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts to do with cinematics
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwcine.h 4.0/source/scripts/jfwcine.h
--- source/scripts/jfwcine.h	2011-04-25 10:01:14.000000000 +0800
+++ 4.0/source/scripts/jfwcine.h	2011-10-14 22:27:31.998046800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts to do with cinematics
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Zone_Play_Cinematic : public ScriptImpClass {
 	void Entered(GameObject *obj,GameObject *enterer);
 };
diff -uwr source/scripts/jfwcust.cpp 4.0/source/scripts/jfwcust.cpp
--- source/scripts/jfwcust.cpp	2011-04-25 18:24:06.000000000 +0800
+++ 4.0/source/scripts/jfwcust.cpp	2011-10-11 23:05:21.089843700 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that send and recieve customs
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwcust.h 4.0/source/scripts/jfwcust.h
--- source/scripts/jfwcust.h	2011-04-25 18:24:06.000000000 +0800
+++ 4.0/source/scripts/jfwcust.h	2011-10-14 22:27:31.973632800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that send and recieve customs
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Custom_Toggle_Radar : public ScriptImpClass {
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
 };
diff -uwr source/scripts/jfwdef.cpp 4.0/source/scripts/jfwdef.cpp
--- source/scripts/jfwdef.cpp	2010-05-28 14:55:54.000000000 +0800
+++ 4.0/source/scripts/jfwdef.cpp	2011-10-11 23:05:19.216796800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Base defense scripts
-	Copyright 2010 Olaf Van Der Spek, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwdef.h 4.0/source/scripts/jfwdef.h
--- source/scripts/jfwdef.h	2010-05-25 22:03:52.000000000 +0800
+++ 4.0/source/scripts/jfwdef.h	2011-10-14 22:27:32.183593700 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Base defense scripts
-	Copyright 2010 Olaf Van Der Spek, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_User_Controllable_Base_Defence : public ScriptImpClass {
 	unsigned int id1;
 	unsigned int id2;
diff -uwr source/scripts/jfwdmg.cpp 4.0/source/scripts/jfwdmg.cpp
--- source/scripts/jfwdmg.cpp	2011-08-21 10:36:58.000000000 +0800
+++ 4.0/source/scripts/jfwdmg.cpp	2011-10-11 23:05:17.557617100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts to do with death, damage and health
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwdmg.h 4.0/source/scripts/jfwdmg.h
--- source/scripts/jfwdmg.h	2011-06-17 14:06:30.000000000 +0800
+++ 4.0/source/scripts/jfwdmg.h	2011-10-14 22:27:32.069335900 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts to do with death, damage and health
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Spawn_Object_Death : public ScriptImpClass {
 	void Killed(GameObject *obj,GameObject *killer);
 };
diff -uwr source/scripts/jfwgame.cpp 4.0/source/scripts/jfwgame.cpp
--- source/scripts/jfwgame.cpp	2011-05-20 19:17:24.000000000 +0800
+++ 4.0/source/scripts/jfwgame.cpp	2011-10-22 20:22:09.983398400 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for major gameplay elements (including scripts for specific buildings, units etc)
-	Copyright 2010 Vloktboky, E!, Jonathan Wilson, Joshua "NeoSaber" Kraft, zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwgame.h 4.0/source/scripts/jfwgame.h
--- source/scripts/jfwgame.h	2011-04-30 15:36:08.000000000 +0800
+++ 4.0/source/scripts/jfwgame.h	2011-10-14 22:27:32.040039000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for major gameplay elements (including scripts for specific buildings, units etc)
-	Copyright 2010 Vloktboky, E!, Jonathan Wilson, Joshua "NeoSaber" Kraft, zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Team_DM_Zone : public ScriptImpClass {
 	bool triggered;
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
diff -uwr source/scripts/jfwgun.cpp 4.0/source/scripts/jfwgun.cpp
--- source/scripts/jfwgun.cpp	2010-05-25 21:17:30.000000000 +0800
+++ 4.0/source/scripts/jfwgun.cpp	2011-10-11 23:05:13.274414000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Building gun scripts
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwgun.h 4.0/source/scripts/jfwgun.h
--- source/scripts/jfwgun.h	2010-05-21 09:42:38.000000000 +0800
+++ 4.0/source/scripts/jfwgun.h	2011-10-14 22:27:32.115234300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Building gun scripts
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Building_Gun : public ScriptImpClass {
 	int weaponid;
 	void Created(GameObject *obj);
diff -uwr source/scripts/jfwhook.cpp 4.0/source/scripts/jfwhook.cpp
--- source/scripts/jfwhook.cpp	2010-05-21 09:42:38.000000000 +0800
+++ 4.0/source/scripts/jfwhook.cpp	2011-10-11 23:05:12.082031200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Hook scripts
-	Copyright 2010 TheKGBspy, Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwhook.h 4.0/source/scripts/jfwhook.h
--- source/scripts/jfwhook.h	2010-05-21 09:42:38.000000000 +0800
+++ 4.0/source/scripts/jfwhook.h	2011-10-14 22:27:32.037109300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Hook scripts
-	Copyright 2010 TheKGBspy, Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 void ObjectCreateHookBaseHook(void *data,GameObject *obj);
 
 void KeyHookBaseHook(void *data);
diff -uwr source/scripts/jfwmisc.cpp 4.0/source/scripts/jfwmisc.cpp
--- source/scripts/jfwmisc.cpp	2011-02-18 22:55:26.000000000 +0800
+++ 4.0/source/scripts/jfwmisc.cpp	2011-10-25 15:38:28.286132800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Miscellanious scripts
-	Copyright 2010 Vloktboky, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -19,6 +18,15 @@
 #include "TeamPurchaseSettingsDefClass.h"
 #include "PurchaseSettingsDefClass.h"
 #include "BuildingGameObjDef.h"
+#include "ConstructionYardGameObj.h"
+#include "RefineryGameObj.h"
+#include "ArmorWarheadManager.h"
+#include "VehicleGameObj.h"
+#include "WeaponClass.h"
+#include "VehicleFactoryGameObj.h"
+#include "AirFactoryGameObj.h"
+#include "PurchaseSettingsDefClass.h"
+
 void JFW_User_Settable_Parameters::Created(GameObject *obj)
 {
 	const char *filename;
@@ -981,6 +989,628 @@
 	}
 }
 
+void JFW_Display_String_Custom::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (type == Get_Int_Parameter("Message"))
+	{
+		const char *string = Get_Parameter("String");
+		const char *sound = Get_Parameter("Sound");
+		int red = Get_Int_Parameter("Red");
+		int green = Get_Int_Parameter("Green");
+		int blue = Get_Int_Parameter("Blue");
+		int team = Get_Int_Parameter("Team");
+		Send_Message_Team(team,red,green,blue,string);
+		Create_2D_Sound_Team(sound,team);
+	}
+}
+
+void JFW_Preset_Disable::Created(GameObject *obj)
+{
+	count = 0;
+}
+
+void JFW_Preset_Disable::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (type == Get_Int_Parameter("Disable_Custom"))
+	{
+		if (count == 0)
+		{
+			Disable_Preset_By_Name(Commands->Get_Player_Type(obj),Get_Parameter("Preset"),true);
+		}
+		count++;
+	}
+	if (type == Get_Int_Parameter("Enable_Custom"))
+	{
+		count--;
+		if (count == 0)
+		{
+			Disable_Preset_By_Name(Commands->Get_Player_Type(obj),Get_Parameter("Preset"),false);
+		}
+	}
+}
+
+void JFW_Preset_Disable::Killed(GameObject *obj,GameObject *killer)
+{
+	Destroy_Script();
+}
+
+void JFW_Power_Disable::Created(GameObject *obj)
+{
+	count = 0;
+}
+
+void JFW_Power_Disable::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (type == Get_Int_Parameter("Disable_Custom"))
+	{
+		if (count == 0)
+		{
+			Power_Base(Commands->Get_Player_Type(obj),false);
+		}
+		count++;
+	}
+	if (type == Get_Int_Parameter("Enable_Custom"))
+	{
+		count--;
+		if (count == 0)
+		{
+			Power_Base(Commands->Get_Player_Type(obj),true);
+		}
+	}
+}
+
+void JFW_Power_Disable::Killed(GameObject *obj,GameObject *killer)
+{
+	Destroy_Script();
+}
+
+void JFW_Radar_Disable::Created(GameObject *obj)
+{
+	count = 0;
+}
+
+void JFW_Radar_Disable::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (type == Get_Int_Parameter("Disable_Custom"))
+	{
+		if (count == 0)
+		{
+			Enable_Base_Radar(Get_Object_Type(obj),false);
+		}
+		count++;
+	}
+	if (type == Get_Int_Parameter("Enable_Custom"))
+	{
+		count--;
+		if (count == 0)
+		{
+			Enable_Base_Radar(Get_Object_Type(obj),true);
+		}
+	}
+}
+
+void JFW_Radar_Disable::Killed(GameObject *obj,GameObject *killer)
+{
+	Destroy_Script();
+}
+
+void JFW_Conyard_Disable::Created(GameObject *obj)
+{
+	count = 0;
+}
+
+void JFW_Conyard_Disable::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (obj->As_BuildingGameObj() && obj->As_BuildingGameObj()->As_ConstructionYardGameObj())
+	{
+		if (type == Get_Int_Parameter("Disable_Custom"))
+		{
+			if (count == 0)
+			{
+				obj->As_BuildingGameObj()->As_ConstructionYardGameObj()->Set_Spy(true);
+			}
+			count++;
+		}
+		if (type == Get_Int_Parameter("Enable_Custom"))
+		{
+			count--;
+			if (count == 0)
+			{
+				obj->As_BuildingGameObj()->As_ConstructionYardGameObj()->Set_Spy(false);
+			}
+		}
+	}
+}
+
+void JFW_Conyard_Disable::Killed(GameObject *obj,GameObject *killer)
+{
+	Destroy_Script();
+}
+
+void JFW_Refinery_Disable::Created(GameObject *obj)
+{
+	count = 0;
+}
+
+void JFW_Refinery_Disable::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (obj->As_BuildingGameObj() && obj->As_BuildingGameObj()->As_RefineryGameObj())
+	{
+		if (type == Get_Int_Parameter("Disable_Custom"))
+		{
+			if (count == 0)
+			{
+				obj->As_BuildingGameObj()->As_RefineryGameObj()->Block_Harvester_Spawn();
+			}
+			count++;
+		}
+		if (type == Get_Int_Parameter("Enable_Custom"))
+		{
+			count--;
+			if (count == 0)
+			{
+				obj->As_BuildingGameObj()->As_RefineryGameObj()->Allow_Harvester_Spawn();
+			}
+		}
+	}
+}
+
+void JFW_Refinery_Disable::Killed(GameObject *obj,GameObject *killer)
+{
+	Destroy_Script();
+}
+
+void JFW_VehicleFactory_Disable::Created(GameObject *obj)
+{
+	count = 0;
+}
+
+void JFW_VehicleFactory_Disable::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (obj->As_BuildingGameObj() && obj->As_BuildingGameObj()->As_VehicleFactoryGameObj())
+	{
+		if (type == Get_Int_Parameter("Disable_Custom"))
+		{
+			if (count == 0)
+			{
+				obj->As_BuildingGameObj()->As_VehicleFactoryGameObj()->Set_Disabled(true);
+				PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_VEHICLES,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(obj)))->Set_Page_Disabled(true);
+				PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_SECRET_VEHICLES,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(obj)))->Set_Page_Disabled(true);
+			}
+			count++;
+		}
+		if (type == Get_Int_Parameter("Enable_Custom"))
+		{
+			count--;
+			if (count == 0)
+			{
+				obj->As_BuildingGameObj()->As_VehicleFactoryGameObj()->Set_Disabled(false);
+				PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_VEHICLES,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(obj)))->Set_Page_Disabled(false);
+				PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_SECRET_VEHICLES,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(obj)))->Set_Page_Disabled(false);
+			}
+		}
+	}
+}
+
+void JFW_VehicleFactory_Disable::Killed(GameObject *obj,GameObject *killer)
+{
+	Destroy_Script();
+}
+
+void JFW_AirFactory_Disable::Created(GameObject *obj)
+{
+	count = 0;
+}
+
+void JFW_AirFactory_Disable::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (obj->As_BuildingGameObj() && obj->As_BuildingGameObj()->As_AirFactoryGameObj())
+	{
+		if (type == Get_Int_Parameter("Disable_Custom"))
+		{
+			if (count == 0)
+			{
+				obj->As_BuildingGameObj()->As_AirFactoryGameObj()->Set_Disabled(true);
+				PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_AIR,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(obj)))->Set_Page_Disabled(true);
+			}
+			count++;
+		}
+		if (type == Get_Int_Parameter("Enable_Custom"))
+		{
+			count--;
+			if (count == 0)
+			{
+				obj->As_BuildingGameObj()->As_AirFactoryGameObj()->Set_Disabled(false);
+				PurchaseSettingsDefClass::Find_Definition(PurchaseSettingsDefClass::TYPE_AIR,(PurchaseSettingsDefClass::TEAM)PTTEAM(Get_Object_Type(obj)))->Set_Page_Disabled(false);
+			}
+		}
+	}
+}
+
+void JFW_AirFactory_Disable::Killed(GameObject *obj,GameObject *killer)
+{
+	Destroy_Script();
+}
+
+void JFW_Engineer_Hack::Created(GameObject *obj)
+{
+	Warhead = ArmorWarheadManager::Get_Warhead_Type(Get_Parameter("Hack_Warhead"));
+	HackHealth = Get_Float_Parameter("Hack_Health");
+	IndcatorID = Commands->Get_ID(Find_Nearest_Preset(Commands->Get_Position(obj),Get_Parameter("Hack_Indicator_Preset")));
+	Commands->Start_Timer(obj,this,Get_Float_Parameter("Hack_Restore_Timer"),1);
+}
+void JFW_Engineer_Hack::Killed(GameObject *obj,GameObject *killer)
+{
+	Destroy_Script();
+}
+void JFW_Engineer_Hack::Damaged(GameObject *obj,GameObject *damager,float amount)
+{
+	if (Warhead == Get_Damage_Warhead())
+	{
+		if (Commands->Get_Player_Type(obj) == Commands->Get_Player_Type(damager))
+		{
+			Apply_Repair(obj,Get_Float_Parameter("Hack_Repair"));
+		}
+		else
+		{
+			Apply_Damage(obj,Get_Float_Parameter("Hack_Damage"));
+		}
+	}
+}
+void JFW_Engineer_Hack::Timer_Expired(GameObject *obj,int number)
+{
+	Apply_Repair(obj,Get_Float_Parameter("Hack_Restore_Amount"));
+	Commands->Start_Timer(obj,this,Get_Float_Parameter("Hack_Restore_Timer"),1);
+}
+void JFW_Engineer_Hack::Apply_Damage(GameObject *obj,float damage)
+{
+	float oldhealth = HackHealth;
+	HackHealth -= damage;
+	float offline = Get_Float_Parameter("Hack_Offline_Amount");
+	if (HackHealth <= 0)
+	{
+		Commands->Apply_Damage(obj,99999,"Death",0);
+	}
+	if (oldhealth > offline && HackHealth <= offline)
+	{
+		Commands->Send_Custom_Event(obj,obj,Get_Int_Parameter("Hack_Offline_Custom"),0,0);
+		Commands->Send_Custom_Event(Commands->Find_Object(IndcatorID),obj,Get_Int_Parameter("Hack_Offline_Custom"),0,0);
+	}
+}
+void JFW_Engineer_Hack::Apply_Repair(GameObject *obj,float repair)
+{
+	float oldhealth = HackHealth;
+	HackHealth += repair;
+	if (HackHealth > Get_Float_Parameter("Hack_Health"))
+	{
+		HackHealth = Get_Float_Parameter("Hack_Health");
+	}
+	float offline = Get_Float_Parameter("Hack_Offline_Amount");
+	if (oldhealth <= offline && HackHealth > offline)
+	{
+		Commands->Send_Custom_Event(obj,obj,Get_Int_Parameter("Hack_Online_Custom"),0,0);
+		Commands->Send_Custom_Event(Commands->Find_Object(IndcatorID),obj,Get_Int_Parameter("Hack_Online_Custom"),0,0);
+	}
+}
+
+void JFW_Double_Animation::Created(GameObject *obj)
+{
+	StringClass str = Get_Model(obj);
+	str += ".";
+	str += Get_Model(obj);
+	Commands->Set_Animation(obj,str,0,0,0,Get_Float_Parameter("End_Frame"),0);
+}
+void JFW_Double_Animation::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (type == Get_Int_Parameter("First_Custom"))
+	{
+		StringClass str = Get_Model(obj);
+		str += ".";
+		str += Get_Model(obj);
+		Commands->Set_Animation(obj,str,0,0,0,Get_Float_Parameter("End_Frame"),0);
+	}
+	if (type == Get_Int_Parameter("Second_Custom"))
+	{
+		StringClass str = Get_Model(obj);
+		str += ".";
+		str += Get_Model(obj);
+		Commands->Set_Animation(obj,str,0,0,Get_Float_Parameter("End_Frame")+1,-1,0);
+	}
+}
+
+void JFW_EMP::Created(GameObject *obj)
+{
+	Warhead = ArmorWarheadManager::Get_Warhead_Type(Get_Parameter("Warhead"));
+}
+
+void JFW_EMP::Damaged(GameObject *obj,GameObject *damager,float amount)
+{
+	if (Warhead == Get_Damage_Warhead())
+	{
+		VehicleGameObj *o = obj->As_VehicleGameObj();
+		if (o && o->Get_Is_Scripts_Visible() && !o->Is_Immovable())
+		{
+			o->Set_Immovable(true);
+			o->Set_Scripts_Can_Fire(false);
+			Commands->Start_Timer(obj,this,Get_Float_Parameter("Time"),1);
+			Commands->Set_Animation(obj,Get_Parameter("Animation"),true,0,0,-1,false);
+			obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
+		}
+	}
+}
+
+void JFW_EMP::Timer_Expired(GameObject *obj,int number)
+{
+	VehicleGameObj *o = obj->As_VehicleGameObj();
+	Commands->Set_Animation(obj,0,true,0,0,-1,false);
+	obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
+	o->Set_Immovable(false);
+	o->Set_Scripts_Can_Fire(true);
+}
+
+void JFW_EMP_Mine::Created(GameObject *obj)
+{
+	Commands->Enable_Hibernation(obj,false);
+	Commands->Innate_Enable(obj);
+	Commands->Enable_Enemy_Seen(obj,true);
+}
+
+void JFW_EMP_Mine::Enemy_Seen(GameObject *obj, GameObject *enemy)
+{
+	Commands->Create_Explosion(Get_Parameter("Explosion"),Commands->Get_Position(obj),0);
+	Commands->Apply_Damage(obj,99999,"Death",0);
+}
+
+void JFW_EMP_Mine::Destroyed(GameObject *obj)
+{
+	Commands->Send_Custom_Event(obj, Commands->Find_Object(Get_Int_Parameter("Mine_Manager_ID")),111111,0,0);
+}
+
+void JFW_EMP_Mine_Manager::Created(GameObject *obj)
+{
+	mines = 0;
+}
+
+void JFW_EMP_Mine_Manager::Custom(GameObject *obj, int type, int param, GameObject *sender)
+{
+	if (type == 111111)
+	{
+		mines--;
+	}
+	else if (type == 222222)
+	{
+		int limit = Get_Int_Parameter("Mine_Limit");
+		if (mines < limit)
+		{
+			mines++;
+			SoldierGameObj *s = sender->As_SoldierGameObj();
+			if (s)
+			{
+				GameObject *mine = Commands->Create_Object(Get_Parameter("Mine_Preset"),s->Get_Muzzle().Get_Translation());
+				PhysicalGameObj *p = mine->As_PhysicalGameObj();
+				p->Peek_Physical_Object()->Set_Collision_Group(TERRAIN_AND_BULLET_COLLISION_GROUP);
+			}
+		}
+		else
+		{
+			Commands->Give_PowerUp(sender, Get_Parameter("Mine_Reload"), false);
+		}
+	}
+}
+
+void JFW_EMP_Mine_Layer::Damaged(GameObject *obj, GameObject *damager, float amount)
+{
+	unsigned int warhead = ArmorWarheadManager::Get_Warhead_Type(Get_Parameter("Warhead"));
+	if (warhead == Get_Damage_Warhead() && damager == obj)
+	{
+		Commands->Send_Custom_Event(obj,Commands->Find_Object(Get_Int_Parameter("Mine_Manager_ID")), 222222,0,0);
+	}
+}
+
+void JFW_Radar_Disable_Death::Killed(GameObject *obj,GameObject *killer)
+{
+	Enable_Base_Radar(Get_Object_Type(obj),false);
+}
+
+void JFW_Cyborg_Reaper::Created(GameObject *obj)
+{
+	driverid = 0;
+}
+
+void JFW_Cyborg_Reaper::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (type == CUSTOM_EVENT_VEHICLE_EXITED)
+	{
+		Commands->Apply_Damage(obj,99999,"Death",0);
+		Commands->Attach_Script(Commands->Find_Object(driverid),"RA_DriverDeath", "0");
+	}
+	else if (type == CUSTOM_EVENT_VEHICLE_OWNER)
+	{
+		Commands->Set_Position(obj,Commands->Get_Position(sender));
+		Soldier_Transition_Vehicle(sender);
+		driverid = Commands->Get_ID(sender);
+	}
+}
+
+void JFW_Cyborg_Reaper::Killed(GameObject *obj,GameObject *killer)
+{
+	Commands->Attach_Script(Commands->Find_Object(driverid),"RA_DriverDeath", "0");
+}
+
+void JFW_Limpet_Drone::Created(GameObject *obj)
+{
+	stealth = false;
+	if (obj->As_VehicleGameObj())
+	{
+		obj->As_VehicleGameObj()->Set_Is_Scripts_Visible(false);
+	}
+}
+
+void JFW_Limpet_Drone::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (type == 923572385)
+	{
+		stealth = !stealth;
+		Commands->Enable_Stealth(obj,stealth);
+	}
+}
+
+void JFW_Forward_Custom_Object::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	Commands->Send_Custom_Event(obj,Commands->Find_Object(Get_Int_Parameter("Object_ID")),type,param,0);
+}
+
+void JFW_Death_Send_Custom_Self::Killed(GameObject *obj,GameObject *killer)
+{
+	Commands->Send_Custom_Event(obj,obj,Get_Int_Parameter("Message"),0,0);
+}
+
+void JFW_Hunter_Seeker::Created(GameObject *obj)
+{
+	InstallHook(Get_Parameter("Key"),obj);
+	driverid = 0;
+}
+
+void JFW_Hunter_Seeker::KeyHook()
+{
+	Commands->Start_Timer(Owner(),this,5,1);
+	Soldier_Transition_Vehicle(Commands->Find_Object(driverid));
+}
+
+void JFW_Hunter_Seeker::Custom(GameObject *obj,int type,int param,GameObject *sender)
+{
+	if (type == CUSTOM_EVENT_VEHICLE_EXITED)
+	{
+		Commands->Start_Timer(obj,this,5,2);
+	}
+	else if (type == CUSTOM_EVENT_VEHICLE_OWNER)
+	{
+		driverid = Commands->Get_ID(sender);
+	}
+}
+
+void JFW_Hunter_Seeker::Timer_Expired(GameObject *obj,int number)
+{
+	if (number == 1)
+	{
+		Commands->Apply_Damage(obj,99999,"Death",0);
+		Commands->Create_Explosion(Get_Parameter("Explosion"),Commands->Get_Position(obj),0);
+	}
+	else if (number == 2)
+	{
+		Commands->Apply_Damage(obj,99999,"Death",0);
+	}
+}
+
+void JFW_Ion_Storm::Created(GameObject *obj)
+{
+	storm = false;
+	float min = Get_Float_Parameter("Min_Delay");
+	float max = Get_Float_Parameter("Max_Delay");
+	if (max > The_Game()->Get_Time_Remaining_Seconds())
+	{
+		max = The_Game()->Get_Time_Remaining_Seconds();
+	}
+	if (min > The_Game()->Get_Time_Remaining_Seconds())
+	{
+		Destroy_Script();
+	}
+	float timer = Commands->Get_Random(min,max);
+	Commands->Start_Timer(obj,this,timer,1);
+}
+void JFW_Ion_Storm::Timer_Expired(GameObject *obj,int number)
+{
+	if (number == 1) //start storm
+	{
+		storm = true;
+		float min = Get_Float_Parameter("Min_Time");
+		float max = Get_Float_Parameter("Max_Time");
+		if (max > The_Game()->Get_Time_Remaining_Seconds())
+		{
+			max = The_Game()->Get_Time_Remaining_Seconds();
+		}
+		if (min > The_Game()->Get_Time_Remaining_Seconds())
+		{
+			Destroy_Script();
+		}
+		float timer = Commands->Get_Random(min,max);
+		Commands->Start_Timer(obj,this,timer,2);
+		Commands->Set_Lightning(Get_Float_Parameter("Lightning_Intensity"),Get_Float_Parameter("Lightning_Start_Distance"),Get_Float_Parameter("Lightning_End_Distance"),Get_Float_Parameter("Lightning_Heading"),Get_Float_Parameter("Lightning_Distribution"),0);
+		if (Find_Building(0,BuildingConstants::TYPE_COM_CENTER))
+		{
+			Commands->Send_Custom_Event(obj,Find_Building(0,BuildingConstants::TYPE_COM_CENTER),Get_Int_Parameter("Disable_Custom"),0,0);
+		}
+		if (Find_Building(1,BuildingConstants::TYPE_COM_CENTER))
+		{
+			Commands->Send_Custom_Event(obj,Find_Building(1,BuildingConstants::TYPE_COM_CENTER),Get_Int_Parameter("Disable_Custom"),0,0);
+		}
+		if (Find_Building(0,BuildingConstants::TYPE_POWER_PLANT))
+		{
+			Commands->Send_Custom_Event(obj,Find_Building(0,BuildingConstants::TYPE_POWER_PLANT),Get_Int_Parameter("Disable_Custom"),0,0);
+		}
+		if (Find_Building(1,BuildingConstants::TYPE_POWER_PLANT))
+		{
+			Commands->Send_Custom_Event(obj,Find_Building(1,BuildingConstants::TYPE_POWER_PLANT),Get_Int_Parameter("Disable_Custom"),0,0);
+		}
+		Timer_Expired(obj,3);
+		Create_2D_Sound_Team(Get_Parameter("Announcement_Sound_Nod"),0);
+		Create_2D_Sound_Team(Get_Parameter("Announcement_Sound_GDI"),1);
+		const char *string = Get_Parameter("Announcement_String");
+		int red = Get_Int_Parameter("Red");
+		int green = Get_Int_Parameter("Green");
+		int blue = Get_Int_Parameter("Blue");
+		Send_Message(red,green,blue,string);
+	}
+	else if (number == 2) //storm ended
+	{
+		storm = false;
+		Commands->Set_Lightning(Get_Float_Parameter("Lightning_Off_Intensity"),Get_Float_Parameter("Lightning_Off_Start_Distance"),Get_Float_Parameter("Lightning_Off_End_Distance"),Get_Float_Parameter("Lightning_Off_Heading"),Get_Float_Parameter("Lightning_Off_Distribution"),0);
+		if (Find_Building(0,BuildingConstants::TYPE_COM_CENTER))
+		{
+			Commands->Send_Custom_Event(obj,Find_Building(0,BuildingConstants::TYPE_COM_CENTER),Get_Int_Parameter("Enable_Custom"),0,0);
+		}
+		if (Find_Building(1,BuildingConstants::TYPE_COM_CENTER))
+		{
+			Commands->Send_Custom_Event(obj,Find_Building(1,BuildingConstants::TYPE_COM_CENTER),Get_Int_Parameter("Enable_Custom"),0,0);
+		}
+		if (Find_Building(0,BuildingConstants::TYPE_POWER_PLANT))
+		{
+			Commands->Send_Custom_Event(obj,Find_Building(0,BuildingConstants::TYPE_POWER_PLANT),Get_Int_Parameter("Enable_Custom"),0,0);
+		}
+		if (Find_Building(1,BuildingConstants::TYPE_POWER_PLANT))
+		{
+			Commands->Send_Custom_Event(obj,Find_Building(1,BuildingConstants::TYPE_POWER_PLANT),Get_Int_Parameter("Enable_Custom"),0,0);
+		}
+		Create_2D_Sound_Team(Get_Parameter("End_Announcement_Sound_Nod"),0);
+		Create_2D_Sound_Team(Get_Parameter("End_Announcement_Sound_GDI"),1);
+		const char *string = Get_Parameter("End_Announcement_String");
+		int red = Get_Int_Parameter("Red");
+		int green = Get_Int_Parameter("Green");
+		int blue = Get_Int_Parameter("Blue");
+		Send_Message(red,green,blue,string);
+		float min = Get_Float_Parameter("Min_Delay");
+		float max = Get_Float_Parameter("Max_Delay");
+		if (max > The_Game()->Get_Time_Remaining_Seconds())
+		{
+			max = The_Game()->Get_Time_Remaining_Seconds();
+		}
+		if (min > The_Game()->Get_Time_Remaining_Seconds())
+		{
+			Destroy_Script();
+		}
+		float timer = Commands->Get_Random(min,max);
+		Commands->Start_Timer(obj,this,timer,1);
+	}
+	else if (number == 3)
+	{
+		if (storm)
+		{
+			Commands->Create_2D_Sound(Get_Parameter("Ion_Effect_Sound"));
+			Commands->Start_Timer(obj,this,Get_Float_Parameter("Ion_Effect_Time"),3);
+		}
+	}
+}
+
 ScriptRegistrant<JFW_Stealthable_Object> JFW_Stealthable_Object_Registrant("JFW_Stealthable_Object","Message:int");
 ScriptRegistrant<JFW_Object_Counter> JFW_Object_Counter_Registrant("JFW_Object_Counter","Count:int,IncrementMessage:int,DecrementMessage:int");
 ScriptRegistrant<JFW_Fog_Create> JFW_Fog_Create_Registrant("JFW_Fog_Create","Fog_Enable:int,Fog_Start_Distance=0.000:float,Fog_End_Distance=0.000:float,Delay=0.000:float,OnCreate=0:int,OnDestroy=0:int");
@@ -1034,3 +1664,24 @@
 ScriptRegistrant<JFW_Game_Hint_Image_Zone> JFW_Game_Hint_Image_Zone_Registrant("JFW_Game_Hint_Image_Zone","Player_Type:int,EventID:int,Sound:string,TitleID:int,TextID:int,TextID2:int,TextID3:int,Texture:string");
 ScriptRegistrant<JFW_Moon_Is_Earth> JFW_Moon_Is_Earth_Registrant("JFW_Moon_Is_Earth","");
 ScriptRegistrant<JFW_Points_Custom> JFW_Points_Custom_Registrant("JFW_Points_Custom","Message:int,Points:int,Team:int");
+ScriptRegistrant<JFW_Engineer_Hack> JFW_Engineer_Hack_Registrant("JFW_Engineer_Hack","Hack_Warhead:string,Hack_Health:float,Hack_Damage:float,Hack_Repair:float,Hack_Restore_Timer:float,Hack_Restore_Amount:float,Hack_Offline_Amount:float,Hack_Offline_Custom:int,Hack_Online_Custom:int,Hack_Indicator_Preset:string");
+ScriptRegistrant<JFW_Double_Animation> JFW_Double_Animation_Registrant("JFW_Double_Animation","End_Frame:float,First_Custom:int,Second_Custom:int");
+ScriptRegistrant<JFW_Display_String_Custom> JFW_Display_String_Custom_Registrant("JFW_Display_String_Custom","Message:int,Team:int,String:string,Sound:string,Red:int,Green:int,Blue:int");
+ScriptRegistrant<JFW_Preset_Disable> JFW_Preset_Disable_Registrant("JFW_Preset_Disable","Preset:string,Disable_Custom:int,Enable_Custom:int");
+ScriptRegistrant<JFW_Power_Disable> JFW_Power_Disable_Registrant("JFW_Power_Disable","Disable_Custom:int,Enable_Custom:int");
+ScriptRegistrant<JFW_Radar_Disable> JFW_Radar_Disable_Registrant("JFW_Radar_Disable","Disable_Custom:int,Enable_Custom:int");
+ScriptRegistrant<JFW_Conyard_Disable> JFW_Conyard_Disable_Registrant("JFW_Conyard_Disable","Disable_Custom:int,Enable_Custom:int");
+ScriptRegistrant<JFW_Refinery_Disable> JFW_Refinery_Disable_Registrant("JFW_Refinery_Disable","Disable_Custom:int,Enable_Custom:int");
+ScriptRegistrant<JFW_VehicleFactory_Disable> JFW_VehicleFactory_Disable_Registrant("JFW_VehicleFactory_Disable","Disable_Custom:int,Enable_Custom:int");
+ScriptRegistrant<JFW_AirFactory_Disable> JFW_AirFactory_Disable_Registrant("JFW_AirFactory_Disable","Disable_Custom:int,Enable_Custom:int");
+ScriptRegistrant<JFW_EMP> JFW_EMP_Registrant("JFW_EMP","Warhead:string,Time:fload,Animation:string");
+ScriptRegistrant<JFW_EMP_Mine> JFW_EMP_Mine_Registrant("JFW_EMP_Mine","Mine_Manager_ID:int,Explosion:string");
+ScriptRegistrant<JFW_EMP_Mine_Manager> JFW_EMP_Mine_Manager_Registrant("JFW_EMP_Mine_Manager","Mine_Preset:string,Mine_Limit:int,Mine_Reload:string");
+ScriptRegistrant<JFW_EMP_Mine_Layer> JFW_EMP_Mine_Layer_Registrant("JFW_EMP_Mine_Layer","Mine_Manager_ID:int,Warhead:string");
+ScriptRegistrant<JFW_Radar_Disable_Death> JFW_Radar_Disable_Death_Registrant("JFW_Radar_Disable_Death","");
+ScriptRegistrant<JFW_Cyborg_Reaper> JFW_Cyborg_Reaper_Registrant("JFW_Cyborg_Reaper","");
+ScriptRegistrant<JFW_Limpet_Drone> JFW_Limpet_Drone_Registrant("JFW_Limpet_Drone","");
+ScriptRegistrant<JFW_Forward_Custom_Object> JFW_Forward_Custom_Object_Registrant("JFW_Forward_Custom_Object","Object_ID:int");
+ScriptRegistrant<JFW_Death_Send_Custom_Self> JFW_Death_Send_Custom_Self_Registrant("JFW_Death_Send_Custom_Self","Message:int");
+ScriptRegistrant<JFW_Hunter_Seeker> JFW_Hunter_Seeker_Registrant("JFW_Hunter_Seeker","Key:string,Explosion:string");
+ScriptRegistrant<JFW_Ion_Storm> JFW_Ion_Storm_Registrant("JFW_Ion_Storm","Min_Delay:float,Max_Delay:float,Min_Time:float,Max_Time:float,Disable_Custom:int,Enable_Custom:int,Announcement_Sound_Nod:string,Announcement_Sound_GDI:string,Announcement_String:string,Red:int,Green:int,Blue:int,Ion_Effect_Sound:string,Ion_Effect_Time:float,Lightning_Intensity:float,Lightning_Start_Distance:float,Lightning_End_Distance:float,Lightning_Heading:float,Lightning_Distribution:float,Lightning_Off_Intensity:float,Lightning_Off_Start_Distance:float,Lightning_Off_End_Distance:float,Lightning_Off_Heading:float,Lightning_Off_Distribution:float,End_Announcement_Sound_Nod:string,End_Announcement_Sound_GDI:string,End_Announcement_String:string");
diff -uwr source/scripts/jfwmisc.h 4.0/source/scripts/jfwmisc.h
--- source/scripts/jfwmisc.h	2011-02-18 22:55:26.000000000 +0800
+++ 4.0/source/scripts/jfwmisc.h	2011-10-22 19:58:24.060546800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Miscellanious scripts
-	Copyright 2010 Vloktboky, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_User_Settable_Parameters : public ScriptImpClass {
 	void Created(GameObject *obj);
 };
@@ -273,3 +273,135 @@
 class JFW_Points_Custom : public ScriptImpClass {
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
 };
+
+class JFW_Display_String_Custom : public ScriptImpClass {
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+};
+
+class JFW_Preset_Disable : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Killed(GameObject *obj,GameObject *killer);
+	unsigned int count;
+};
+
+class JFW_Power_Disable : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Killed(GameObject *obj,GameObject *killer);
+	unsigned int count;
+};
+
+class JFW_Radar_Disable : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Killed(GameObject *obj,GameObject *killer);
+	unsigned int count;
+};
+
+class JFW_Conyard_Disable : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Killed(GameObject *obj,GameObject *killer);
+	unsigned int count;
+};
+
+class JFW_Refinery_Disable : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Killed(GameObject *obj,GameObject *killer);
+	unsigned int count;
+};
+
+class JFW_VehicleFactory_Disable : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Killed(GameObject *obj,GameObject *killer);
+	unsigned int count;
+};
+
+class JFW_AirFactory_Disable : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Killed(GameObject *obj,GameObject *killer);
+	unsigned int count;
+};
+
+class JFW_Engineer_Hack : public ScriptImpClass {
+	unsigned int Warhead;
+	int IndcatorID;
+	float HackHealth;
+	void Created(GameObject *obj);
+	void Killed(GameObject *obj,GameObject *killer);
+	void Damaged(GameObject *obj,GameObject *damager,float amount);
+	void Timer_Expired(GameObject *obj,int number);
+	void Apply_Damage(GameObject *obj,float damage);
+	void Apply_Repair(GameObject *obj,float repair);
+};
+
+class JFW_Double_Animation : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+};
+
+class JFW_EMP : public ScriptImpClass {
+	unsigned int Warhead;
+	void Created(GameObject *obj);
+	void Damaged(GameObject *obj,GameObject *damager,float amount);
+	void Timer_Expired(GameObject *obj,int number);
+};
+
+class JFW_EMP_Mine : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Enemy_Seen(GameObject *obj,GameObject *enemy);
+	void Destroyed(GameObject *obj);
+};
+
+class JFW_EMP_Mine_Manager : public ScriptImpClass {
+	int mines;
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+};
+
+class JFW_EMP_Mine_Layer : public ScriptImpClass {
+	void Damaged(GameObject *obj,GameObject *damager,float amount);
+};
+
+class JFW_Radar_Disable_Death : public ScriptImpClass {
+	void Killed(GameObject *obj,GameObject *killer);
+};
+
+class JFW_Cyborg_Reaper : public ScriptImpClass {
+	int driverid;
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Killed(GameObject *obj,GameObject *killer);
+};
+
+class JFW_Limpet_Drone : public ScriptImpClass {
+	bool stealth;
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+};
+
+class JFW_Forward_Custom_Object : public ScriptImpClass {
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+};
+
+class JFW_Death_Send_Custom_Self : public ScriptImpClass {
+	void Killed(GameObject *obj,GameObject *killer);
+};
+
+class JFW_Hunter_Seeker : public JFW_Key_Hook_Base {
+	int driverid;
+	void Created(GameObject *obj);
+	void KeyHook();
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Timer_Expired(GameObject *obj,int number);
+};
+
+class JFW_Ion_Storm : public ScriptImpClass {
+	bool storm;
+	void Created(GameObject *obj);
+	void Timer_Expired(GameObject *obj,int number);
+};
diff -uwr source/scripts/jfwobj.cpp 4.0/source/scripts/jfwobj.cpp
--- source/scripts/jfwobj.cpp	2010-08-21 21:45:50.000000000 +0800
+++ 4.0/source/scripts/jfwobj.cpp	2011-10-11 23:05:09.706054600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that deal with objectives and single player stuff
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwobj.h 4.0/source/scripts/jfwobj.h
--- source/scripts/jfwobj.h	2010-04-14 10:13:26.000000000 +0800
+++ 4.0/source/scripts/jfwobj.h	2011-10-14 22:27:32.083007800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that deal with objectives and single player stuff
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Add_Objective : public ScriptImpClass {
 	float timertime;
 	int timernumber;
diff -uwr source/scripts/jfwpoke.cpp 4.0/source/scripts/jfwpoke.cpp
--- source/scripts/jfwpoke.cpp	2010-05-21 09:42:38.000000000 +0800
+++ 4.0/source/scripts/jfwpoke.cpp	2011-10-11 23:05:08.540039000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that can be poked
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwpoke.h 4.0/source/scripts/jfwpoke.h
--- source/scripts/jfwpoke.h	2010-05-21 09:42:38.000000000 +0800
+++ 4.0/source/scripts/jfwpoke.h	2011-10-14 22:27:32.035156200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that can be poked
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Poke_Send_Custom : public ScriptImpClass {
 	int active;
 	void Created(GameObject *obj);
diff -uwr source/scripts/jfwpow.cpp 4.0/source/scripts/jfwpow.cpp
--- source/scripts/jfwpow.cpp	2010-04-14 10:13:20.000000000 +0800
+++ 4.0/source/scripts/jfwpow.cpp	2011-10-11 23:05:01.913085900 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that deal with powerups
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwpow.h 4.0/source/scripts/jfwpow.h
--- source/scripts/jfwpow.h	2010-04-14 10:13:26.000000000 +0800
+++ 4.0/source/scripts/jfwpow.h	2011-10-14 22:27:32.207031200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that deal with powerups
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Spawn_Timer : public ScriptImpClass {
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
 	void Timer_Expired(GameObject *obj,int number);
diff -uwr source/scripts/jfwscr.cpp 4.0/source/scripts/jfwscr.cpp
--- source/scripts/jfwscr.cpp	2010-04-14 10:13:20.000000000 +0800
+++ 4.0/source/scripts/jfwscr.cpp	2011-10-11 23:05:07.345703100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that attach and remove other scripts
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwscr.h 4.0/source/scripts/jfwscr.h
--- source/scripts/jfwscr.h	2010-04-14 10:13:26.000000000 +0800
+++ 4.0/source/scripts/jfwscr.h	2011-10-14 22:27:32.158203100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that attach and remove other scripts
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Attatch_Script : public ScriptImpClass {
 	void Killed(GameObject *obj,GameObject *killer);
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
diff -uwr source/scripts/jfwsnd.cpp 4.0/source/scripts/jfwsnd.cpp
--- source/scripts/jfwsnd.cpp	2010-07-16 10:53:20.000000000 +0800
+++ 4.0/source/scripts/jfwsnd.cpp	2011-10-11 23:05:06.098632800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts that play sounds
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwsnd.h 4.0/source/scripts/jfwsnd.h
--- source/scripts/jfwsnd.h	2010-04-14 10:13:26.000000000 +0800
+++ 4.0/source/scripts/jfwsnd.h	2011-10-14 22:27:31.957031200 +0800
@@ -1,6 +1,5 @@
 /* Renegade Scripts.dll
-	Scripts that play sounds
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_2D_Sound_Timer : public ScriptImpClass {
 	void Created(GameObject *obj);
 	void Timer_Expired(GameObject *obj,int number);
diff -uwr source/scripts/jfwveh.cpp 4.0/source/scripts/jfwveh.cpp
--- source/scripts/jfwveh.cpp	2011-05-19 15:26:00.000000000 +0800
+++ 4.0/source/scripts/jfwveh.cpp	2011-10-11 23:05:04.906250000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for vehicles
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwveh.h 4.0/source/scripts/jfwveh.h
--- source/scripts/jfwveh.h	2010-04-14 10:14:46.000000000 +0800
+++ 4.0/source/scripts/jfwveh.h	2011-10-14 22:27:32.110351500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for vehicles
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Aircraft_Fuel : public ScriptImpClass {
 	bool entered;
 	void Created(GameObject *obj);
diff -uwr source/scripts/jfwweap.cpp 4.0/source/scripts/jfwweap.cpp
--- source/scripts/jfwweap.cpp	2010-08-13 14:35:06.000000000 +0800
+++ 4.0/source/scripts/jfwweap.cpp	2011-10-11 23:05:03.604492100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Weapon scripts
-	Copyright 2010 Olaf Van Der Spek, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/jfwweap.h 4.0/source/scripts/jfwweap.h
--- source/scripts/jfwweap.h	2010-04-14 10:13:26.000000000 +0800
+++ 4.0/source/scripts/jfwweap.h	2011-10-14 22:27:32.059570300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Weapon scripts
-	Copyright 2010 Olaf Van Der Spek, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Nod_Turret : public ScriptImpClass {
 	unsigned int id1;
 	unsigned int id2;
diff -uwr source/scripts/jfwws.cpp 4.0/source/scripts/jfwws.cpp
--- source/scripts/jfwws.cpp	2011-06-14 23:05:12.000000000 +0800
+++ 4.0/source/scripts/jfwws.cpp	2011-10-11 23:04:59.768554600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Westwood script clones
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -412,9 +411,9 @@
 void JFW_BuildingStateSoundSpeaker::Created(GameObject *obj)
 {
 	destroyed = false;
-	var3 = true;
+	explode = true;
 	GameObject *object = Commands->Find_Object(Get_Int_Parameter("BuildingController_ID"));
-	if (obj)
+	if (object)
 	{
 		char s[18];
 		sprintf(s,"%d",Commands->Get_ID(obj));
@@ -433,95 +432,100 @@
 
 void JFW_BuildingStateSoundSpeaker::Custom(GameObject *obj,int type,int param,GameObject *sender)
 {
-	if (type == CUSTOM_EVENT_SOUND_ENDED)
+	switch (type)
 	{
-		float min = 0;
-		float max = 0;
-		if (!destroyed)
+	case CUSTOM_EVENT_SOUND_ENDED:
+		if (destroyed)
 		{
-			if (Get_Int_Parameter("Frequency_Min") != -1)
+			if (Get_Int_Parameter("Frequency_Min_Destroyed") != -1)
 			{
-				min = Get_Float_Parameter("Frequency_Min");
-				max = Get_Float_Parameter("Frequency_Max");
+				float min = Get_Float_Parameter("Frequency_Min_Destroyed");
+				float max = Get_Float_Parameter("Frequency_Max_Destroyed");
+				float frequency = Commands->Get_Random(min,max);
+				Commands->Start_Timer(obj,this,frequency,0);
 			}
 		}
 		else
 		{
 			if (Get_Int_Parameter("Frequency_Min") != -1)
 			{
-				min = Get_Float_Parameter("Frequency_Min_Destroyed");
-				max = Get_Float_Parameter("Frequency_Max_Destroyed");
-			}
-		}
+				float min = Get_Float_Parameter("Frequency_Min");
+				float max = Get_Float_Parameter("Frequency_Max");
 		float frequency = Commands->Get_Random(min,max);
 		Commands->Start_Timer(obj,this,frequency,0);
 	}
-	if ((type == 9026) && (param == 1))
+		}
+		break;
+	case 9026:
+		if (param == 1)
 	{
 		Commands->Stop_Sound(sound,1);
+			destroyed = true;
 		Timer_Expired(obj,0);
 	}
-	if ((type == 9027) && (var3))
+		break;
+	case 9027:
+		if (explode)
 	{
 		Vector3 v = Commands->Get_Position(obj);
 		v.X += Commands->Get_Random(2.0,5.0);
 		v.Y += Commands->Get_Random(2.0,5.0);
 		v.Z += Commands->Get_Random(2.0,5.0);
 		Commands->Create_Explosion(Get_Parameter("Explosion_Name"),v,0);
-		Commands->Send_Custom_Event(obj,obj,type,1,Commands->Get_Random(3.0,6.0));
+			Commands->Send_Custom_Event(obj,obj,9027,1,Commands->Get_Random(3.0,6.0));
 	}
-	if (type == 9028)
-	{
-		var3 = false;
-	}
-	if (type == 9029)
-	{
-		var3 = true;
+		break;
+	case 9028:
+		explode = false;
+		break;
+	case 9029:
+		explode = true;
+		break;
 	}
 }
 
 void JFW_BuildingStateSoundSpeaker::Timer_Expired(GameObject *obj,int number)
 {
-	if (!destroyed)
+	if (destroyed)
 	{
-		bool is3d = Get_Int_Parameter("Is_3D");
+		bool is3d = Get_Int_Parameter("Is_3D_Destroyed");
 		Vector3 pos = Commands->Get_Position(obj);
-		Vector3 offset = Get_Vector3_Parameter("Offset");
+		Vector3 offset = Get_Vector3_Parameter("Offset_Destroyed");
 		pos.X += offset.X;
 		pos.Y += offset.Y;
 		pos.Z += offset.Z;
-		offset = Get_Vector3_Parameter("Offset_Randomness");
+		offset = Get_Vector3_Parameter("Offset_Randomness_Destroyed");
 		pos.X += Commands->Get_Random(offset.X,-offset.X);
 		pos.Y += Commands->Get_Random(offset.Y,-offset.Y);
 		pos.Z += Commands->Get_Random(offset.Z,-offset.Z);
 		if (is3d)
 		{
-			sound = Commands->Create_Sound(Get_Parameter("Sound_Normal"),pos,obj);
+			sound = Commands->Create_Sound(Get_Parameter("Sound_Destroyed"),pos,obj);
 		}
 		else
 		{
-			sound = Commands->Create_2D_Sound(Get_Parameter("Sound_Normal"));
+			sound = Commands->Create_2D_Sound(Get_Parameter("Sound_Destroyed"));
 		}
 	}
 	else
 	{
-		bool is3d = Get_Int_Parameter("Is_3D_Destroyed");
+		bool is3d = Get_Int_Parameter("Is_3D");
 		Vector3 pos = Commands->Get_Position(obj);
-		Vector3 offset = Get_Vector3_Parameter("Offset_Destroyed");
+		Vector3 offset = Get_Vector3_Parameter("Offset");
 		pos.X += offset.X;
 		pos.Y += offset.Y;
 		pos.Z += offset.Z;
-		offset = Get_Vector3_Parameter("Offset_Randomness_Destroyed");
+		offset = Get_Vector3_Parameter("Offset_Randomness");
 		pos.X += Commands->Get_Random(offset.X,-offset.X);
 		pos.Y += Commands->Get_Random(offset.Y,-offset.Y);
 		pos.Z += Commands->Get_Random(offset.Z,-offset.Z);
 		if (is3d)
 		{
-			sound = Commands->Create_Sound(Get_Parameter("Sound_Destroyed"),pos,obj);
+			sound = Commands->Create_Sound(Get_Parameter("Sound_Normal"),pos,obj);
 		}
 		else
 		{
-			sound = Commands->Create_2D_Sound(Get_Parameter("Sound_Destroyed"));
+			sound = Commands->Create_2D_Sound(Get_Parameter("Sound_Normal"));
 		}
 	}
 	Commands->Monitor_Sound(obj,sound);
@@ -555,7 +559,7 @@
 		GameObject *object = Commands->Find_Object(speakerid);
 		if (object)
 		{
-			Commands->Send_Custom_Event(obj,object,type,1,0);
+			Commands->Send_Custom_Event(obj,object,9028,1,0);
 		}
 	}
 	if (type == 9029)
@@ -563,7 +567,7 @@
 		GameObject *object = Commands->Find_Object(speakerid);
 		if (object)
 		{
-			Commands->Send_Custom_Event(obj,object,type,1,0);
+			Commands->Send_Custom_Event(obj,object,9029,1,0);
 		}
 	}
 }
@@ -703,6 +707,8 @@
 ScriptRegistrant<JFW_PlayAnimation_DestroyObject> JFW_PlayAnimation_DestroyObject_Registrant("JFW_PlayAnimation_DestroyObject","AnimationName:string");
 ScriptRegistrant<JFW_BuildingStateSoundSpeaker> JFW_BuildingStateSoundSpeaker_Registrant("JFW_BuildingStateSoundSpeaker","Sound_Normal:string,Sound_Destroyed:string,BuildingController_ID:int,Is_3D=1:int,Offset:vector3,Offset_Randomness:vector3,Frequency_Min=-1:float,Frequency_Max:float,Is_3D_Destroyed=1:int,Offset_Destroyed:vector3,Offset_Randomness_Destroyed:vector3,Frequency_Min_Destroyed=-1:float,Frequency_Max_Destroyed:float,Explosion_Name:string");
 ScriptRegistrant<JFW_BuildingStateSoundController> JFW_BuildingStateSoundController_Registrant("JFW_BuildingStateSoundController","BuildingSpeaker_ID:int");
+ScriptRegistrant<JFW_BuildingStateSoundSpeaker> M00_BuildingStateSoundSpeaker_Registrant("M00_BuildingStateSoundSpeaker","Sound_Normal:string,Sound_Destroyed:string,BuildingController_ID:int,Is_3D=1:int,Offset:vector3,Offset_Randomness:vector3,Frequency_Min=-1:float,Frequency_Max:float,Is_3D_Destroyed=1:int,Offset_Destroyed:vector3,Offset_Randomness_Destroyed:vector3,Frequency_Min_Destroyed=-1:float,Frequency_Max_Destroyed:float,Explosion_Name:string");
+ScriptRegistrant<JFW_BuildingStateSoundController> M00_BuildingStateSoundController_Registrant("M00_BuildingStateSoundController","BuildingSpeaker_ID:int");
 ScriptRegistrant<JFW_Play_Sound_Object_Bone> JFW_Play_Sound_Object_Bone_Registrant("JFW_Play_Sound_Object_Bone","Sound_Preset:string,Frequency_Min=-1.0:float,Frequency_Max:float");
 ScriptRegistrant<JFW_Cinematic_Primary_Killed> JFW_Cinematic_Primary_Killed_Registrant("JFW_Cinematic_Primary_Killed","CallbackID=:int");
 ScriptRegistrant<JFW_Disable_Loiter> JFW_Disable_Loiter_Registrant("JFW_Disable_Loiter","");
diff -uwr source/scripts/jfwws.h 4.0/source/scripts/jfwws.h
--- source/scripts/jfwws.h	2011-06-14 23:05:12.000000000 +0800
+++ 4.0/source/scripts/jfwws.h	2011-10-14 22:27:32.002929600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Westwood script clones
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_Building_Explode_No_Damage : public ScriptImpClass {
 	void Killed(GameObject *obj,GameObject *killer);
 };
@@ -141,7 +141,7 @@
 class JFW_BuildingStateSoundSpeaker : public ScriptImpClass {
 	unsigned int sound;
 	bool destroyed;
-	bool var3;
+	bool explode;
 	void Created(GameObject *obj);
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
 	void Timer_Expired(GameObject *obj,int number);
diff -uwr source/scripts/jfwzone.cpp 4.0/source/scripts/jfwzone.cpp
--- source/scripts/jfwzone.cpp	2011-06-10 17:38:14.000000000 +0800
+++ 4.0/source/scripts/jfwzone.cpp	2011-10-25 16:01:41.291015600 +0800
@@ -1,13 +1,12 @@
 /*	Renegade Scripts.dll
-	Zone related scripts
-	Copyright 2010 Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "general.h"
@@ -22,6 +21,7 @@
 #include "ConstructionYardGameObj.h"
 #include "VehicleGameObjDef.h"
 #include "BuildingGameObjDef.h"
+#include "dp88_custom_timer_defines.h"
 
 void JFW_3D_Sound_Zone::Entered(GameObject *obj,GameObject *enterer)
 {
@@ -2093,7 +2093,7 @@
 	if ((Is_Building_Dead(Find_Com_Center(Commands->Get_Player_Type(enterer))) && (Is_Radar_Enabled(PTTEAM(Commands->Get_Player_Type(enterer))))))
 	{
 		Create_2D_Sound_Team(Get_Parameter("Sound"),Commands->Get_Player_Type(enterer));
-		Enable_Base_Radar(Commands->Get_Player_Type(enterer),true);
+		Enable_Base_Radar(Get_Object_Type(enterer),true);
 		reset = true;
 	}
 }
@@ -2507,9 +2507,9 @@
 			const char *preset = Commands->Get_Preset_Name(Commands->Find_Object(ID));
 			float cost = ((float)Get_Cost(preset) / 2);
 			Commands->Give_Money(Get_Vehicle_Driver(Commands->Find_Object(ID)),cost,false);
+			Commands->Send_Custom_Event(Owner(),Commands->Find_Object(ID),CUSTOM_ENTERED_VTOL_LAND_ZONE,0,0);
 			Force_Occupants_Exit(Commands->Find_Object(ID));
-			Commands->Destroy_Object(Commands->Find_Object(ID));
-			ID = 0;
+			Commands->Start_Timer(Owner(),this,1,1);
 			RemoveHook();
 		}
 	}
@@ -2525,6 +2525,12 @@
 	ID = 0;
 }
 
+void JFW_Sell_Zone::Timer_Expired(GameObject *obj,int number)
+{
+	Commands->Destroy_Object(Commands->Find_Object(ID));
+	ID = 0;
+}
+
 void JFW_Infantry_Force_Composition_Zone::Created(GameObject *obj)
 {
 	reset = false;
diff -uwr source/scripts/jfwzone.h 4.0/source/scripts/jfwzone.h
--- source/scripts/jfwzone.h	2011-04-25 18:31:38.000000000 +0800
+++ 4.0/source/scripts/jfwzone.h	2011-10-23 10:40:52.437500200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Zone related scripts
-	Copyright 2010 Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class JFW_3D_Sound_Zone : public ScriptImpClass {
 	void Entered(GameObject *obj,GameObject *enterer);
 };
@@ -409,6 +409,7 @@
 	void Entered(GameObject *obj,GameObject *enterer);
 	void Exited(GameObject *obj,GameObject *exiter);
 	void KeyHook();
+	void Timer_Expired(GameObject *obj,int number);
 	public: void Register_Auto_Save_Variables();
 };
 
diff -uwr source/scripts/jmgrp2.cpp 4.0/source/scripts/jmgrp2.cpp
--- source/scripts/jmgrp2.cpp	2011-08-12 06:39:20.000000000 +0800
+++ 4.0/source/scripts/jmgrp2.cpp	2011-10-11 23:05:24.216796800 +0800
@@ -1,14 +1,5 @@
-
-
-//----------------------------------------------------------------------------------------------------------------------------------------------
-//------RELEASED BEFORE BEING PROPERLY UPDATED TO 4.0, SERVERS SHOULD STILL USE 3.4.4 UNTIL I HAVE THE TIME TO FIX THE ISSUES - JERAD GRAY------
-//----------------------------------------------------------------------------------------------------------------------------------------------
-
-
-
 /*	Renegade Scripts.dll
-	Renegade Role Play 2 Scripts
-	Copyright 2010 Jerad Gray, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -18,7 +9,9 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
+//----------------------------------------------------------------------------------------------------------------------------------------------
+//------RELEASED BEFORE BEING PROPERLY UPDATED TO 4.0, SERVERS SHOULD STILL USE 3.4.4 UNTIL I HAVE THE TIME TO FIX THE ISSUES - JERAD GRAY------
+//----------------------------------------------------------------------------------------------------------------------------------------------
 #include "General.h"
 #include "scripts.h"
 #include "engine.h"
@@ -32,6 +25,7 @@
 #include "SoldierGameObj.h"
 #include <float.h>
 #include <time.h>
+#include "VehicleGameObj.h"
 #define VERSION "2.2.9:1.0 Alpha"
 char MAPVERSION[100] = "Not Available";
 #define PLUGINVERSIONNUMBER 3
@@ -13880,16 +13874,14 @@
 		{
 			return;
 		}
-		VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
-		VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;
-		int x = occupants.Length();
+		int x = obj->As_VehicleGameObj()->Get_Occupant_Count();
 		for (int i = 0;i < x;i++)
 		{
-			if (occupants[i])
+			if (obj->As_VehicleGameObj()->Get_Occupant(i))
 			{
 				ActionParamsStruct params;
 				params.Set_Basic((long)0,100,39);
-				Commands->Action_Enter_Exit(occupants[i],params);
+				Commands->Action_Enter_Exit(obj->As_VehicleGameObj()->Get_Occupant(i),params);
 			}
 		}
 		Commands->Enable_Vehicle_Transitions(obj,true);
@@ -20440,16 +20432,14 @@
 		{
 			return;
 		}
-		VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
-		VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;
-		int x = occupants.Length();
+		int x = obj->As_VehicleGameObj()->Get_Occupant_Count();
 		for (int i = 0;i < x;i++)
 		{
-			if (occupants[i])
+			if (obj->As_VehicleGameObj()->Get_Occupant(i))
 			{
 				ActionParamsStruct params;
 				params.Set_Basic((long)0,100,39);
-				Commands->Action_Enter_Exit(occupants[i],params);
+				Commands->Action_Enter_Exit(obj->As_VehicleGameObj()->Get_Occupant(i),params);
 			}
 		}
 		Commands->Enable_Vehicle_Transitions(obj,true);
@@ -25044,7 +25034,7 @@
 		return 0;
 	}
 	WeaponBagClass *w = ((ArmedGameObj *)o)->Get_Weapon_Bag();
-	if (w->Peek_Weapon(position))
+	if ((position) && (position < w->Get_Count()))
 	{
 		return (w->Peek_Weapon(position)->Get_Definition()->IconNameID);
 	}
@@ -30316,16 +30306,14 @@
 		{
 			return;
 		}
-		VectorClass<GameObject *> *ptr = (VectorClass<GameObject *>*)(obj+0x9AC);
-		VectorClass<GameObject *> occupants = (VectorClass<GameObject *>)*ptr;
-		int x = occupants.Length();
+		int x = obj->As_VehicleGameObj()->Get_Occupant_Count();
 		for (int i = 0;i < x;i++)
 		{
-			if (occupants[i])
+			if (obj->As_VehicleGameObj()->Get_Occupant(i))
 			{
 				ActionParamsStruct params;
 				params.Set_Basic((long)0,100,39);
-				Commands->Action_Enter_Exit(occupants[i],params);
+				Commands->Action_Enter_Exit(obj->As_VehicleGameObj()->Get_Occupant(i),params);
 			}
 		}
 		Commands->Enable_Vehicle_Transitions(obj,true);
@@ -33401,9 +33389,9 @@
 			}
 			else if (_stricmp("Weapon_Flamethrower",weap))
 			{
-				AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(weap,1);
-				AmmoDefinitionClass *SecondaryAmmo = Get_Weapon_Ammo_Definition(weap,0);
-				ExplosionDefinitionClass *Explosion;
+				const AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(weap,1);
+				const AmmoDefinitionClass *SecondaryAmmo = Get_Weapon_Ammo_Definition(weap,0);
+				const ExplosionDefinitionClass *Explosion;
 				Explosion = Get_Explosion(Get_Definition_Name(PrimaryAmmo->ExplosionDefID));
 				if (!Explosion)
 				{
@@ -33474,10 +33462,10 @@
 			{
 				if (_stricmp("Weapon_Hot_Air_Balloon",weap))
 				{
-					ExplosionDefinitionClass *Explosion;
+					const ExplosionDefinitionClass *Explosion;
 
-					AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(weap,1);
-					AmmoDefinitionClass *SecondaryAmmo = Get_Weapon_Ammo_Definition(weap,0);
+					const AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(weap,1);
+					const AmmoDefinitionClass *SecondaryAmmo = Get_Weapon_Ammo_Definition(weap,0);
 
 					Explosion = Get_Explosion(Get_Definition_Name(PrimaryAmmo->ExplosionDefID));
 					if (!Explosion)
@@ -40386,7 +40374,7 @@
 			{
 				Commands->Select_Weapon(AI,ANode->WeaponName);
 				Set_Clip_Bullets(AI,ANode->WeaponName,-1);
-				AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(ANode->WeaponName,1);
+				const AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(ANode->WeaponName,1);
 				if (PrimaryAmmo)
 				{	
 					Range = PrimaryAmmo->Range;
@@ -40408,7 +40396,7 @@
 		const char *MyWeapon = Get_Current_Weapon(AI);
 		if (MyWeapon)
 		{
-			AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(MyWeapon,1);
+			const AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(MyWeapon,1);
 			if (PrimaryAmmo)
 			{	
 				Range = PrimaryAmmo->Range;
@@ -40542,7 +40530,7 @@
 			const char *MyWeapon = Get_Current_Weapon(AI);
 			if (MyWeapon)
 			{
-				AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(MyWeapon,1);
+				const AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(MyWeapon,1);
 				if (PrimaryAmmo)
 				{	
 					Range = PrimaryAmmo->Range;
@@ -40633,7 +40621,7 @@
 			{
 				Commands->Select_Weapon(AI,ANode->WeaponName);
 				Set_Clip_Bullets(AI,ANode->WeaponName,-1);
-				AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(ANode->WeaponName,1);
+				const AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(ANode->WeaponName,1);
 				if (PrimaryAmmo)
 				{	
 					Range = PrimaryAmmo->Range;
@@ -40655,7 +40643,7 @@
 		const char *MyWeapon = Get_Current_Weapon(AI);
 		if (MyWeapon)
 		{
-			AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(MyWeapon,1);
+			const AmmoDefinitionClass *PrimaryAmmo = Get_Weapon_Ammo_Definition(MyWeapon,1);
 			if (PrimaryAmmo)
 			{	
 				Range = PrimaryAmmo->Range;
diff -uwr source/scripts/jmgrp2.h 4.0/source/scripts/jmgrp2.h
--- source/scripts/jmgrp2.h	2011-04-11 12:22:58.000000000 +0800
+++ 4.0/source/scripts/jmgrp2.h	2011-10-14 22:27:32.057617100 +0800
@@ -1,6 +1,5 @@
-/*	Renegade Roll Play 2 Scripts by Jerad Gray
-	Scripts by Jerad Gray
-	Copyright 2010 Jerad Gray, Jonathan Wilson
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 // Back to Jeradcode
 
diff -uwr source/scripts/kak.cpp 4.0/source/scripts/kak.cpp
--- source/scripts/kak.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/kak.cpp	2011-10-11 23:05:59.489257800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Vloktboky
-	Copyright 2010 Vloktboky, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/kak.h 4.0/source/scripts/kak.h
--- source/scripts/kak.h	2010-04-14 10:13:26.000000000 +0800
+++ 4.0/source/scripts/kak.h	2011-10-14 22:27:31.949218700 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Vloktboky
-	Copyright 2010 Vloktboky, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class KAK_Warp_On_Pickup : public ScriptImpClass {
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
 };
diff -uwr source/scripts/kamuix.cpp 4.0/source/scripts/kamuix.cpp
--- source/scripts/kamuix.cpp	2011-04-11 13:06:10.000000000 +0800
+++ 4.0/source/scripts/kamuix.cpp	2011-10-11 23:05:57.780273400 +0800
@@ -1,13 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by Kamuix
-	Copyright 2010 Kamuix, Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "general.h"
diff -uwr source/scripts/kamuix.h 4.0/source/scripts/kamuix.h
--- source/scripts/kamuix.h	2010-04-14 10:13:26.000000000 +0800
+++ 4.0/source/scripts/kamuix.h	2011-10-14 22:27:32.090820300 +0800
@@ -1,15 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by Kamuix
-	Copyright 2010 Kamuix, Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class Kamuix_PAMSG_Zone : public ScriptImpClass {
 	void Entered(GameObject *obj,GameObject *enterer);
 };
diff -uwr source/scripts/matrix4.cpp 4.0/source/scripts/matrix4.cpp
--- source/scripts/matrix4.cpp	2009-05-26 18:25:20.000000000 +0800
+++ 4.0/source/scripts/matrix4.cpp	2011-10-11 23:05:51.033203100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "Matrix4.h"
 #include "plane.h"
diff -uwr source/scripts/matrix4.h 4.0/source/scripts/matrix4.h
--- source/scripts/matrix4.h	2010-05-31 13:32:32.000000000 +0800
+++ 4.0/source/scripts/matrix4.h	2011-10-11 21:50:21.719726500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__MATRIX4_H
 #define TT_INCLUDE__MATRIX4_H
 #include "Vector4.h"
diff -uwr source/scripts/mdb.cpp 4.0/source/scripts/mdb.cpp
--- source/scripts/mdb.cpp	2011-06-06 00:38:00.000000000 +0800
+++ 4.0/source/scripts/mdb.cpp	2011-10-11 23:05:49.406250000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Misc. Scripts by WhiteDragon(MDB)
-	Copyright 2010 Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/mdb.h 4.0/source/scripts/mdb.h
--- source/scripts/mdb.h	2011-06-06 00:38:00.000000000 +0800
+++ 4.0/source/scripts/mdb.h	2011-10-14 22:27:31.916015600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Misc. Scripts by WhiteDragon(MDB)
-	Copyright 2010 Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 #include "PurchaseSettingsDefClass.h"
 #include "TeamPurchaseSettingsDefClass.h"
 
diff -uwr source/scripts/mdbdef.cpp 4.0/source/scripts/mdbdef.cpp
--- source/scripts/mdbdef.cpp	2011-01-07 22:06:12.000000000 +0800
+++ 4.0/source/scripts/mdbdef.cpp	2011-10-11 23:05:47.966796800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Base Defense Scripts by WhiteDragon(MDB)
-	Copyright 2010 Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -22,6 +21,7 @@
 {
 	State = 1;
 	Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,0,0,false);
+	obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 	Commands->Enable_Hibernation(obj,false);
 	Commands->Innate_Enable(obj);
 	Commands->Enable_Enemy_Seen(obj,true);
@@ -50,6 +50,7 @@
 				{
 					State = 2;
 					Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,0,Get_Float_Parameter("LastFrame"),false);
+					obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 					if (_stricmp(Get_Parameter("Sound"),"0"))
 					{
 						Commands->Create_Sound(Get_Parameter("Sound"),Commands->Get_Position(obj),obj);
@@ -125,6 +126,7 @@
 			if ((int)(The_Game()->Get_Game_Duration_S() - LastAttack)+1 >= Get_Int_Parameter("ReturnTime"))
 			{
 				Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,Get_Float_Parameter("LastFrame"),0,false);
+				obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 				if (_stricmp(Get_Parameter("Sound"),"0"))
 				{
 					Commands->Create_Sound(Get_Parameter("Sound"),Commands->Get_Position(obj),obj);
@@ -205,6 +207,7 @@
 {
 	State = 1;
 	Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,0,0,false);
+	obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 	Commands->Enable_Hibernation(obj,false);
 	Commands->Innate_Enable(obj);
 	Commands->Enable_Enemy_Seen(obj,true);
@@ -232,6 +235,7 @@
 				{
 					State = 2;
 					Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,0,Get_Float_Parameter("LastFrame"),false);
+					obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 					if (_stricmp(Get_Parameter("Sound"),"0"))
 					{
 						Commands->Create_Sound(Get_Parameter("Sound"),Commands->Get_Position(obj),obj);
@@ -299,6 +303,7 @@
 			if ((int)(The_Game()->Get_Game_Duration_S() - LastAttack)+1 >= Get_Int_Parameter("ReturnTime"))
 			{
 				Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,Get_Float_Parameter("LastFrame"),0,false);
+				obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 				if (_stricmp(Get_Parameter("Sound"),"0"))
 				{
 					Commands->Create_Sound(Get_Parameter("Sound"),Commands->Get_Position(obj),obj);
@@ -336,6 +341,7 @@
 {
 	State = 1;
 	Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,0,0,false);
+	obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 	Commands->Enable_Hibernation(obj,false);
 	Commands->Innate_Enable(obj);
 	Commands->Enable_Enemy_Seen(obj,true);
@@ -362,6 +368,7 @@
 			{
 				State = 2;
 				Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,0,Get_Float_Parameter("LastFrame"),false);
+				obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 				if (_stricmp(Get_Parameter("Sound"),"0"))
 				{
 					Commands->Create_Sound(Get_Parameter("Sound"),Commands->Get_Position(obj),obj);
@@ -436,6 +443,7 @@
 			if ((int)(The_Game()->Get_Game_Duration_S() - LastAttack)+1 >= Get_Int_Parameter("ReturnTime"))
 			{
 				Commands->Set_Animation(obj,Get_Parameter("Animation"),false,0,Get_Float_Parameter("LastFrame"),0,false);
+				obj->Set_Object_Dirty_Bit(NetworkObjectClass::BIT_RARE,true);
 				if (_stricmp(Get_Parameter("Sound"),"0"))
 				{
 					Commands->Create_Sound(Get_Parameter("Sound"),Commands->Get_Position(obj),obj);
diff -uwr source/scripts/mdbdef.h 4.0/source/scripts/mdbdef.h
--- source/scripts/mdbdef.h	2010-05-25 22:03:52.000000000 +0800
+++ 4.0/source/scripts/mdbdef.h	2011-10-14 22:27:32.163085900 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Base Defense Scripts by WhiteDragon(MDB)
-	Copyright 2010 Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class MDB_Base_Defense_Popup_No_VTOL : public ScriptImpClass {
 public:
diff -uwr source/scripts/mdbevf.cpp 4.0/source/scripts/mdbevf.cpp
--- source/scripts/mdbevf.cpp	2011-04-25 13:36:08.000000000 +0800
+++ 4.0/source/scripts/mdbevf.cpp	2011-10-11 23:05:46.441406200 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Expanded Vehicle Factory set of Scripts by WhiteDragon(MDB)
-	Copyright 2010 Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/mdbevf.h 4.0/source/scripts/mdbevf.h
--- source/scripts/mdbevf.h	2011-04-25 12:03:56.000000000 +0800
+++ 4.0/source/scripts/mdbevf.h	2011-10-14 22:27:32.022460900 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Expanded Vehicle Factory set of Scripts by WhiteDragon(MDB)
-	Copyright 2010 Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 #define NOT_DISABLED 0
 #define DISABLED_EVF 1 
diff -uwr source/scripts/multilist.h 4.0/source/scripts/multilist.h
--- source/scripts/multilist.h	2010-08-22 12:54:46.000000000 +0800
+++ 4.0/source/scripts/multilist.h	2011-10-11 21:49:56.701171800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef SCRIPTS_INCLUDE__MULTILIST_H_
 #define SCRIPTS_INCLUDE__MULTILIST_H_
 
diff -uwr source/scripts/neo.cpp 4.0/source/scripts/neo.cpp
--- source/scripts/neo.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/neo.cpp	2011-10-11 23:05:42.591796800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Joshua "NeoSaber" Kraft
-	Copyright 2010 Joshua "NeoSaber" Kraft, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/neo.h 4.0/source/scripts/neo.h
--- source/scripts/neo.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/neo.h	2011-10-14 22:27:31.954101500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Joshua "NeoSaber" Kraft
-	Copyright 2010 Joshua "NeoSaber" Kraft, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class Neo_CreateObject_RandomTimer : public ScriptImpClass {
 	void Created(GameObject *obj);
 	void Timer_Expired(GameObject *obj,int number);
diff -uwr source/scripts/nh.cpp 4.0/source/scripts/nh.cpp
--- source/scripts/nh.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/nh.cpp	2011-10-11 23:05:40.964843700 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by NameHunter
-	Copyright 2010 NameHunter, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/nh.h 4.0/source/scripts/nh.h
--- source/scripts/nh.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/nh.h	2011-10-14 22:27:31.979492100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by NameHunter
-	Copyright 2010 NameHunter, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class NH_Spawn_Object_On_Poke : public ScriptImpClass {
 	int spawn;
 	void Created(GameObject *obj);
diff -uwr source/scripts/nhp.cpp 4.0/source/scripts/nhp.cpp
--- source/scripts/nhp.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/nhp.cpp	2011-10-11 23:05:39.548828100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	More scripts by NameHunter
-	Copyright 2010 NameHunter, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/nhp.h 4.0/source/scripts/nhp.h
--- source/scripts/nhp.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/nhp.h	2011-10-14 22:27:32.150390600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	More scripts by NameHunter
-	Copyright 2010 NameHunter, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class NHP_Smart_Targetting : public ScriptImpClass {
 	void Enemy_Seen(GameObject *obj,GameObject *enemy);
 	void Created(GameObject *obj);
diff -uwr source/scripts/obboxclass.h 4.0/source/scripts/obboxclass.h
--- source/scripts/obboxclass.h	2011-06-15 19:50:40.000000000 +0800
+++ 4.0/source/scripts/obboxclass.h	2011-10-11 21:49:29.126953100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_OBBOXCLASS_H
 #define TT_INCLUDE_OBBOXCLASS_H
 #include "Matrix3.h"
diff -uwr source/scripts/obelfix.cpp 4.0/source/scripts/obelfix.cpp
--- source/scripts/obelfix.cpp	2011-08-20 10:06:48.000000000 +0800
+++ 4.0/source/scripts/obelfix.cpp	2011-10-11 23:05:37.586914000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "scripts.h"
 #include "obelfix.h"
diff -uwr source/scripts/obelfix.h 4.0/source/scripts/obelfix.h
--- source/scripts/obelfix.h	2011-08-20 10:06:48.000000000 +0800
+++ 4.0/source/scripts/obelfix.h	2011-10-14 22:27:32.155273400 +0800
@@ -1,3 +1,15 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
+#pragma once
 class Nod_Obelisk_CnC : public ScriptImpClass {
 	int WeaponID;
 
diff -uwr source/scripts/physcoltest.h 4.0/source/scripts/physcoltest.h
--- source/scripts/physcoltest.h	2009-11-09 18:37:34.000000000 +0800
+++ 4.0/source/scripts/physcoltest.h	2011-10-11 21:49:13.675781200 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PHYSCOLTEST_H
 #define TT_INCLUDE_PHYSCOLTEST_H
 #include "coltest.h"
diff -uwr source/scripts/physinttest.h 4.0/source/scripts/physinttest.h
--- source/scripts/physinttest.h	2009-11-09 18:58:08.000000000 +0800
+++ 4.0/source/scripts/physinttest.h	2011-10-11 21:48:56.392578100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_PHYSINTTEST_H
 #define TT_INCLUDE_PHYSINTTEST_H
 #include "inttest.h"
diff -uwr source/scripts/plane.h 4.0/source/scripts/plane.h
--- source/scripts/plane.h	2010-06-25 12:38:22.000000000 +0800
+++ 4.0/source/scripts/plane.h	2011-10-11 21:48:51.646484300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _MATH_PLANE_H_
 #define _MATH_PLANE_H_
 
diff -uwr source/scripts/prototypeclass.h 4.0/source/scripts/prototypeclass.h
--- source/scripts/prototypeclass.h	2010-12-11 11:41:20.000000000 +0800
+++ 4.0/source/scripts/prototypeclass.h	2011-10-11 21:48:31.650390600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__PROTOTYPECLASS_H
 #define TT_INCLUDE__PROTOTYPECLASS_H
 #include "engine_io.h"
diff -uwr source/scripts/ra2.cpp 4.0/source/scripts/ra2.cpp
--- source/scripts/ra2.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/ra2.cpp	2011-10-11 23:06:35.896484300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for RA2 Vengance
-	Copyright 2010 TheKGBspy, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/ra2.h 4.0/source/scripts/ra2.h
--- source/scripts/ra2.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/ra2.h	2011-10-14 22:27:32.085937500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for RA2 Vengance
-	Copyright 2010 TheKGBspy, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class Ra2Ven_MirageTank : public ScriptImpClass {
 	int pilotID;
 	float xpos;
diff -uwr source/scripts/ra_legacy.cpp 4.0/source/scripts/ra_legacy.cpp
--- source/scripts/ra_legacy.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/ra_legacy.cpp	2011-10-11 23:06:37.353515600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Legacy Scripts for RenAlert
-	Copyright 2010 Joshua "NeoSaber" Kraft, Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/ra_legacy.h 4.0/source/scripts/ra_legacy.h
--- source/scripts/ra_legacy.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/ra_legacy.h	2011-10-14 22:27:32.072265600 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Legacy Scripts for RenAlert
-	Copyright 2010 Joshua "NeoSaber" Kraft, Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class RA_Thief_Script: public ScriptImpClass {
 	bool enabled;
 	void Timer_Expired(GameObject *obj,int number);
diff -uwr source/scripts/reborn.cpp 4.0/source/scripts/reborn.cpp
--- source/scripts/reborn.cpp	2010-08-30 18:28:12.000000000 +0800
+++ 4.0/source/scripts/reborn.cpp	2011-10-11 23:06:34.511718700 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for Reborn
-	Copyright 2010 Spirit, E!, Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -397,6 +396,8 @@
 		//deploy!
 		if (!mode && !enabled)
 		{
+			if (!obj->As_VehicleGameObj()->Is_Immovable())
+			{
 			obj->As_VehicleGameObj()->Set_Immovable(true);
 			Mode = 2;
 			//mode: 0=walk;1=deploy;2=deployed;3=redeploy
@@ -407,6 +408,7 @@
 			Commands->Control_Enable(Commands->Find_Object(PilotID),false);
 			obj->As_VehicleGameObj()->Set_Scripts_Can_Fire(false);
 		}
+		}
 		//redeploy!
 		else if ((mode == 2) && (!enabled) && (CanPlayAnim))
 		{
@@ -780,6 +782,8 @@
 		//mode: 0=walk;1=deploy;2=deployed;3=redeploy
 		if (!mode && !enabled)
 		{
+			if (!obj->As_VehicleGameObj()->Is_Immovable())
+			{
 			obj->As_VehicleGameObj()->Set_Immovable(true);
 			mode = 1;
 			Commands->Set_Model(obj,dmodel);
@@ -788,6 +792,7 @@
 			obj->As_VehicleGameObj()->Set_Scripts_Can_Fire(false);
 			Commands->Enable_Vehicle_Transitions(obj,false);
 		}
+		}
 		//mode: 0=walk;1=deploy;2=deployed;3=redeploy
 		else if ((mode == 2) && !enabled)
 		{
@@ -996,6 +1001,8 @@
 		//mode: 0=walk;1=deploy;2=deployed;3=redeploy
 		if (!mode && !enabled)
 		{
+			if (!obj->As_VehicleGameObj()->Is_Immovable())
+			{
 			obj->As_VehicleGameObj()->Set_Immovable(true);
 			mode = 1;
 			Commands->Set_Model(obj,dmodel);
@@ -1004,6 +1011,7 @@
 			obj->As_VehicleGameObj()->Set_Scripts_Can_Fire(false);
 			Commands->Enable_Vehicle_Transitions(obj,false);
 		}
+		}
 		//mode: 0=walk;1=deploy;2=deployed;3=redeploy
 		else if ((mode == 2) && !enabled)
 		{
@@ -1454,6 +1462,8 @@
 		//mode: 0=walk;1=deploy;2=deployed;3=redeploy
 		if (!mode && !enabled)
 		{
+			if (!obj->As_VehicleGameObj()->Is_Immovable())
+			{
 			obj->As_VehicleGameObj()->Set_Immovable(true);
 			mode = 1;
 			Commands->Set_Model(obj,dmodel);
@@ -1466,6 +1476,7 @@
 			obj->As_VehicleGameObj()->Set_Scripts_Can_Fire(false);
 			Commands->Enable_Vehicle_Transitions(obj,false);
 		}
+		}
 		//mode: 0=walk;1=deploy;2=deployed;3=redeploy
 		else if ((mode == 2) && !enabled)
 		{
diff -uwr source/scripts/reborn.h 4.0/source/scripts/reborn.h
--- source/scripts/reborn.h	2010-04-17 22:58:00.000000000 +0800
+++ 4.0/source/scripts/reborn.h	2011-10-14 22:27:32.102539000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for Reborn
-	Copyright 2010 Spirit, E!, Jonathan Wilson, WhiteDragon(MDB)
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software;you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class Reborn_Game_Manager : public ScriptImpClass {
 	int MMK2lim;
diff -uwr source/scripts/rect.h 4.0/source/scripts/rect.h
--- source/scripts/rect.h	2009-08-03 12:24:50.000000000 +0800
+++ 4.0/source/scripts/rect.h	2011-10-11 21:47:58.541015600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__RECT_H
 #define TT_INCLUDE__RECT_H
 #include "Vector2.h"
diff -uwr source/scripts/renalert.cpp 4.0/source/scripts/renalert.cpp
--- source/scripts/renalert.cpp	2011-05-20 19:17:24.000000000 +0800
+++ 4.0/source/scripts/renalert.cpp	2011-10-21 21:50:39.677734300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for RenAlert
-	Copyright 2010 Joshua "NeoSaber" Kraft, Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -21,6 +20,7 @@
 #include "ScriptZoneGameObj.h"
 #include "SmartGameObj.h"
 #include "VehicleGameObjDef.h"
+#include "ArmorWarheadManager.h"
 #ifdef SSGM
 #include "gmlog.h"
 #endif
@@ -3044,11 +3044,145 @@
 	Auto_Save_Variable(&field,4,4);
 }
 
+/////////////////RA_Ore_Truck_2/////////////////
+
+void RA_Ore_Truck_2::Created(GameObject *obj)
+{
+	scoops = 0;
+	value = 0;
+	harvesting = false;
+	field = 0;
+}
+
+void RA_Ore_Truck_2::Custom(GameObject *obj, int type, int param, GameObject *sender)
+{
+	if (type == Get_Int_Parameter("Field_Enter"))
+	{
+		if (scoops < Get_Int_Parameter("Max_Capacity"))
+		{
+			field = param; //remember the field value
+			if (!harvesting) //Only begin new anim if not harvesting
+			{
+				Commands->Set_Animation(obj, Get_Parameter("Harvest_Anim"), false, 0, 0, -1, false);
+				scoops++; //take in scoop
+				Commands->Create_Sound(Get_Parameter("Harvest_Sound"),Commands->Get_Position(obj),0);
+				value += (field / Get_Int_Parameter("Max_Capacity")); //add scoop value to total value
+			}
+			harvesting = true; //now harvesting
+		}
+		else
+		{
+			harvesting = false; //truck full, can't harvest any more
+			field = 0; //forget old field
+		}
+	}
+	else if (type == Get_Int_Parameter("Field_Exit"))
+	{
+		if (harvesting)
+		{
+			harvesting = false;
+		}
+	}
+	else if (type == Get_Int_Parameter("Deposit_Enter"))//Entered deposit zone
+	{
+		if (value) //only dump ore if there is ore to dump
+		{
+			Commands->Create_Sound(Get_Parameter("Dump_Sound"),Commands->Get_Position(obj),0);
+			Commands->Set_Animation(obj, Get_Parameter("Deliver_Anim"), false, 0, 0, -1, false); 
+		}
+	}
+}
+
+void RA_Ore_Truck_2::Animation_Complete(GameObject *obj, const char *animation_name)
+{
+	if (!_stricmp(animation_name, Get_Parameter("Harvest_Anim")))
+	{
+		obj->As_PhysicalGameObj()->Clear_Animation();
+		Commands->Start_Timer(obj, this, 0.25, 95123); //wait 0.25 seconds to start new anim
+	}
+	else if (!_stricmp(animation_name, Get_Parameter("Deliver_Anim")))
+	{
+		//Ore delivered to refinery
+		Commands->Give_Money(obj, value, true); //pass out the cash
+#ifdef SSGM
+		int PlayerID;
+		GameObject *driver = Get_Vehicle_Driver(obj);
+		float reward = 0.0f;
+		if(driver)
+		{
+			PlayerID = Get_Player_ID( driver);
+			if(value == 700)
+			{
+				reward = 5.0f;
+			}
+			else if(value == 1050)
+			{
+				reward = 7.0f;
+			}
+			else if(value == 1400)
+			{
+				reward = 10.0f;
+			}
+			StringClass msg;
+			const char *str2 = Get_Team_Name(Get_Team(PlayerID));
+			const char *str = Get_Player_Name_By_ID(PlayerID);
+			msg.Format("%s dumped some Ore at the refinary, giving the %s %d additional credits each.", str, str2, (int)value);
+			delete[] str2;
+			delete[] str;
+			SSGMGameLog::Log_Message(msg,"_ORE");
+			msg.Format("ppage %d Well done soldier, you have given your team mates an extra %d credits each", PlayerID, (int)value);
+			Console_Input(msg);
+			Commands->Give_Points(driver, reward, false);
+		}
+		Create_2D_WAV_Sound_Team("gsweep.wav",0);
+#endif
+		scoops = 0; //reset capacity
+		value = 0; //reset value
+	}
+}
+
+void RA_Ore_Truck_2::Timer_Expired(GameObject *obj, int number)
+{
+	if (number == 95123)
+	{
+		if (scoops < Get_Int_Parameter("Max_Capacity"))
+		{
+			if (harvesting) //is truck still in the zone
+			{
+				Commands->Set_Animation(obj, Get_Parameter("Harvest_Anim"), false, 0, 0, -1, false);
+				scoops++; //take in scoop
+				Commands->Create_Sound(Get_Parameter("Harvest_Sound"),Commands->Get_Position(obj),0);
+				value += (field / Get_Int_Parameter("Max_Capacity")); //add now
+				//Note: variable 'field' can be changed if new enter message was received between 'scoops'
+				//This allows the truck to enter a new field type in middle of harvesting, 
+				//Keeping the correct amount for old scoop, and receving new amount for new scoop
+			}
+			else
+			{
+				field = 0; //forget old field value
+			}
+		}
+		else
+		{
+			harvesting = false;
+			field = 0;
+		}
+	}
+}
+
+void RA_Ore_Truck_2::Register_Auto_Save_Variables()
+{
+	Auto_Save_Variable(&scoops,4,1);
+	Auto_Save_Variable(&value,4,2);
+	Auto_Save_Variable(&harvesting,1,3);
+	Auto_Save_Variable(&field,4,4);
+}
+
 /////////////////RA_Ore_Field/////////////////
 
 void RA_Ore_Field::Entered(GameObject *obj, GameObject *enterer)
 {
-	if (Is_Script_Attached(enterer, "RA_Ore_Truck")) //Is this an Ore Truck?
+	if (Is_Script_Attached(enterer, "RA_Ore_Truck") || Is_Script_Attached(enterer, "RA_Ore_Truck_2")) //Is this an Ore Truck?
 	{
 		Commands->Send_Custom_Event(obj, enterer, Get_Int_Parameter("Enter"), Get_Int_Parameter("Field_Value"), 0);
 	}
@@ -3056,7 +3190,7 @@
 
 void RA_Ore_Field::Exited(GameObject *obj, GameObject *exiter)
 {
-	if (Is_Script_Attached(exiter, "RA_Ore_Truck")) //Is this an Ore Truck?
+	if (Is_Script_Attached(exiter, "RA_Ore_Truck") || Is_Script_Attached(exiter, "RA_Ore_Truck_2")) //Is this an Ore Truck?
 	{
 		Commands->Send_Custom_Event(obj, exiter, Get_Int_Parameter("Exit"), 0, 0);
 	}
@@ -3066,7 +3200,7 @@
 
 void RA_Ore_Delivery_Zone::Entered(GameObject *obj, GameObject *enterer)
 {
-	if (Is_Script_Attached(enterer, "RA_Ore_Truck")) //Is this an Ore Truck?
+	if (Is_Script_Attached(enterer, "RA_Ore_Truck") || Is_Script_Attached(enterer, "RA_Ore_Truck_2")) //Is this an Ore Truck?
 	{
 		if (Commands->Get_Player_Type(enterer) == Get_Int_Parameter("Team")) //Is it a friendly truck?
 		{
@@ -3386,6 +3520,75 @@
 	Auto_Save_Variable(&reset,4,2);
 }
 
+
+void RA_Beacon_Terminal_2::Created(GameObject *obj)
+{
+	active = false;
+	Commands->Enable_HUD_Pokable_Indicator(obj, false);
+	Attach_Script_Once(obj, "RA_Beacon_Timer", "");
+}
+
+void RA_Beacon_Terminal_2::Custom(GameObject *obj, int type, int param, GameObject *sender)
+{
+	if(type == 962962) //building dead
+	{
+		Commands->Destroy_Object(obj); //building dead, remove terminal
+	}
+	else if(type == 456369) //timer complete
+	{
+		if (!active)
+		{
+			active = true;
+			Commands->Enable_HUD_Pokable_Indicator(obj, true);
+			Create_2D_Sound_Team(Get_Parameter("BeaconReadySound"), Commands->Get_Player_Type(obj));
+		}
+	}
+	else if (type == Get_Int_Parameter("OfflineCustom"))
+	{
+		active = false;
+		Remove_Script(obj, "RA_Beacon_Timer");
+	}
+	else if (type == Get_Int_Parameter("OnlineCustom"))
+	{
+		Attach_Script_Once(obj, "RA_Beacon_Timer", "");
+	}
+}
+
+void RA_Beacon_Terminal_2::Damaged(GameObject *obj, GameObject *damager, float amount)
+{
+	unsigned int warhead = ArmorWarheadManager::Get_Warhead_Type(Get_Parameter("Warhead"));
+	if (warhead == Get_Damage_Warhead())
+	{
+		active = false;
+		Remove_Script(obj, "RA_Beacon_Timer");
+		Commands->Start_Timer(obj,this,1,1);
+	}
+}
+
+void RA_Beacon_Terminal_2::Timer_Expired(GameObject *obj, int number)
+{
+	Attach_Script_Once(obj, "RA_Beacon_Timer", "");
+}
+
+void RA_Beacon_Terminal_2::Poked(GameObject *obj, GameObject *poker)
+{
+	if(Commands->Get_Player_Type(poker) == Commands->Get_Player_Type(obj))
+	{
+		if(active)
+		{
+			Commands->Give_PowerUp(poker, Get_Parameter("BeaconPowerup"), false);
+			Attach_Script_Once(obj, "RA_Beacon_Timer", "");
+			active = false;
+			Commands->Enable_HUD_Pokable_Indicator(obj, false);
+			Create_2D_Sound_Team(Get_Parameter("BeaconTakenSound"), Commands->Get_Player_Type(obj));
+		}
+	}
+	else
+	{
+		Display_Security_Dialog(poker);
+	}
+}
+
 //////////////RA_Beacom_Timer//////////////
 
 void RA_Beacon_Timer::Created(GameObject *obj)
@@ -3669,6 +3872,7 @@
 ScriptRegistrant<RA_Credit_Theft_Zone_Timer> RA_Credit_Theft_Zone_Timer_Registrant("RA_Credit_Theft_Zone_Timer", "Enter_Message=357753:int,Team=0:int,Time:float");
 ScriptRegistrant<RA_DestroyNearest_OnDeath> RA_DestroyNearest_OnDeath_Registrant("RA_DestroyNearest_OnDeath", "Preset_Name:string");
 ScriptRegistrant<RA_Ore_Truck> RA_Ore_Truck_Registrant("RA_Ore_Truck", "Field_Enter=456654:int,Field_Exit=75321:int,Deposit_Enter=321654:int,Max_Capacity=7:int,Harvest_Anim:string,Deliver_Anim:string");
+ScriptRegistrant<RA_Ore_Truck_2> RA_Ore_Truck_2_Registrant("RA_Ore_Truck_2", "Field_Enter=456654:int,Field_Exit=75321:int,Deposit_Enter=321654:int,Max_Capacity=7:int,Harvest_Anim:string,Deliver_Anim:string,Harvest_Sound:string,Dump_Sound:string");
 ScriptRegistrant<RA_Ore_Field> RA_Ore_Field_Registrant("RA_Ore_Field", "Field_Value=700:int,Enter=456654:int,Exit=75321:int");
 ScriptRegistrant<RA_Ore_Delivery_Zone> RA_Ore_Delivery_Zone_Registrant("RA_Ore_Delivery_Zone", "Team=0:int,Enter=321654");
 ScriptRegistrant<RA_Vehicle_Team_Set> RA_Vehicle_Team_Set_Registrant("RA_Vehicle_Team_Set","");
@@ -3678,6 +3882,7 @@
 ScriptRegistrant<RA_Fog_Level_Settings> RA_Fog_Level_Settings_Registrant("RA_Fog_Level_Settings", "FogEnable=1:int,FogMin=200.0:float,FogMax=300.0:float");
 ScriptRegistrant<RA_Missile_Beacon> RA_Missile_Beacon_Registrant("RA_Missile_Beacon", "SiloPresetName:string");
 ScriptRegistrant<RA_Beacon_Terminal> RA_Beacon_Terminal_Registrant("RA_Beacon_Terminal", "BeaconPowerup:string,BeaconReadySound:string,BeaconTakenSound:string,SiloDisableSound:string,SpyNotifySound:string");
+ScriptRegistrant<RA_Beacon_Terminal_2> RA_Beacon_Terminal_2_Registrant("RA_Beacon_Terminal_2", "BeaconPowerup:string,BeaconReadySound:string,BeaconTakenSound:string,SiloDisableSound:string,OfflineCustom:string,OnlineCustom:string,Warhead:string");
 ScriptRegistrant<RA_Beacon_Timer> RA_Beacon_Timer_Registrant("RA_Beacon_Timer", "");
 ScriptRegistrant<RA_Missile_Control> RA_Missile_Control_Registrant("RA_Missile_Control","AnimationName:string");
 ScriptRegistrant<RA_Missile_Controller> RA_Missile_Controller_Registrant("RA_Missile_Controller","SiloPresetName:string,TerminalPresetName:string");
diff -uwr source/scripts/renalert.h 4.0/source/scripts/renalert.h
--- source/scripts/renalert.h	2011-04-27 17:39:36.000000000 +0800
+++ 4.0/source/scripts/renalert.h	2011-10-21 21:50:39.739257800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for RenAlert
-	Copyright 2010 Joshua "NeoSaber" Kraft, Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class RA_Repair_Controller : public ScriptImpClass {
 	void Killed(GameObject *obj,GameObject *killer);
@@ -286,6 +286,18 @@
 	public: void Register_Auto_Save_Variables();
 };
 
+class RA_Ore_Truck_2 : public ScriptImpClass {
+	int scoops;
+	float value;
+	bool harvesting;
+	int field;
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj,int type,int param,GameObject *sender);
+	void Animation_Complete(GameObject *obj,const char *animation_name);
+	void Timer_Expired(GameObject *obj, int number);
+	public: void Register_Auto_Save_Variables();
+};
+
 class RA_Ore_Field : public ScriptImpClass { 
 	void Entered(GameObject *obj,GameObject *enterer);
 	void Exited(GameObject *obj,GameObject *exiter);
@@ -343,6 +355,15 @@
 	public: void Register_Auto_Save_Variables();
 };
 
+class RA_Beacon_Terminal_2 : public ScriptImpClass {
+	bool active; //true if beacon is available
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj, int type, int param, GameObject *sender); 
+	void Poked(GameObject *obj, GameObject *poker);
+	void Damaged(GameObject *obj, GameObject *damager, float amount);
+	void Timer_Expired(GameObject *obj, int number);
+};
+
 class RA_Beacon_Timer : public ScriptImpClass { 
 	//acts as timer for Beacon_Terminal
 	//This script will be removed & replaced if a spy pokes the terminal
diff -uwr source/scripts/renalert2.cpp 4.0/source/scripts/renalert2.cpp
--- source/scripts/renalert2.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/renalert2.cpp	2011-10-11 23:06:29.205078100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	More scripts for RenAlert (formerly from closed source scripts.dll)
-	Copyright 2010 Joshua "NeoSaber" Kraft, Mark "Saberhawk" Sararu, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/renalert2.h 4.0/source/scripts/renalert2.h
--- source/scripts/renalert2.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/renalert2.h	2011-10-14 22:27:31.908203100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	More scripts for RenAlert (formerly from closed source scripts.dll)
-	Copyright 2010 Joshua "NeoSaber" Kraft, Mark "Saberhawk" Sararu, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 /******************Missle Silo Script Declarations*******************/
 
 class RA_Missile_Silo : public ScriptImpClass {
diff -uwr source/scripts/scriptfactory.cpp 4.0/source/scripts/scriptfactory.cpp
--- source/scripts/scriptfactory.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/scriptfactory.cpp	2011-10-11 23:06:25.951171800 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Script Factory
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/scriptregistrar.cpp 4.0/source/scripts/scriptregistrar.cpp
--- source/scripts/scriptregistrar.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/scriptregistrar.cpp	2011-10-11 23:06:24.448242100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Script Registrar
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/scripts.cpp 4.0/source/scripts/scripts.cpp
--- source/scripts/scripts.cpp	2010-05-31 13:26:12.000000000 +0800
+++ 4.0/source/scripts/scripts.cpp	2011-10-11 23:06:22.983398400 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Base script class
-	Copyright 2010 Olaf Van Der Spek, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/scripts.h 4.0/source/scripts/scripts.h
--- source/scripts/scripts.h	2011-08-22 08:02:30.000000000 +0800
+++ 4.0/source/scripts/scripts.h	2011-10-11 21:44:21.639648400 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Base scripts header
-	Copyright 2010 Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/scripts.vcxproj 4.0/source/scripts/scripts.vcxproj
--- source/scripts/scripts.vcxproj	2011-08-20 10:11:46.000000000 +0800
+++ 4.0/source/scripts/scripts.vcxproj	2011-10-14 22:25:11.455078100 +0800
@@ -227,13 +227,7 @@
       <AdditionalLibraryDirectories>..\bin\release</AdditionalLibraryDirectories>
     </Link>
     <PostBuildEvent>
-      <Command>if defined RenPath (
-del "%RenPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
-move "%RenPath%\$(TargetFileName)" "%RenPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
-del "%RenPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
-)
-
-if defined RenServerPath (
+      <Command>if defined RenServerPath (
 del "%RenServerPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
 move "%RenServerPath%\$(TargetFileName)" "%RenServerPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
 del "%RenServerPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
@@ -241,9 +235,6 @@
 
 verify &gt;NUL
 
-if defined RenPath (
-copy "$(TargetPath)" "%RenPath%\$(TargetFileName)"
-)
 if defined RenServerPath (
 copy "$(TargetPath)" "%RenServerPath%\$(TargetFileName)"
 )
@@ -381,13 +372,7 @@
       <AdditionalLibraryDirectories>..\bin\debug</AdditionalLibraryDirectories>
     </Link>
     <PostBuildEvent>
-      <Command>if defined RenPath (
-del "%RenPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
-move "%RenPath%\$(TargetFileName)" "%RenPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
-del "%RenPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
-)
-
-if defined RenServerPath (
+      <Command>if defined RenServerPath (
 del "%RenServerPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
 move "%RenServerPath%\$(TargetFileName)" "%RenServerPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
 del "%RenServerPath%\$(TargetFileName).removeme" 1&gt;NUL 2&gt;NUL
@@ -395,9 +380,6 @@
 
 verify &gt;NUL
 
-if defined RenPath (
-copy "$(TargetPath)" "%RenPath%\$(TargetFileName)"
-)
 if defined RenServerPath (
 copy "$(TargetPath)" "%RenServerPath%\$(TargetFileName)"
 )
@@ -505,11 +487,17 @@
     <ClCompile Include="straw.cpp" />
     <ClCompile Include="survival.cpp" />
     <ClCompile Include="tcw_building.cpp" />
+    <ClCompile Include="tcw_center_point.cpp" />
+    <ClCompile Include="tcw_coop.cpp" />
+    <ClCompile Include="tcw_coop_cruising.cpp" />
+    <ClCompile Include="tcw_defence.cpp" />
+    <ClCompile Include="tcw_domination.cpp" />
     <ClCompile Include="tcw_game.cpp" />
     <ClCompile Include="tcw_player.cpp" />
     <ClCompile Include="tcw_powerup.cpp" />
     <ClCompile Include="tcw_technology.cpp" />
     <ClCompile Include="tcw_vehicle.cpp" />
+    <ClCompile Include="tcw_zone.cpp" />
     <ClCompile Include="tda.cpp" />
     <ClCompile Include="tfx.cpp" />
     <ClCompile Include="ThreadClass.cpp" />
@@ -675,6 +663,7 @@
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
     </ClInclude>
     <ClInclude Include="GridCull.h" />
+    <ClInclude Include="HarvesterClass.h" />
     <ClInclude Include="inttest.h" />
     <ClInclude Include="jfwcine.h" />
     <ClInclude Include="jfwcust.h" />
@@ -766,11 +755,17 @@
     <ClInclude Include="straw.h" />
     <ClInclude Include="survival.h" />
     <ClInclude Include="tcw_building.h" />
+    <ClInclude Include="tcw_center_point.h" />
+    <ClInclude Include="tcw_coop.h" />
+    <ClInclude Include="tcw_coop_cruising.h" />
+    <ClInclude Include="tcw_defence.h" />
+    <ClInclude Include="tcw_domination.h" />
     <ClInclude Include="tcw_game.h" />
     <ClInclude Include="tcw_player.h" />
     <ClInclude Include="tcw_powerup.h" />
     <ClInclude Include="tcw_technology.h" />
     <ClInclude Include="tcw_vehicle.h" />
+    <ClInclude Include="tcw_zone.h" />
     <ClInclude Include="tda.h" />
     <ClInclude Include="TeamPurchaseSettingsDefClass.h" />
     <ClInclude Include="tfx.h" />
diff -uwr source/scripts/scripts.vcxproj.filters 4.0/source/scripts/scripts.vcxproj.filters
--- source/scripts/scripts.vcxproj.filters	2011-08-20 10:11:46.000000000 +0800
+++ 4.0/source/scripts/scripts.vcxproj.filters	2011-10-14 22:25:11.498046800 +0800
@@ -446,6 +446,24 @@
     <ClCompile Include="z_uberaow.cpp">
       <Filter>01. Sources\UberAOW</Filter>
     </ClCompile>
+    <ClCompile Include="tcw_coop.cpp">
+      <Filter>01. Sources\Tib. Crystal War</Filter>
+    </ClCompile>
+    <ClCompile Include="tcw_domination.cpp">
+      <Filter>01. Sources\Tib. Crystal War</Filter>
+    </ClCompile>
+    <ClCompile Include="tcw_center_point.cpp">
+      <Filter>01. Sources\Tib. Crystal War</Filter>
+    </ClCompile>
+    <ClCompile Include="tcw_coop_cruising.cpp">
+      <Filter>01. Sources\Tib. Crystal War</Filter>
+    </ClCompile>
+    <ClCompile Include="tcw_defence.cpp">
+      <Filter>01. Sources\Tib. Crystal War</Filter>
+    </ClCompile>
+    <ClCompile Include="tcw_zone.cpp">
+      <Filter>01. Sources\Tib. Crystal War</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="scripts.rc">
@@ -1371,6 +1389,27 @@
     <ClInclude Include="z_uberaow.h">
       <Filter>02. Headers\UberAOW</Filter>
     </ClInclude>
+    <ClInclude Include="tcw_coop.h">
+      <Filter>02. Headers\Tib. Crystal War</Filter>
+    </ClInclude>
+    <ClInclude Include="HarvesterClass.h">
+      <Filter>03. New Sources</Filter>
+    </ClInclude>
+    <ClInclude Include="tcw_domination.h">
+      <Filter>02. Headers\Tib. Crystal War</Filter>
+    </ClInclude>
+    <ClInclude Include="tcw_zone.h">
+      <Filter>02. Headers\Tib. Crystal War</Filter>
+    </ClInclude>
+    <ClInclude Include="tcw_center_point.h">
+      <Filter>02. Headers\Tib. Crystal War</Filter>
+    </ClInclude>
+    <ClInclude Include="tcw_coop_cruising.h">
+      <Filter>02. Headers\Tib. Crystal War</Filter>
+    </ClInclude>
+    <ClInclude Include="tcw_defence.h">
+      <Filter>02. Headers\Tib. Crystal War</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="console.txt">
diff -uwr source/scripts/scud.cpp 4.0/source/scripts/scud.cpp
--- source/scripts/scud.cpp	2010-04-14 10:13:22.000000000 +0800
+++ 4.0/source/scripts/scud.cpp	2011-10-11 23:06:21.289062500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by E!
-	Copyright 2010 E!, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/scud.h 4.0/source/scripts/scud.h
--- source/scripts/scud.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/scud.h	2011-10-14 22:27:31.965820300 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by E!
-	Copyright 2010 E!, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class SCUD_Turret_Spawn : public ScriptImpClass {
 	int turID;
 	void Created(GameObject *obj);
diff -uwr source/scripts/sh_blocker.cpp 4.0/source/scripts/sh_blocker.cpp
--- source/scripts/sh_blocker.cpp	2010-04-04 10:35:04.000000000 +0800
+++ 4.0/source/scripts/sh_blocker.cpp	2011-10-11 23:06:19.515625000 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 
 #include "scripts.h"
diff -uwr source/scripts/sh_underground.cpp 4.0/source/scripts/sh_underground.cpp
--- source/scripts/sh_underground.cpp	2011-04-10 11:42:18.000000000 +0800
+++ 4.0/source/scripts/sh_underground.cpp	2011-10-11 23:06:17.741210900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 
 #include "scripts.h"
@@ -117,6 +128,8 @@
 		// only movable objects can play
 		if (!movable_phys) return;
 
+		if (movable_phys->Is_Immovable()) return;
+
 		// no weapon firing is allowed
 		{
 			VehicleGameObj* vehicle = owner->As_VehicleGameObj();
diff -uwr source/scripts/shawk.cpp 4.0/source/scripts/shawk.cpp
--- source/scripts/shawk.cpp	2011-06-12 20:51:20.000000000 +0800
+++ 4.0/source/scripts/shawk.cpp	2011-10-11 23:06:16.314453100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Mark "Saberhawk" Sararu
-	Copyright 2010 Mark "Saberhawk" Sararu, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -150,6 +149,14 @@
 	}
 };
 
+class SH_SoldierCantDriveVehicles: public ScriptImpClass
+{
+	void Created(GameObject* obj)
+	{
+		if (SoldierGameObj* sobj = obj->As_SoldierGameObj()) sobj->Set_Can_Drive_Vehicles(false);
+	}
+};
+
 class SH_HurtUnitTimer: public ScriptImpClass
 {
 	float time;
@@ -338,6 +345,7 @@
 REGISTER_SCRIPT(SH_VehicleStealthedWhileEmpty, "");
 REGISTER_SCRIPT(SH_VehicleCanBeStolen, "");
 REGISTER_SCRIPT(SH_SoldierCanStealVehicles, "");
+REGISTER_SCRIPT(SH_SoldierCantDriveVehicles, "");
 REGISTER_SCRIPT(SH_HurtUnitTimer, "Time:float,Warhead:string,Amount:float");
 REGISTER_SCRIPT(SH_HurtUnitTimerZone, "Time:float,Warhead:string,Amount:float");
 REGISTER_SCRIPT(SH_DangerWarning, "Time:float,TransitionIn:float,TransitionOut:float,Color:string");
diff -uwr source/scripts/shawk.h 4.0/source/scripts/shawk.h
--- source/scripts/shawk.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/shawk.h	2011-10-14 22:27:32.140625000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Mark "Saberhawk" Sararu
-	Copyright 2010 Mark "Saberhawk" Sararu, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class SH_ConsoleCommand : public ScriptImpClass {
 	void Created(GameObject *sender);
 	void Timer_Expired(GameObject *sender,int number);
diff -uwr source/scripts/straw.cpp 4.0/source/scripts/straw.cpp
--- source/scripts/straw.cpp	2009-08-28 11:37:46.000000000 +0800
+++ 4.0/source/scripts/straw.cpp	2011-10-11 23:06:13.116210900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include "engine_io.h"
 #include "straw.h"
diff -uwr source/scripts/straw.h 4.0/source/scripts/straw.h
--- source/scripts/straw.h	2010-05-31 13:36:38.000000000 +0800
+++ 4.0/source/scripts/straw.h	2011-10-12 09:16:51.114257800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__STRAW_H
 #define TT_INCLUDE__STRAW_H
 
diff -uwr source/scripts/survival.cpp 4.0/source/scripts/survival.cpp
--- source/scripts/survival.cpp	2010-04-14 10:13:24.000000000 +0800
+++ 4.0/source/scripts/survival.cpp	2011-10-11 23:06:11.570312500 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for Survival stuff
-	Copyright 2010 Spirit, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/survival.h 4.0/source/scripts/survival.h
--- source/scripts/survival.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/survival.h	2011-10-14 22:27:31.983398400 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts for Survival stuff
-	Copyright 2010 Spirit, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class SUR_Spawn_Delay : public ScriptImpClass {
 	void Created(GameObject *obj);
 	void Timer_Expired(GameObject *obj,int number);
diff -uwr source/scripts/tcw_building.cpp 4.0/source/scripts/tcw_building.cpp
--- source/scripts/tcw_building.cpp	2011-09-03 08:30:06.000000000 +0800
+++ 4.0/source/scripts/tcw_building.cpp	2011-10-14 22:25:11.481445300 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -20,6 +20,10 @@
 {
 	alive = true;
 	playdamage = true;
+	if (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Command_Post") == 0)
+	{
+		Commands->Set_Animation(obj,"V_GDI_CPOST.V_GDI_CPOST",true,0,1,-1,0);
+	}
 }
 void tcw_building::Killed(GameObject *obj, GameObject *shooter)
 {
@@ -30,6 +34,12 @@
 		Create_2D_WAV_Sound_Team("gdi_barracks_destroyed_nod.wav",0);
 		Send_Message(255,255,255,"GDI Barracks destroyed.");
 	}
+	else if (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Airfield") == 0)
+	{
+		Create_2D_WAV_Sound_Team("gdi_airfield_destroyed_gdi.wav",1);
+		Create_2D_WAV_Sound_Team("gdi_airfield_destroyed_nod.wav",0);
+		Send_Message(255,255,255,"GDI Airfield destroyed.");
+	}
 	else if (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_War_Factory") == 0)
 	{
 		Create_2D_WAV_Sound_Team("gdi_warfactory_destroyed_gdi.wav",1);
@@ -81,6 +91,21 @@
 		Send_Message_Team(1,255,255,255,"Nod Airfield destroyed.");
 		Send_Message_Team(0,255,255,255,"Nod Air Control Tower destroyed.");
 	}
+	else if (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Command_Post") == 0)
+	{
+		Create_2D_WAV_Sound_Team("gdi_operctr_destroyed_gdi.wav",1);
+		Create_2D_WAV_Sound_Team("nod_operctr_destroyed_nod.wav",0);
+		Send_Message(255,255,255,"GDI Command Post destroyed.");
+		Commands->Set_Animation(obj,"V_GDI_CPOST.V_GDI_CPOST",true,0,1,1,0);
+		Enable_Base_Radar(1,false);
+	}
+	else if (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Oper_Centre") == 0)
+	{
+		Create_2D_WAV_Sound_Team("gdi_operctr_destroyed_gdi.wav",1);
+		Create_2D_WAV_Sound_Team("nod_operctr_destroyed_nod.wav",0);
+		Send_Message(255,255,255,"GDI Command Post destroyed.");
+		Enable_Base_Radar(0,false);
+	}
 }
 void tcw_building::Damaged(GameObject *obj, GameObject *damager, float damage)
 {
@@ -88,7 +113,7 @@
 	{
 		if (playdamage)
 		{
-			if (damage > 1.0f)
+			if (damage > 0.5f)
 			{
 				playdamage = false;
 				Commands->Start_Timer(obj,this,25.0f,100100);
@@ -99,6 +124,13 @@
 					Send_Message_Team(0,255,255,255,"GDI Tiberium Refinery under attack.");
 					Send_Message_Team(1,255,255,255,"Warning GDI Tiberium Refinery under attack.");
 				}
+				else if (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Airfield") == 0)
+				{
+					Create_2D_WAV_Sound_Team("gdi_airfield_under_attack_gdi.wav",1);
+					Create_2D_WAV_Sound_Team("gdi_airfield_under_attack_nod.wav",0);
+					Send_Message_Team(0,255,255,255,"GDI Airfield under attack.");
+					Send_Message_Team(1,255,255,255,"Warning GDI Airfield under attack.");
+				}
 				else if (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_War_Factory") == 0)
 				{
 					Create_2D_WAV_Sound_Team("gdi_warfactory_under_attack_gdi.wav",1);
@@ -162,6 +194,20 @@
 					Send_Message_Team(0,255,255,255,"Warning Nod Air Control Tower under attack.");
 					Send_Message_Team(1,255,255,255,"Nod Airfield under attack.");
 				}
+				else if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_VehBld_GDI_Armory") == 0) ||
+					(strcmp(Commands->Get_Preset_Name(obj),"TCW_VehBld_GDI_Silo") == 0) || 
+					(strcmp(Commands->Get_Preset_Name(obj),"TCW_VehBld_GDI_CmdPost") == 0) )
+				{
+					Create_2D_WAV_Sound_Team("gdi_our_base_under_attack.wav",1);
+					Send_Message_Team(1,255,255,255,"Our Base is under attack.");
+				}
+				else if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_VehBld_Nod_Shrine") == 0) || 
+					(strcmp(Commands->Get_Preset_Name(obj),"TCW_VehBld_Nod_Silo") == 0) || 
+					(strcmp(Commands->Get_Preset_Name(obj),"TCW_VehBld_Nod_OpCtr") == 0) )
+				{
+					Create_2D_WAV_Sound_Team("nod_our_base_under_attack.wav",0);
+					Send_Message_Team(0,255,255,255,"Our Base is under attack.");
+				}
 			}
 		}
 	}
@@ -206,6 +252,8 @@
 {
 	if (play)
 	{
+		if (damage > 0.5f)
+		{
 		play = false;
 		Commands->Start_Timer(obj,this,25.0f,100100);
 		Create_2D_WAV_Sound_Team("gdi_watchtower_under_attack_gdi.wav",1);
@@ -214,6 +262,7 @@
 		Send_Message_Team(0,255,255,255,"GDI Watch Tower under attack.");
 	}
 }
+}
 void tcw_watchtower::Killed(GameObject *obj, GameObject *shooter)
 {
 	Create_2D_WAV_Sound_Team("gdi_watchtower_destroyed_gdi.wav",1);
diff -uwr source/scripts/tcw_building.h 4.0/source/scripts/tcw_building.h
--- source/scripts/tcw_building.h	2011-08-30 08:02:00.000000000 +0800
+++ 4.0/source/scripts/tcw_building.h	2011-10-14 22:27:32.042968700 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -11,6 +11,7 @@
 	with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class tcw_building : public ScriptImpClass {
 	void Created(GameObject *obj);
Only in 4.0/source/scripts: tcw_center_point.cpp
Only in 4.0/source/scripts: tcw_center_point.h
Only in 4.0/source/scripts: tcw_coop.cpp
Only in 4.0/source/scripts: tcw_coop.h
Only in 4.0/source/scripts: tcw_coop_cruising.cpp
Only in 4.0/source/scripts: tcw_coop_cruising.h
Only in 4.0/source/scripts: tcw_defence.cpp
Only in 4.0/source/scripts: tcw_defence.h
Only in 4.0/source/scripts: tcw_domination.cpp
Only in 4.0/source/scripts: tcw_domination.h
diff -uwr source/scripts/tcw_game.cpp 4.0/source/scripts/tcw_game.cpp
--- source/scripts/tcw_game.cpp	2011-09-03 08:30:06.000000000 +0800
+++ 4.0/source/scripts/tcw_game.cpp	2011-10-14 22:25:11.459960900 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -16,7 +16,9 @@
 #include "engine.h"
 #include "BuildingGameObj.h"
 #include "tcw_game.h"
-
+#include "GameObjManager.h"
+#include "SoldierGameObj.h"
+#include "VehicleGameObj.h"
 
 void tcw_Tiberium_Harvester::Created(GameObject *obj)
 {
@@ -24,6 +26,12 @@
 	driver = 0;
 	cash = 0;
 	ID = 0;
+	if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester") == 0) || (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester_Player") == 0) || (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Nod_Harvester_Player") == 0) ) 
+	{
+		VehicleGameObj* harvester = obj->As_VehicleGameObj();
+		if (!harvester) return;
+		harvester->Set_Allow_Stealth_While_Empty(true);
+	}
 }
 void tcw_Tiberium_Harvester::Custom(GameObject *obj,int type,int param,GameObject *sender)
 {
@@ -230,21 +238,21 @@
 						{
 							Commands->Start_Timer(obj,this,20.0f,101);
 						}
-						if (capturer)
+						if (Commands->Find_Object(capturer))
 						{
 							if (Commands->Get_Player_Type(Commands->Find_Object(capturer)) == 0)
 							{
 								char capturerd[250];
 								sprintf(capturerd,"%s is capturing a Tiberium Spike.",Get_Player_Name(Commands->Find_Object(capturer)));
 								Send_Message_Team(0,255,0,0,capturerd);
-								Create_2D_WAV_Sound_Team("incmsg.wav",0);
+								Create_2D_WAV_Sound_Team("building_capture.wav",0);
 							}
 							else if (Commands->Get_Player_Type(Commands->Find_Object(capturer)) == 1)
 							{
 								char capturerd[250];
 								sprintf(capturerd,"%s is capturing a Tiberium Spike.",Get_Player_Name(Commands->Find_Object(capturer)));
 								Send_Message_Team(1,255,204,0,capturerd);
-								Create_2D_WAV_Sound_Team("incmsg.wav",1);
+								Create_2D_WAV_Sound_Team("building_capture.wav",1);
 							}
 						}
 					}
@@ -294,6 +302,7 @@
 					Create_2D_WAV_Sound_Team("nod_building_captured.wav",0);
 					Send_Message_Team(0,255,0,0,"Building captured.");
 				}
+				Commands->Give_Points(Commands->Find_Object(capturer),250.0f,0);
 				Remove_Script(Commands->Find_Object(capturer),"tcw_i_can_capture_spike");
 				capturing = false;
 				capturer = 0;
@@ -334,6 +343,7 @@
 					Create_2D_WAV_Sound_Team("gdi_building_captured.wav",1);
 					Send_Message_Team(1,255,204,0,"Building captured.");
 				}
+				Commands->Give_Points(Commands->Find_Object(capturer),250.0f,0);
 				Remove_Script(Commands->Find_Object(capturer),"tcw_i_can_capture_spike");
 				capturing = false;
 				capturer = 0;
@@ -625,6 +635,8 @@
 void tcw_Tiberium_Field_New::Entered(GameObject *obj, GameObject *enter)
 {
 	if ( (strcmp(Commands->Get_Preset_Name(enter),"TCW_GDI_Harvester_Player") == 0) || 
+		 (strcmp(Commands->Get_Preset_Name(enter),"TCW_Nod_GDI_Harvester_Player") == 0) || 
+		 (strcmp(Commands->Get_Preset_Name(enter),"TCW_GDI_Nod_Harvester_Player") == 0) || 
 		 (strcmp(Commands->Get_Preset_Name(enter),"TCW_Nod_Harvester_Player") == 0) )
 	{
 		if (zonetype == 0)//green
@@ -640,6 +652,8 @@
 void tcw_Tiberium_Field_New::Exited(GameObject *obj, GameObject *exit)
 {
 	if ( (strcmp(Commands->Get_Preset_Name(exit),"TCW_GDI_Harvester_Player") == 0) || 
+		 (strcmp(Commands->Get_Preset_Name(exit),"TCW_Nod_GDI_Harvester_Player") == 0) || 
+		 (strcmp(Commands->Get_Preset_Name(exit),"TCW_GDI_Nod_Harvester_Player") == 0) || 
 		 (strcmp(Commands->Get_Preset_Name(exit),"TCW_Nod_Harvester_Player") == 0) )
 	{
 		Commands->Send_Custom_Event(obj,exit,10500,3,0);//tell harv left zone
@@ -658,6 +672,12 @@
 	hasblue = false;
 	team = -1;
 	driverid = 0;
+	if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester") == 0) || (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Nod_Harvester_Player") == 0) || (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester_Player") == 0) )
+	{
+		VehicleGameObj* harvester = obj->As_VehicleGameObj();
+		if (!harvester) return;
+		harvester->Set_Allow_Stealth_While_Empty(true);
+	}
 }
 void tcw_Tiberium_Harvester_New::Custom(GameObject *obj, int message, int param, GameObject *sender)
 {
@@ -727,14 +747,14 @@
 							char dumpmsg[250];
 							sprintf(dumpmsg,"%s deposited Tiberium funding Nod with %g additional credits.",Get_Player_Name(Commands->Find_Object(driverid)),tiberiumvalue);
 							Send_Message_Team(0,255,0,0,dumpmsg);
-							Create_2D_WAV_Sound_Team("creditsacquired.wav",0);
+							Create_2D_WAV_Sound_Team("creditsacquired_nod.wav",0);
 						}
 						else if (team == 1)
 						{
 							char dumpmsg[250];
 							sprintf(dumpmsg,"%s deposited Tiberium funding GDI with %g additional credits.",Get_Player_Name(Commands->Find_Object(driverid)),tiberiumvalue);
 							Send_Message_Team(1,255,204,0,dumpmsg);
-							Create_2D_WAV_Sound_Team("creditsacquired.wav",1);
+							Create_2D_WAV_Sound_Team("creditsacquired_gdi.wav",1);
 						}
 						tiberiumvalue = 0.0f;
 						hasblue = false;
@@ -755,6 +775,20 @@
 			{
 				Commands->Start_Timer(obj,this,1.0f,10500);
 				tiberiumvalue = tiberiumvalue+100.0f;
+
+				if (team == 0)
+				{
+					char amount[250];
+					sprintf(amount,"You harvested $%g worth of Tiberium Crystals.",tiberiumvalue);
+					Send_Message_Player(Commands->Find_Object(driverid),255,0,0,amount);
+				}
+				else if (team == 1)
+				{
+					char amount[250];
+					sprintf(amount,"You harvested $%g worth of Tiberium Crystals.",tiberiumvalue);
+					Send_Message_Player(Commands->Find_Object(driverid),255,204,0,amount);
+				}
+
 				if (tiberiumvalue == 1400.0f)
 				{
 					if (team == 0)
@@ -780,6 +814,20 @@
 			{
 				Commands->Start_Timer(obj,this,1.0f,10501);
 				tiberiumvalue = tiberiumvalue+200.0f;
+
+				if (team == 0)
+				{
+					char amount[250];
+					sprintf(amount,"You harvested $%g worth of Tiberium Crystals.",tiberiumvalue);
+					Send_Message_Player(Commands->Find_Object(driverid),255,0,0,amount);
+				}
+				else if (team == 1)
+				{
+					char amount[250];
+					sprintf(amount,"You harvested $%g worth of Tiberium Crystals.",tiberiumvalue);
+					Send_Message_Player(Commands->Find_Object(driverid),255,204,0,amount);
+				}
+
 				if (tiberiumvalue == 2800.0f)
 				{
 					if (team == 0)
@@ -810,12 +858,344 @@
 void tcw_Tiberium_Deposit_New::Entered(GameObject *obj, GameObject *enter)
 {
 	if ( (strcmp(Commands->Get_Preset_Name(enter),"TCW_GDI_Harvester_Player") == 0) || 
+		 (strcmp(Commands->Get_Preset_Name(enter),"TCW_Nod_GDI_Harvester_Player") == 0) || 
+		 (strcmp(Commands->Get_Preset_Name(enter),"TCW_GDI_Nod_Harvester_Player") == 0) ||
 		 (strcmp(Commands->Get_Preset_Name(enter),"TCW_Nod_Harvester_Player") == 0) )
 	{
 		Commands->Send_Custom_Event(obj,enter,10500,4,0);//tell harv deposit tib
 	}
 }
 
+void tcw_There_Must_Be_Engineer::Created(GameObject *obj)
+{
+	SList<SoldierGameObj> *player_list = &GameObjManager::StarGameObjList;
+	SLNode<SoldierGameObj> *objnode;
+	for (objnode = player_list->Head(); objnode; objnode = objnode->Next()) 
+	{
+		SoldierGameObj *soldier = objnode->Data();
+		if ( soldier != NULL ) 
+		{
+			if (Commands->Get_Player_Type(soldier) == 0)
+			{
+				if (!Is_Building_Dead(Find_Building(0,BuildingConstants::TYPE_SOLDIER_FACTORY)))
+				{
+					if (strcmp(Commands->Get_Preset_Name(soldier),"CnC_Nod_Minigunner_0") == 0)
+					{
+						Change_Character(soldier,"TCW_Nod_Saboteur");
+						break;
+					}
+					else if (strcmp(Commands->Get_Preset_Name(soldier),"TCW_Nod_Spawn_Low") == 0)
+					{
+						Change_Character(soldier,"TCW_Nod_Saboteur_Low");
+						break;
+					}
+				}
+				else
+				{
+					break;
+				}
+			}
+			else if (Commands->Get_Player_Type(soldier) == 1)
+			{
+				if (!Is_Building_Dead(Find_Building(1,BuildingConstants::TYPE_SOLDIER_FACTORY)))
+				{
+					if (strcmp(Commands->Get_Preset_Name(soldier),"CnC_GDI_MiniGunner_0") == 0)
+					{
+						Change_Character(soldier,"TCW_GDI_Engineer");
+						break;
+					}
+					else if (strcmp(Commands->Get_Preset_Name(soldier),"TCW_GDI_Spawn_Low") == 0)
+					{
+						Change_Character(soldier,"TCW_GDI_Engineer_Low");
+						break;
+					}
+				}
+				else
+				{
+					break;
+				}
+			}
+		}
+	}
+}
+
+void tcw_Enable_Refill::Created(GameObject *obj)
+{
+	//
+}
+
+void tcw_Buy_Beacon_Ion::Created(GameObject *obj)
+{
+	type = Get_Int_Parameter("Type");//1=10s 2=60s beacon
+	allowpoke = true; Commands->Enable_HUD_Pokable_Indicator(obj, true);
+	ionholder = 0;
+	ready = false;
+	charging = true; Commands->Start_Timer(obj,this,30.0f,100100);//commence charging of the ion
+}
+void tcw_Buy_Beacon_Ion::Register_Auto_Save_Variables()
+{
+	Auto_Save_Variable(&type,sizeof(type),1);
+	Auto_Save_Variable(&allowpoke,sizeof(allowpoke),2);
+	Auto_Save_Variable(&ionholder,sizeof(ionholder),3);
+	Auto_Save_Variable(&ready,sizeof(ready),4);
+	Auto_Save_Variable(&charging,sizeof(charging),5);
+}
+void tcw_Buy_Beacon_Ion::Timer_Expired(GameObject *obj, int number)
+{
+	if (number == 100100)
+	{
+		if (!Is_Building_Dead(Find_Object_By_Preset(1,"GDI_Ion_Control_Center")))
+		{
+			if (charging)
+			{
+				ready = true;
+				charging = false;
+				Create_2D_WAV_Sound_Team("gdi_ion_cannon_ready.wav",1);
+				Send_Message_Team(1,255,204,0,"Ion Cannon Ready.");
+			}
+		}
+	}
+	else if (number == 100101)
+	{
+		if (!Is_Building_Dead(Find_Object_By_Preset(1,"GDI_Ion_Control_Center")))
+		{
+			allowpoke = true; Commands->Enable_HUD_Pokable_Indicator(obj, true);
+		}
+	}
+}
+void tcw_Buy_Beacon_Ion::Poked(GameObject *obj, GameObject *poker)
+{
+	if (allowpoke)
+	{
+		if (Commands->Get_Player_Type(poker) == 1)
+		{
+			if (ready)
+			{
+				if (!ionholder)
+				{
+					ionholder = Commands->Get_ID(poker);
+					char ionguymsg[250];
+					sprintf(ionguymsg,"%s please select the Ion Cannon Target.",Get_Player_Name(Commands->Find_Object(ionholder)));
+					Send_Message_Team(1,255,204,0,ionguymsg);
+					Commands->Create_2D_WAV_Sound("gdi_ion_select_target.wav");
+					if (type == 1)//if the mapper decided to grant 10 sec beacons
+					{
+						Commands->Give_PowerUp(Commands->Find_Object(ionholder),"TCW_POW_Beacon_Nuke_10Sec",false);
+					}
+					else if (type == 2)//if the mapper decided to grant 60 sec beacons
+					{
+						Commands->Give_PowerUp(Commands->Find_Object(ionholder),"TCW_POW_Beacon_Nuke_60Sec",false);
+					}
+					Attach_Script_Once(Commands->Find_Object(ionholder),"tcw_I_Have_Ion_Cannon_Beacon","");
+				}
+			}
+		}
+		allowpoke = false; Commands->Enable_HUD_Pokable_Indicator(obj, false); Commands->Start_Timer(obj,this,10.0f,100101);//allow true set
+	}
+}
+void tcw_Buy_Beacon_Ion::Custom(GameObject *obj, int message, int param, GameObject *sender)
+{
+	if (message == 100100)//the ion building was destroyed
+	{
+		if (param == 1)
+		{
+			ready = false;		charging = false;		allowpoke = false;
+			if (ionholder)
+			{
+				Remove_Weapon(Commands->Find_Object(ionholder),"TCW_Weapon_IonCannon_10Sec");
+				Remove_Weapon(Commands->Find_Object(ionholder),"TCW_Weapon_IonCannon_60Sec");
+			}
+		}
+	}
+	else if (message == 100101)//the guy died or left game, whatever
+	{
+		if (param == 1)
+		{
+			if (!Is_Building_Dead(Find_Object_By_Preset(1,"GDI_Ion_Control_Center")))
+			{
+				if (ready)
+				{
+					ionholder = 0;
+					allowpoke = true; Commands->Enable_HUD_Pokable_Indicator(obj, true);
+				}
+			}
+		}
+	}
+	else if (message == 100102)//successful ion strike done
+	{
+		if (param == 1)
+		{
+			if (!Is_Building_Dead(Find_Object_By_Preset(1,"GDI_Ion_Control_Center")))
+			{
+				ready = false;
+				ionholder = 0;
+				charging = true; Commands->Start_Timer(obj,this,30.0f,100100);
+				allowpoke = true; Commands->Enable_HUD_Pokable_Indicator(obj, true);
+			}
+		}
+	}
+}
+
+void tcw_Spikemap_Get_CaptureGuy::Created(GameObject *obj)
+{
+	// This script is for buying a Engineer or Saboteur for free on maps that have only spikes
+	// It should be sticked on some pokable object
+	allowpoke = true; Commands->Enable_HUD_Pokable_Indicator(obj, true);
+	type = Get_Int_Parameter("Type");
+}
+void tcw_Spikemap_Get_CaptureGuy::Poked(GameObject *obj, GameObject *poker)
+{
+	if (allowpoke)
+	{
+		if (type == 0)
+		{
+			if (!Is_Building_Dead(Find_Building(0,BuildingConstants::TYPE_SOLDIER_FACTORY)))
+			{
+				if (Commands->Get_Player_Type(poker) == type)
+				{
+					if (Get_Object_Count(0,"TCW_Nod_Saboteur") < 1)
+					{
+						Change_Character(poker,"TCW_Nod_Saboteur");
+					}
+				}
+			}
+		}
+		else if (type == 1)
+		{
+			if (!Is_Building_Dead(Find_Building(1,BuildingConstants::TYPE_SOLDIER_FACTORY)))
+			{
+				if (Commands->Get_Player_Type(poker) == type)
+				{
+					if (Get_Object_Count(1,"TCW_GDI_Engineer") < 1)
+					{
+						Change_Character(poker,"TCW_GDI_Engineer");
+					}
+				}
+			}
+		}
+		allowpoke = false; Commands->Enable_HUD_Pokable_Indicator(obj, false); Commands->Start_Timer(obj,this,5.0f,100100);
+	}
+}
+void tcw_Spikemap_Get_CaptureGuy::Timer_Expired(GameObject *obj, int number)
+{
+	if (number == 100100)
+	{
+		allowpoke = true; Commands->Enable_HUD_Pokable_Indicator(obj, true);
+	}
+}
+void tcw_Spikemap_Get_CaptureGuy::Register_Auto_Save_Variables()
+{
+	Auto_Save_Variable(&allowpoke,sizeof(allowpoke),1);
+	Auto_Save_Variable(&type,sizeof(type),1);
+}
+
+void tcw_Death_Blowup_Building::Killed(GameObject *obj, GameObject *shooter)
+{
+	int type = Get_Int_Parameter("Type");
+	const char *building = Get_Parameter("Building_Name");
+	Commands->Apply_Damage(Find_Building_By_Name(type,building),99999.0f,"C4",shooter);
+}
+
+void tcw_zone_teleport_random_id::Created(GameObject *obj)
+{
+	targetid1 = Get_Int_Parameter("ID1");
+	targetid2 = Get_Int_Parameter("ID2");
+	targetid3 = Get_Int_Parameter("ID3");
+	tele = true;
+}
+void tcw_zone_teleport_random_id::Entered(GameObject *obj, GameObject *enter)
+{
+	if (tele)
+	{
+		if (!Get_Vehicle(enter))
+		{
+			tele = false; Commands->Start_Timer(obj,this,3.0f,100);
+			int random = Commands->Get_Random_Int(1,3);
+			if (random == 1)
+			{
+				GameObject *gotoObject;
+				gotoObject = Commands->Find_Object(targetid1);
+				Vector3 gotoLoc = Commands->Get_Position(gotoObject);
+				Commands->Set_Position(enter,gotoLoc);
+			}
+			else if (random == 2)
+			{
+				GameObject *gotoObject;
+				gotoObject = Commands->Find_Object(targetid2);
+				Vector3 gotoLoc = Commands->Get_Position(gotoObject);
+				Commands->Set_Position(enter,gotoLoc);
+			}
+			else if (random == 3)
+			{
+				GameObject *gotoObject;
+				gotoObject = Commands->Find_Object(targetid3);
+				Vector3 gotoLoc = Commands->Get_Position(gotoObject);
+				Commands->Set_Position(enter,gotoLoc);
+			}
+		}
+	}
+}
+void tcw_zone_teleport_random_id::Timer_Expired(GameObject *obj, int number)
+{
+	if (number == 100)
+	{
+		tele = true;
+	}
+}
+void tcw_zone_teleport_random_id::Register_Auto_Save_Variables()
+{
+	Auto_Save_Variable(&targetid1,sizeof(targetid1),1);
+	Auto_Save_Variable(&targetid2,sizeof(targetid1),2);
+	Auto_Save_Variable(&targetid3,sizeof(targetid1),3);
+	Auto_Save_Variable(&tele,sizeof(tele),4);
+}
+
+void tcw_dm_map_tech3::Created(GameObject *obj)//no limits
+{
+	//no limitations on map
+}
+void tcw_dm_map_tech2::Created(GameObject *obj)//no commando's
+{
+	Hide_Preset_By_Name(1,"TCW_GDI_Commando",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Commando_Low",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_Commando",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_Commando_Low",true);
+}
+void tcw_dm_map_tech1::Created(GameObject *obj)//no snipers, shadows and commando's
+{
+	Hide_Preset_By_Name(1,"TCW_GDI_Commando",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Commando_Low",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Sniper",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Sniper_Low",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_Commando",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_Commando_Low",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_Shadow",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_Shadow_Low",true);
+}
+
+void tcw_destroyed_send_custom::Destroyed(GameObject *obj)
+{
+	int msg = Get_Int_Parameter("Message");		int id = Get_Int_Parameter("SendID");	int prm = Get_Int_Parameter("Param");
+	Commands->Send_Custom_Event(obj,Commands->Find_Object(id),msg,prm,0);
+}
+
+void tcw_test::Created(GameObject *obj)
+{
+	Console_Input("msg script created");
+}
+
+
+ScriptRegistrant<tcw_test> tcw_test_Registrant("tcw_test","");
+ScriptRegistrant<tcw_destroyed_send_custom> tcw_destroyed_send_custom_Registrant("tcw_destroyed_send_custom","Message=1000:int,SendID=1000:int,Param=1:int");
+ScriptRegistrant<tcw_dm_map_tech1> tcw_dm_map_tech1_Registrant("tcw_dm_map_tech1","");
+ScriptRegistrant<tcw_dm_map_tech2> tcw_dm_map_tech2_Registrant("tcw_dm_map_tech2","");
+ScriptRegistrant<tcw_dm_map_tech3> tcw_dm_map_tech3_Registrant("tcw_dm_map_tech3","");
+ScriptRegistrant<tcw_zone_teleport_random_id> tcw_zone_teleport_random_id_Registrant("tcw_zone_teleport_random_id","ID1=1:int,ID2=2:int,ID3=3:int");
+ScriptRegistrant<tcw_Death_Blowup_Building> tcw_Death_Blowup_Building_Registrant("tcw_Death_Blowup_Building","Type=0:int,Building_Name=TCW:string");
+ScriptRegistrant<tcw_Spikemap_Get_CaptureGuy> tcw_Spikemap_Get_CaptureGuy_Registrant("tcw_Spikemap_Get_CaptureGuy","Type=0:int");
+ScriptRegistrant<tcw_Buy_Beacon_Ion> tcw_Buy_Beacon_Ion_Registrant("tcw_Buy_Beacon_Ion","Type=2:int");
+ScriptRegistrant<tcw_Enable_Refill> tcw_Enable_Refill_Registrant("tcw_Enable_Refill","");
+ScriptRegistrant<tcw_There_Must_Be_Engineer> tcw_There_Must_Be_Engineer_Registrant("tcw_There_Must_Be_Engineer","");
 ScriptRegistrant<tcw_Tiberium_Deposit_New> tcw_Tiberium_Deposit_New_Registrant("tcw_Tiberium_Deposit_New","");
 ScriptRegistrant<tcw_Tiberium_Harvester_New> tcw_Tiberium_Harvester_New_Registrant("tcw_Tiberium_Harvester_New","");
 ScriptRegistrant<tcw_Tiberium_Field_New> tcw_Tiberium_Field_New_Registrant("tcw_Tiberium_Field_New","Zonetype=0:int");
diff -uwr source/scripts/tcw_game.h 4.0/source/scripts/tcw_game.h
--- source/scripts/tcw_game.h	2011-08-29 08:56:56.000000000 +0800
+++ 4.0/source/scripts/tcw_game.h	2011-10-15 12:39:38.274414000 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -11,7 +11,7 @@
 	with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
+#pragma once
 
 class tcw_Tiberium_Harvester : public ScriptImpClass {
 	int driver;
@@ -122,3 +122,72 @@
 class tcw_Tiberium_Deposit_New : public ScriptImpClass {
 	void Entered(GameObject *obj, GameObject *enter);
 };
\ No newline at end of file
+
+class tcw_There_Must_Be_Engineer : public ScriptImpClass {
+	void Created(GameObject *obj);
+}; 
+
+class tcw_Enable_Refill : public ScriptImpClass {
+	void Created(GameObject *obj);
+}; 
+
+class tcw_Buy_Beacon_Ion : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Timer_Expired(GameObject *obj, int number);
+	void Poked(GameObject *obj, GameObject *poker);
+	void Custom(GameObject *obj, int message, int param, GameObject *sender);
+	public: void Register_Auto_Save_Variables();
+	bool charging;
+	bool ready;
+	bool allowpoke;
+	int ionholder;
+	int type;
+}; 
+
+class tcw_Spikemap_Get_CaptureGuy : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Poked(GameObject *obj, GameObject *poker);
+	void Timer_Expired(GameObject *obj, int number);
+	public: void Register_Auto_Save_Variables();
+	bool allowpoke;
+	int type;
+	int target;
+	int targetlow;
+}; 
+
+class tcw_Death_Blowup_Building : public ScriptImpClass {
+	void Killed(GameObject *obj, GameObject *shooter);
+}; 
+
+class tcw_zone_teleport_random_id : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Entered(GameObject *obj, GameObject *enter);
+	void Timer_Expired(GameObject *obj, int number);
+	public: void Register_Auto_Save_Variables();
+	int targetid1;
+	int targetid2;
+	int targetid3;
+	bool tele;
+}; 
+
+class tcw_dm_map_tech3 : public ScriptImpClass {
+	void Created(GameObject *obj);
+}; 
+class tcw_dm_map_tech2 : public ScriptImpClass {
+	void Created(GameObject *obj);
+}; 
+class tcw_dm_map_tech1 : public ScriptImpClass {
+	void Created(GameObject *obj);
+}; 
+
+class tcw_destroyed_send_custom : public ScriptImpClass {
+	void Destroyed(GameObject *obj);
+}; 
+
+class tcw_test : public ScriptImpClass {
+	void Created(GameObject *obj);
+}; 
+
+
+
+
diff -uwr source/scripts/tcw_player.cpp 4.0/source/scripts/tcw_player.cpp
--- source/scripts/tcw_player.cpp	2011-09-03 08:30:06.000000000 +0800
+++ 4.0/source/scripts/tcw_player.cpp	2011-10-15 12:39:38.266601500 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -15,17 +15,212 @@
 #include "scripts.h"
 #include "engine.h"
 #include "tcw_player.h"
+#ifdef SSGM
+#include "gmgame.h"
+#endif
 
 
-void tcw_Grant_Powerup_Created::Created(GameObject *obj)
+void tcw_Grant_Powerup_Created::Created(GameObject *obj)//with this script we can do to players what we want easily
 {
-	//with this script we can do to players what we want easily
-	int sniperlimit = 2;
+	map_low_grav = false;	map_dm_tech1 = false;	map_dm_tech2 = false;	map_dm_tech3 = false;	map_coop_gdi = false;	map_coop_nod = false;	
+	if (Find_Object_By_Preset(2,"TCW_Low_Grav_Map")) { map_low_grav = true; }
+	if (Find_Object_By_Preset(2,"TCW_DM_Tech1")) { map_dm_tech1 = true; }//no snipers, shadows and commando's
+	if (Find_Object_By_Preset(2,"TCW_DM_Tech2")) { map_dm_tech2 = true; }//no commando's
+	if (Find_Object_By_Preset(2,"TCW_DM_Tech3")) { map_dm_tech3 = true; }//no limitations
+	if (Find_Object_By_Preset(2,"TCW_Coop_Map_GDI")) { map_coop_gdi = true; }
+	if (Find_Object_By_Preset(2,"TCW_Coop_Map_Nod")) { map_coop_nod = true; }
+
+	if (map_coop_nod)
+	{
+		if (Commands->Get_Player_Type(obj) == 1)	{ Change_Team(obj,0); }
+	}
+	else if (map_coop_gdi)
+	{
+		if (Commands->Get_Player_Type(obj) == 0)	{ Change_Team(obj,1); }
+	}
+
+	if (map_dm_tech1)
+	{
+		int randomchargdi = Commands->Get_Random_Int(1,5);		int randomcharnod = Commands->Get_Random_Int(1,5);
+		if (map_low_grav)
+		{
+			if (Commands->Get_Player_Type(obj) == 1)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_GDI_Rifle_Squad_Low"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_GDI_Engineer_Low"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_GDI_Grenadier_Low"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_GDI_Missile_Squad_Low"); }
+					else								{ Change_Character(obj,"TCW_GDI_Zonetrooper_Low"); }
+				}
+			}
+			else if (Commands->Get_Player_Type(obj) == 0)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_0") == 0)
+				{
+					if (randomcharnod == 1)				{ Change_Character(obj,"TCW_Nod_Militant_Infantry_Low"); }
+					else if (randomcharnod == 2)		{ Change_Character(obj,"TCW_Black_Hand_Low"); }
+					else if (randomcharnod == 3)		{ Change_Character(obj,"TCW_Nod_RocketGuy_Low"); }
+					else if (randomcharnod == 4)		{ Change_Character(obj,"TCW_Nod_Saboteur_Low"); }
+					else								{ Change_Character(obj,"TCW_Nod_Militant_Infantry_Low"); }
+				}
+			}
+		}
+		else
+		{
+			if (Commands->Get_Player_Type(obj) == 1)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_GDI_Rifle_Squad"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_GDI_Engineer"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_GDI_Grenadier"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_GDI_Missile_Squad"); }
+					else								{ Change_Character(obj,"TCW_GDI_Zonetrooper"); }
+				}
+			}
+			else if (Commands->Get_Player_Type(obj) == 0)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_Nod_Militant_Infantry"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_Nod_Black_Hand_Flame"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_Nod_RocketGuy"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_Nod_Saboteur"); }
+					else								{ Change_Character(obj,"TCW_Nod_Militant_Infantry"); }
+				}
+			}
+		}
+	}
+	else if (map_dm_tech2)
+	{
+		int randomchargdi = Commands->Get_Random_Int(1,6);		int randomcharnod = Commands->Get_Random_Int(1,6);
+		if (map_low_grav)
+		{
+			if (Commands->Get_Player_Type(obj) == 1)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_GDI_Rifle_Squad_Low"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_GDI_Engineer_Low"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_GDI_Grenadier_Low"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_GDI_Missile_Squad_Low"); }
+					else if (randomchargdi == 5)		{ Change_Character(obj,"TCW_GDI_Sniper_Low"); }
+					else								{ Change_Character(obj,"TCW_GDI_Zonetrooper_Low"); }
+				}
+			}
+			else if (Commands->Get_Player_Type(obj) == 0)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_0") == 0)
+				{
+					if (randomcharnod == 1)				{ Change_Character(obj,"TCW_Nod_Militant_Infantry_Low"); }
+					else if (randomcharnod == 2)		{ Change_Character(obj,"TCW_Black_Hand_Low"); }
+					else if (randomcharnod == 3)		{ Change_Character(obj,"TCW_Nod_RocketGuy_Low"); }
+					else if (randomcharnod == 4)		{ Change_Character(obj,"TCW_Nod_Saboteur_Low"); }
+					else if (randomcharnod == 5)		{ Change_Character(obj,"TCW_Nod_Shadow_Low"); }
+					else								{ Change_Character(obj,"TCW_Nod_Militant_Infantry_Low"); }
+				}
+			}
+		}
+		else
+		{
+			if (Commands->Get_Player_Type(obj) == 1)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_GDI_Rifle_Squad"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_GDI_Engineer"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_GDI_Grenadier"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_GDI_Missile_Squad"); }
+					else if (randomchargdi == 5)		{ Change_Character(obj,"TCW_GDI_Sniper"); }
+					else								{ Change_Character(obj,"TCW_GDI_Zonetrooper"); }
+				}
+			}
+			else if (Commands->Get_Player_Type(obj) == 0)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_Nod_Militant_Infantry"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_Nod_Black_Hand_Flame"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_Nod_RocketGuy"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_Nod_Saboteur"); }
+					else if (randomchargdi == 5)		{ Change_Character(obj,"TCW_Nod_Shadow"); }
+					else								{ Change_Character(obj,"TCW_Nod_Militant_Infantry"); }
+				}
+			}
+		}
+	}
+	else if (map_dm_tech3)
+	{
+		int randomchargdi = Commands->Get_Random_Int(1,7);		int randomcharnod = Commands->Get_Random_Int(1,7);
+		if (map_low_grav)
+		{
+			if (Commands->Get_Player_Type(obj) == 1)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_GDI_Rifle_Squad_Low"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_GDI_Engineer_Low"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_GDI_Grenadier_Low"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_GDI_Missile_Squad_Low"); }
+					else if (randomchargdi == 5)		{ Change_Character(obj,"TCW_GDI_Sniper_Low"); }
+					else if (randomchargdi == 6)		{ Change_Character(obj,"TCW_GDI_Commando_Low"); }
+					else								{ Change_Character(obj,"TCW_GDI_Zonetrooper_Low"); }
+				}
+			}
+			else if (Commands->Get_Player_Type(obj) == 0)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_0") == 0)
+				{
+					if (randomcharnod == 1)				{ Change_Character(obj,"TCW_Nod_Militant_Infantry_Low"); }
+					else if (randomcharnod == 2)		{ Change_Character(obj,"TCW_Black_Hand_Low"); }
+					else if (randomcharnod == 3)		{ Change_Character(obj,"TCW_Nod_RocketGuy_Low"); }
+					else if (randomcharnod == 4)		{ Change_Character(obj,"TCW_Nod_Saboteur_Low"); }
+					else if (randomcharnod == 5)		{ Change_Character(obj,"TCW_Nod_Shadow_Low"); }
+					else if (randomcharnod == 6)		{ Change_Character(obj,"TCW_Nod_Commando_Low"); }
+					else								{ Change_Character(obj,"TCW_Nod_Militant_Infantry_Low"); }
+				}
+			}
+		}
+		else
+		{
+			if (Commands->Get_Player_Type(obj) == 1)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_GDI_Rifle_Squad"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_GDI_Engineer"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_GDI_Grenadier"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_GDI_Missile_Squad"); }
+					else if (randomchargdi == 5)		{ Change_Character(obj,"TCW_GDI_Sniper"); }
+					else if (randomchargdi == 6)		{ Change_Character(obj,"TCW_GDI_Commando"); }
+					else								{ Change_Character(obj,"TCW_GDI_Zonetrooper"); }
+				}
+			}
+			else if (Commands->Get_Player_Type(obj) == 0)
+			{
+				if (strcmp(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_0") == 0)
+				{
+					if (randomchargdi == 1)				{ Change_Character(obj,"TCW_Nod_Militant_Infantry"); }
+					else if (randomchargdi == 2)		{ Change_Character(obj,"TCW_Nod_Black_Hand_Flame"); }
+					else if (randomchargdi == 3)		{ Change_Character(obj,"TCW_Nod_RocketGuy"); }
+					else if (randomchargdi == 4)		{ Change_Character(obj,"TCW_Nod_Saboteur"); }
+					else if (randomchargdi == 5)		{ Change_Character(obj,"TCW_Nod_Shadow"); }
+					else if (randomchargdi == 6)		{ Change_Character(obj,"TCW_Nod_Commando"); }
+					else								{ Change_Character(obj,"TCW_Nod_Militant_Infantry"); }
+				}
+			}
+		}
+	}
+
+	Commands->Start_Timer(obj,this,1.5f,1003);//give MapCredits
 
 	upgrade_composit_armor_available = false;
 	if (Find_Object_By_Preset(2,"TCW_Tech_Composit_Armor_Available")) {	upgrade_composit_armor_available = true; }
 
-	int random = Commands->Get_Random_Int(1,3);//used by char purchase playsound
+	int sniperlimit = 2;
+
 	commandocurrpos.X = 0;	commandocurrpos.Y = 0;	commandocurrpos.Z = 0;
 	commandonewpos.X = 0;	commandonewpos.Y = 0;	commandonewpos.Z = 0;
 	revealed = false;
@@ -38,6 +233,12 @@
 		commandocurrpos = Commands->Get_Position(obj);
 		Commands->Start_Timer(obj,this,1.0f,1006);//check move enable stealth
 	}
+	else if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Sniper") == 0) || (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Sniper_Low") == 0) )
+	{
+		Commands->Enable_Stealth(obj,true);
+		commandocurrpos = Commands->Get_Position(obj);
+		Commands->Start_Timer(obj,this,1.0f,1006);//check move enable stealth
+	}
 
 	//grant weapon stuff when they spawn
 	const char *weapon1 = Get_Parameter("Weapon1");	const char *weapon2 = Get_Parameter("Weapon2");	const char *weapon3 = Get_Parameter("Weapon3");	const char *weapon4 = Get_Parameter("Weapon4");	const char *weapon5 = Get_Parameter("Weapon5");
@@ -47,26 +248,19 @@
 	if (_stricmp(weapon4,"0") != 0)	{ Commands->Give_PowerUp(obj,weapon4,false); }
 	if (_stricmp(weapon5,"0") != 0)	{ Commands->Give_PowerUp(obj,weapon5,false); }
 
-	//commandocheck
+	//unit purchase sounds
+	int random = Commands->Get_Random_Int(1,3);//used by char purchase playsound
 	if (Commands->Get_Player_Type(obj) == 1)
 	{
 		if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Commando") == 0) || (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Commando_Low") == 0) )
 		{
 			if ( (Get_Object_Count(1,"TCW_GDI_Commando") > 1) || (Get_Object_Count(1,"TCW_GDI_Commando_Low") > 1) )
 			{
-				if (Is_Base_Powered(1))
-				{
 					Commands->Give_Money(obj,2000.0f,false);
 					Change_Character(obj,"CnC_GDI_MiniGunner_0");
 				}
 				else
 				{
-					Commands->Give_Money(obj,4000.0f,false);
-					Change_Character(obj,"CnC_GDI_MiniGunner_0");
-				}
-			}
-			else
-			{
 				Create_2D_WAV_Sound_Team("nod_commandodetected.wav",0);
 				Send_Message_Team(0,255,0,0,"Warning, enemy commando detected.");
 
@@ -74,27 +268,32 @@
 				if (rnd == 1)
 				{
 					Create_2D_WAV_Sound_Team("purchase_gdi_commando_1.wav",1);
-					Send_Message_Team(1,255,204,0,"Got a present for ya.");
+					char player[250]; sprintf(player,"%s: Got a present for ya.",Get_Player_Name(obj));
+					Send_Message_Team(1,255,204,0,player);
 				}
 				else if (rnd == 2)
 				{
 					Create_2D_WAV_Sound_Team("purchase_gdi_commando_2.wav",1);
-					Send_Message_Team(1,255,204,0,"Okay boss let's hear the plan.");
+					char player[250]; sprintf(player,"%s: Okay boss let's hear the plan.",Get_Player_Name(obj));
+					Send_Message_Team(1,255,204,0,player);
 				}
 				else if (rnd == 3)
 				{
 					Create_2D_WAV_Sound_Team("purchase_gdi_commando_3.wav",1);
-					Send_Message_Team(1,255,204,0,"Let's get this party started.");
+					char player[250]; sprintf(player,"%s: Let's get this party started.",Get_Player_Name(obj));
+					Send_Message_Team(1,255,204,0,player);
 				}
 				else if (rnd == 4)
 				{
 					Create_2D_WAV_Sound_Team("purchase_gdi_commando_4.wav",1);
-					Send_Message_Team(1,255,204,0,"Didn't miss anything, did i?.");
+					char player[250]; sprintf(player,"%s: Didn't miss anything, did i?.",Get_Player_Name(obj));
+					Send_Message_Team(1,255,204,0,player);
 				}
 				else if (rnd == 5)
 				{
 					Create_2D_WAV_Sound_Team("purchase_gdi_commando_5.wav",1);
-					Send_Message_Team(1,255,204,0,"Let's load and lock and roll and rock.");
+					char player[250]; sprintf(player,"%s: Let's load and lock and roll and rock.",Get_Player_Name(obj));
+					Send_Message_Team(1,255,204,0,player);
 				}
 			}
 		}
@@ -104,17 +303,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_rifle_squad_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Keep your weapon ready.");
+				char player[250]; sprintf(player,"%s: Keep your weapon ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_rifle_squad_2.wav",1);
-				Send_Message_Team(1,255,204,0,"Rifle squad ready.");
+				char player[250]; sprintf(player,"%s: Rifle squad ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_rifle_squad_3.wav",1);
-				Send_Message_Team(1,255,204,0,"Rifleman awaiting orders.");
+				char player[250]; sprintf(player,"%s: Rifleman awaiting orders.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			if (upgrade_composit_armor_available)
 			{
@@ -127,17 +329,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_rifle_squad_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Keep your weapon ready.");
+				char player[250]; sprintf(player,"%s: Keep your weapon ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_rifle_squad_2.wav",1);
-				Send_Message_Team(1,255,204,0,"Rifle squad ready.");
+				char player[250]; sprintf(player,"%s: Rifle squad ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_rifle_squad_3.wav",1);
-				Send_Message_Team(1,255,204,0,"Rifleman awaiting orders.");
+				char player[250]; sprintf(player,"%s: Rifleman awaiting orders.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			if (upgrade_composit_armor_available)
 			{
@@ -150,17 +355,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_engineer_1.wav",1);
-				Send_Message_Team(1,255,204,0,"I got their codes.");
+				char player[250]; sprintf(player,"%s: I got their codes.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_engineer_2.wav",1);
-				Send_Message_Team(1,255,204,0,"Engineer clocking in.");
+				char player[250]; sprintf(player,"%s: Engineer clocking in.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_engineer_3.wav",1);
-				Send_Message_Team(1,255,204,0,"Engineer reporting in.");
+				char player[250]; sprintf(player,"%s: Engineer reporting in.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 		}
 		else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Grenadier") == 0)
@@ -168,17 +376,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_grenadier_1.wav",1);
-				Send_Message_Team(1,255,204,0,"They won't be coming back out.");
+				char player[250]; sprintf(player,"%s: They won't be coming back out.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_grenadier_2.wav",1);
-				Send_Message_Team(1,255,204,0,"Somebody call for some blasting?");
+				char player[250]; sprintf(player,"%s: Somebody call for some blasting?",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_grenadier_3.wav",1);
-				Send_Message_Team(1,255,204,0,"Grenade squad all ready.");
+				char player[250]; sprintf(player,"%s: Grenade squad all ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			if (upgrade_composit_armor_available)
 			{
@@ -190,17 +401,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_grenadier_1.wav",1);
-				Send_Message_Team(1,255,204,0,"They won't be coming back out.");
+				char player[250]; sprintf(player,"%s: They won't be coming back out.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_grenadier_2.wav",1);
-				Send_Message_Team(1,255,204,0,"Somebody call for some blasting?");
+				char player[250]; sprintf(player,"%s: Somebody call for some blasting?",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_grenadier_3.wav",1);
-				Send_Message_Team(1,255,204,0,"Grenade squad all ready.");
+				char player[250]; sprintf(player,"%s: Grenade squad all ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			if (upgrade_composit_armor_available)
 			{
@@ -208,24 +422,25 @@
 			}
 		}		
 
-
-
 		else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Missile_Squad") == 0)
 		{
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_missile_squad_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Launcher's ready.");
+				char player[250]; sprintf(player,"%s: Launcher's ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_missile_squad_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Launcher's ready.");
+				char player[250]; sprintf(player,"%s: Launcher's ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_missile_squad_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Launcher's ready.");
+				char player[250]; sprintf(player,"%s: Launcher's ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			if (upgrade_composit_armor_available)
 			{
@@ -237,17 +452,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_missile_squad_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Launcher's ready.");
+				char player[250]; sprintf(player,"%s: Launcher's ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_missile_squad_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Launcher's ready.");
+				char player[250]; sprintf(player,"%s: Launcher's ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_missile_squad_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Launcher's ready.");
+				char player[250]; sprintf(player,"%s: Launcher's ready.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			if (upgrade_composit_armor_available)
 			{
@@ -279,17 +497,20 @@
 				if (random == 1)
 				{
 					Create_2D_WAV_Sound_Team("purchase_gdi_sniper_1.wav",1);
-					Send_Message_Team(1,255,204,0,"Take 'em out one by one.");
+					char player[250]; sprintf(player,"%s: Take 'em out one by one.",Get_Player_Name(obj));
+					Send_Message_Team(1,255,204,0,player);
 				}
 				else if (random == 2)
 				{
 					Create_2D_WAV_Sound_Team("purchase_gdi_sniper_2.wav",1);
-					Send_Message_Team(1,255,204,0,"Sniper team ready.");
+					char player[250]; sprintf(player,"%s: Sniper team ready.",Get_Player_Name(obj));
+					Send_Message_Team(1,255,204,0,player);
 				}
 				else if (random == 3)
 				{
 					Create_2D_WAV_Sound_Team("purchase_gdi_sniper_3.wav",1);
-					Send_Message_Team(1,255,204,0,"Sniper team, where do you need us?");
+					char player[250]; sprintf(player,"%s: Sniper team, where do you need us?",Get_Player_Name(obj));
+					Send_Message_Team(1,255,204,0,player);
 				}
 			}
 		}
@@ -298,17 +519,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_zonetrooper_1.wav",1);
-				Send_Message_Team(1,255,204,0,"Keep 'em coming.");
+				char player[250]; sprintf(player,"%s: Keep 'em coming.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_zonetrooper_2.wav",1);
-				Send_Message_Team(1,255,204,0,"Troopers ready for action.");
+				char player[250]; sprintf(player,"%s: Troopers ready for action.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_gdi_zonetrooper_3.wav",1);
-				Send_Message_Team(1,255,204,0,"Troopers in the field.");
+				char player[250]; sprintf(player,"%s: Troopers in the field.",Get_Player_Name(obj));
+				Send_Message_Team(1,255,204,0,player);
 			}
 		}
 	}
@@ -329,17 +553,20 @@
 				if (random == 1)
 				{
 					Create_2D_WAV_Sound_Team("purchase_nod_commando_1.wav",0);
-					Send_Message_Team(0,255,0,0,"Nice day for a kill.");
+					char player[250]; sprintf(player,"%s: Nice day for a kill.",Get_Player_Name(obj));
+					Send_Message_Team(0,255,0,0,player);
 				}
 				else if (random == 2)
 				{
-					Create_2D_WAV_Sound_Team("purchase_nod_commando_1.wav",0);
-					Send_Message_Team(0,255,0,0,"Nice day for a kill.");
+					Create_2D_WAV_Sound_Team("purchase_nod_commando_2.wav",0);
+					char player[250]; sprintf(player,"%s: Ready for assignment.",Get_Player_Name(obj));
+					Send_Message_Team(0,255,0,0,player);
 				}
 				else if (random == 3)
 				{
 					Create_2D_WAV_Sound_Team("purchase_nod_commando_2.wav",0);
-					Send_Message_Team(0,255,0,0,"Ready for assignment.");
+					char player[250]; sprintf(player,"%s: Ready for assignment.",Get_Player_Name(obj));
+					Send_Message_Team(0,255,0,0,player);
 				}
 			}
 		}
@@ -348,17 +575,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_militant_squad_1.wav",0);
-				Send_Message_Team(0,255,0,0,"Rise up.");
+				char player[250]; sprintf(player,"%s: Rise up.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_militant_squad_2.wav",0);
-				Send_Message_Team(0,255,0,0,"The time has come warrior of Nod.");
+				char player[250]; sprintf(player,"%s: The time has come warrior of Nod.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_militant_squad_3.wav",0);
-				Send_Message_Team(0,255,0,0,"Fighters arm up.");
+				char player[250]; sprintf(player,"%s: Fighters arm up.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 		}
 		if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Black_Hand_Chem") == 0) || (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Black_Hand_Chem_Low") == 0) )
@@ -366,41 +596,48 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_blackhand_chem_1.wav",0);
-				Send_Message_Team(0,255,0,0,"Strenght in tiberium.");
+				char player[250]; sprintf(player,"%s: Strenght in tiberium.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_blackhand_chem_2.wav",0);
-				Send_Message_Team(0,255,0,0,"The Black Hand is in control.");
+				char player[250]; sprintf(player,"%s: The Black Hand is in control.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_blackhand_chem_3.wav",0);
-				Send_Message_Team(0,255,0,0,"The Black Hand has arrived.");
+				char player[250]; sprintf(player,"%s: The Black Hand has arrived.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 		}
-		if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Black_Hand_Flame") == 0) || (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Black_Hand_Flame_Low") == 0) )
+		if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Black_Hand_Flame") == 0) || (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Black_Hand_Low") == 0) )
 		{
 			int rnd = Commands->Get_Random_Int(1,4);
 			if (rnd == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_blackhand_flame_1.wav",0);
-				Send_Message_Team(0,255,0,0,"One mission. One purpose.");
+				char player[250]; sprintf(player,"%s: One mission. One purpose.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (rnd == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_blackhand_flame_2.wav",0);
-				Send_Message_Team(0,255,0,0,"Pure fire ready.");
+				char player[250]; sprintf(player,"%s: Pure fire ready.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (rnd == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_blackhand_flame_3.wav",0);
-				Send_Message_Team(0,255,0,0,"The flame shall purify.");
+				char player[250]; sprintf(player,"%s: The flame shall purify.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (rnd == 4)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_blackhand_flame_4.wav",0);
-				Send_Message_Team(0,255,0,0,"And then there was fire.");
+				char player[250]; sprintf(player,"%s: And then there was fire.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 		}
 		if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_RocketGuy") == 0) || (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_RocketGuy_Low") == 0) )
@@ -408,17 +645,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_militant_rocket_squad_1.wav",0);
-				Send_Message_Team(0,255,0,0,"If it moves: Kill it.");
+				char player[250]; sprintf(player,"%s: If it moves: Kill it.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_militant_rocket_squad_2.wav",0);
-				Send_Message_Team(0,255,0,0,"Rockets ready.");
+				char player[250]; sprintf(player,"%s: Rockets ready.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_militant_rocket_squad_3.wav",0);
-				Send_Message_Team(0,255,0,0,"We got the rockets.");
+				char player[250]; sprintf(player,"%s: We got the rockets.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 		}
 		if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Saboteur") == 0) || (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Saboteur_Low") == 0) )
@@ -426,17 +666,20 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_saboteur_1.wav",0);
-				Send_Message_Team(0,255,0,0,"The Brotherhood has entrusted me.");
+				char player[250]; sprintf(player,"%s: The Brotherhood has entrusted me.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_saboteur_2.wav",0);
-				Send_Message_Team(0,255,0,0,"Need help with anything?");
+				char player[250]; sprintf(player,"%s: Need help with anything?",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_saboteur_1.wav",0);
-				Send_Message_Team(0,255,0,0,"The Brotherhood has entrusted me.");
+				char player[250]; sprintf(player,"%s: The Brotherhood has entrusted me.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 		}
 		if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Shadow") == 0) || (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Shadow_Low") == 0) )
@@ -444,24 +687,34 @@
 			if (random == 1)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_shadow_1.wav",0);
-				Send_Message_Team(0,255,0,0,"Quietly.");
+				char player[250]; sprintf(player,"%s: Quietly.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 2)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_shadow_2.wav",0);
-				Send_Message_Team(0,255,0,0,"Shadow team at your command.");
+				char player[250]; sprintf(player,"%s: Shadow team at your command.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 			else if (random == 3)
 			{
 				Create_2D_WAV_Sound_Team("purchase_nod_shadow_2.wav",0);
-				Send_Message_Team(0,255,0,0,"Shadow team at your command.");
+				char player[250]; sprintf(player,"%s: Shadow team at your command.",Get_Player_Name(obj));
+				Send_Message_Team(0,255,0,0,player);
 			}
 		}
 	}
 }
 void tcw_Grant_Powerup_Created::Timer_Expired(GameObject *obj, int number)
 {
-	if (number == 1004)//enable stealth again after distance check 
+	if (number == 1003)
+	{
+/*#ifdef SSGM
+	float cmoney = Commands->Get_Money(obj);
+	if (cmoney < MapCredits) { Commands->Give_Money(obj,MapCredits-cmoney,false); } //give the spawn credits everytime they spawn
+#endif*/
+	}
+	else if (number == 1004)//enable stealth again after distance check 
 	{
 		Commands->Enable_Stealth(obj, true);
 		revealed = false;
@@ -470,7 +723,7 @@
 	{
 		playdetected = true;
 	}
-	else if (number == 1006)
+	else if (number == 1006)//used for stealthing Nod Commando and GDI Sniper
 	{
 		commandonewpos = Commands->Get_Position(obj);
 		float commandotraveldistance = Commands->Get_Distance(commandocurrpos,commandonewpos);
@@ -486,7 +739,6 @@
 			Commands->Start_Timer(obj,this,1.0f,1006);
 		}
 	}
-	//1007 used by TCW_Check_Beacon_Status
 }
 void tcw_Grant_Powerup_Created::Killed(GameObject *obj, GameObject *shooter)
 {
@@ -561,6 +813,8 @@
 	{ 
 		if (param == 1)
 		{
+			if (Commands->Get_Player_Type(sender) != Commands->Get_Player_Type(obj))
+			{
 			Vector3 mypos = Commands->Get_Position(obj);
 			Vector3 target = Commands->Get_Position(sender);
 			float distance = Commands->Get_Distance(mypos,target);
@@ -591,6 +845,7 @@
 			}
 		}
 	}
+	}
 	else if (message == 1005)//Tech Composit Armor Upgrade complete
 	{
 		if (param == 1)
@@ -615,6 +870,19 @@
 	Auto_Save_Variable(&playdetected,sizeof(playdetected),3);
 	Auto_Save_Variable(&commandocurrpos,sizeof(commandocurrpos),4);
 	Auto_Save_Variable(&commandonewpos,sizeof(commandonewpos),5);
+	Auto_Save_Variable(&map_low_grav,sizeof(map_low_grav),6);
+	Auto_Save_Variable(&map_dm_tech1,sizeof(map_dm_tech1),7);
+	Auto_Save_Variable(&map_dm_tech2,sizeof(map_dm_tech2),8);
+	Auto_Save_Variable(&map_dm_tech3,sizeof(map_dm_tech3),9);
+	Auto_Save_Variable(&map_coop_gdi,sizeof(map_coop_gdi),10);
+	Auto_Save_Variable(&map_coop_nod,sizeof(map_coop_nod),11);
 }
 
+void tcw_I_Have_Ion_Cannon_Beacon::Destroyed(GameObject *obj)
+{
+	Commands->Send_Custom_Event(obj,Find_Object_With_Script("tcw_Buy_Beacon_Ion"),100101,1,0);
+}
+
+
+ScriptRegistrant<tcw_I_Have_Ion_Cannon_Beacon> tcw_I_Have_Ion_Cannon_Beacon_Registrant("tcw_I_Have_Ion_Cannon_Beacon","");
 ScriptRegistrant<tcw_Grant_Powerup_Created> tcw_Grant_Powerup_Created_Registrant("tcw_Grant_Powerup_Created","Weapon1=TCW_POW_Knife:string,Weapon2=0:string,Weapon3=0:string,Weapon4=0:string,Weapon5=0:string");
\ No newline at end of file
diff -uwr source/scripts/tcw_player.h 4.0/source/scripts/tcw_player.h
--- source/scripts/tcw_player.h	2011-09-03 08:30:06.000000000 +0800
+++ 4.0/source/scripts/tcw_player.h	2011-10-15 12:39:38.271484300 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -11,16 +11,29 @@
 	with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
+
 class tcw_Grant_Powerup_Created : public ScriptImpClass {
 	void Created(GameObject *obj);
 	void Custom(GameObject *obj, int message, int param, GameObject *sender);
 	void Killed(GameObject *obj, GameObject *shooter);
 	public: void Register_Auto_Save_Variables();
+	bool isInitialized;
 	void Timer_Expired(GameObject *obj, int number);
 	int kills;
 	bool revealed;
 	bool playdetected;
 	bool upgrade_composit_armor_available;
+	bool map_low_grav;
+	bool map_dm_tech1;
+	bool map_dm_tech2;
+	bool map_dm_tech3;
+	bool map_coop_gdi;
+	bool map_coop_nod;
 	Vector3 commandocurrpos;
 	Vector3 commandonewpos;
 };
+
+class tcw_I_Have_Ion_Cannon_Beacon : public ScriptImpClass {
+	void Destroyed(GameObject *obj);
+};
\ No newline at end of file
diff -uwr source/scripts/tcw_powerup.cpp 4.0/source/scripts/tcw_powerup.cpp
--- source/scripts/tcw_powerup.cpp	2011-08-16 08:01:10.000000000 +0800
+++ 4.0/source/scripts/tcw_powerup.cpp	2011-10-14 22:25:11.421875000 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -152,5 +152,4 @@
 }
 
 
-
 ScriptRegistrant<tcw_POW_PickupSounds> tcw_POW_PickupSounds_Registrant("tcw_POW_PickupSounds","");
\ No newline at end of file
diff -uwr source/scripts/tcw_powerup.h 4.0/source/scripts/tcw_powerup.h
--- source/scripts/tcw_powerup.h	2011-08-16 08:01:10.000000000 +0800
+++ 4.0/source/scripts/tcw_powerup.h	2011-10-14 22:27:32.081054600 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -11,6 +11,7 @@
 	with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class tcw_POW_PickupSounds : public ScriptImpClass {
 	void Custom(GameObject *obj, int message, int param, GameObject *sender);
diff -uwr source/scripts/tcw_readme.txt 4.0/source/scripts/tcw_readme.txt
--- source/scripts/tcw_readme.txt	2011-09-03 08:30:06.000000000 +0800
+++ 4.0/source/scripts/tcw_readme.txt	2011-10-14 22:25:11.410156200 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
diff -uwr source/scripts/tcw_technology.cpp 4.0/source/scripts/tcw_technology.cpp
--- source/scripts/tcw_technology.cpp	2011-08-16 08:01:10.000000000 +0800
+++ 4.0/source/scripts/tcw_technology.cpp	2011-10-14 22:25:11.492187500 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -22,7 +22,7 @@
 	allowpokegdi = true;
 	researching_composit_armor_upgrade = false;
 	researched_composit_armor_upgrade = false;
-	research_composit_armor_cost = 6000.0f;
+	research_composit_armor_cost = 2000.0f;
 	research_composit_armor_fund = 0.0f;
 }
 void tcw_Research_Composit_Armor::Poked(GameObject *obj, GameObject *poker)
@@ -31,26 +31,26 @@
 	{
 		if (Commands->Get_Player_Type(poker) == 1)
 		{
-			if (!Is_Building_Dead(Find_Building_By_Name(1,"TCW_GDI_Armory")))
+			if (!Is_Building_Dead(Find_Building_By_Name(1,"TCW_GDI_Armory_Building")))
 			{
 				if (!researching_composit_armor_upgrade)
 				{
 					if (!researched_composit_armor_upgrade)
 					{
-						if (research_composit_armor_fund < 6000.0f)
+						if (research_composit_armor_fund < 2000.0f)
 						{
-							if (Commands->Get_Money(poker) >= 500.0f)
+							if (Commands->Get_Money(poker) >= 250.0f)
 							{
-								research_composit_armor_fund += 500.0f;
-								Commands->Give_Money(poker,-500.0f,false);
+								research_composit_armor_fund += 250.0f;
+								Commands->Give_Money(poker,-250.0f,false);
 								char addedfunds[250];
-								sprintf(addedfunds,"%s added $500 to the Composite Armor Upgrade. Current Funds: %g/%g",Get_Player_Name(poker),research_composit_armor_fund,research_composit_armor_cost);
+								sprintf(addedfunds,"%s added $250 to the Composite Armor Upgrade. Current Funds: %g/%g",Get_Player_Name(poker),research_composit_armor_fund,research_composit_armor_cost);
 								Send_Message_Team(1,255,204,0,addedfunds);
 								
-								if (research_composit_armor_fund == 6000.0f)
+								if (research_composit_armor_fund == 2000.0f)
 								{
 									researching_composit_armor_upgrade = true;
-									Commands->Start_Timer(obj,this,60.0f,10001);
+									Commands->Start_Timer(obj,this,20.0f,10001);
 									Create_2D_WAV_Sound_Team("gdi_tech_upgrade_in_progress.wav",1);
 									Send_Message_Team(1,255,204,0,"Upgrade in progress: Composite Armor.");
 									allowpokegdi = false;
@@ -87,7 +87,7 @@
 {
 	if (number == 10001)
 	{
-		if (!Is_Building_Dead(Find_Building_By_Name(1,"TCW_GDI_Armory")))
+		if (!Is_Building_Dead(Find_Building_By_Name(1,"TCW_GDI_Armory_Building")))
 		{
 			Vector3 pos; pos.Z = 999.0f; pos.Y = 999.0f; pos.X = 999.0f;
 			GameObject *compositarmor = Commands->Create_Object("TCW_Tech_Composit_Armor_Available",pos);
@@ -124,4 +124,165 @@
 	Auto_Save_Variable(&allowpokegdi,sizeof(allowpokegdi),5);
 }
 
+void tcw_hide_show_tech::Created(GameObject *obj)
+{
+	//gdi wf steal-able tech:
+	Hide_Preset_By_Name(0,"TCW_Nod_Predator_Tank",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_Pitbull",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_GDI_Harvester_Player",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_APC",true);
+	Hide_Preset_By_Name(0,"TCW_Nod_Mammoth_Tank",true);
+
+	//nod wf steal-able tech:
+	Hide_Preset_By_Name(1,"TCW_GDI_Attack_Bike",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Flame_Tank",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Nod_Harvester_Player",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Raider_Buggy",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Scorpion_Tank",true);
+	Hide_Preset_By_Name(1,"TCW_GDI_Stealth_Tank",true);
+}
+
+
+////Start tech stealing zones
+
+void tcw_steal_tech_zone_gwf::Entered(GameObject *obj, GameObject *enter)
+{
+	if (!Is_Building_Dead(Find_Building_By_Name(1,"TCW_GDI_War_Factory")))
+	{
+		if (Commands->Is_A_Star(enter))
+		{
+			if ( (strcmp(Commands->Get_Preset_Name(enter),"TCW_Nod_Saboteur") == 0) || (strcmp(Commands->Get_Preset_Name(enter),"TCW_Nod_Saboteur_Low") == 0) )
+			{
+				if (!Get_Vehicle(enter))
+				{
+					Attach_Script_Once(enter,"tcw_i_am_stealing_tech","1");
+				}
+			}
+		}
+	}
+}
+void tcw_steal_tech_zone_gwf::Exited(GameObject *obj, GameObject *exit)
+{
+	if (Commands->Is_A_Star(exit))
+	{
+		if ( (strcmp(Commands->Get_Preset_Name(exit),"TCW_Nod_Saboteur") == 0) || (strcmp(Commands->Get_Preset_Name(exit),"TCW_Nod_Saboteur_Low") == 0) )
+		{
+			Remove_Script(exit,"tcw_i_am_stealing_tech");
+		}
+	}
+}
+
+void tcw_steal_tech_zone_nwf::Entered(GameObject *obj, GameObject *enter)
+{
+	if (!Is_Building_Dead(Find_Building_By_Name(1,"TCW_Nod_War_Factory")))
+	{
+		if (Commands->Is_A_Star(enter))
+		{
+			if ( (strcmp(Commands->Get_Preset_Name(enter),"TCW_GDI_Engineer") == 0) || (strcmp(Commands->Get_Preset_Name(enter),"TCW_GDI_Engineer_Low") == 0) )
+			{
+				if (!Get_Vehicle(enter))
+				{
+					Attach_Script_Once(enter,"tcw_i_am_stealing_tech","2");
+				}
+			}
+		}
+	}
+}
+void tcw_steal_tech_zone_nwf::Exited(GameObject *obj, GameObject *exit)
+{
+	if (Commands->Is_A_Star(exit))
+	{
+		if ( (strcmp(Commands->Get_Preset_Name(exit),"TCW_GDI_Engineer") == 0) || (strcmp(Commands->Get_Preset_Name(exit),"TCW_GDI_Engineer_Low") == 0) )
+		{
+			Remove_Script(exit,"tcw_i_am_stealing_tech");
+		}
+	}
+}
+
+////End tech stealing zones
+
+void tcw_i_am_stealing_tech::Created(GameObject *obj)
+{
+	int building = Get_Int_Parameter("Building");
+	if (building == 1)//nod stealing gdi wf
+	{
+		Commands->Start_Timer(obj,this,15.0f,779901);//start stealing from the gdi wf
+		char stealermsg[250];
+		sprintf(stealermsg,"%s is stealing technology from the GDI War Factory.",Get_Player_Name(obj));
+		Send_Message_Team(0,255,0,0,stealermsg);
+		Create_2D_WAV_Sound_Team("building_capture.wav",0);
+	}
+	else if (building == 2)//gdi stealing nod wf
+	{
+		Commands->Start_Timer(obj,this,15.0f,779902);//start stealing from the gdi wf
+		char stealermsg[250];
+		sprintf(stealermsg,"%s is stealing technology from the Nod Weapons Factory.",Get_Player_Name(obj));
+		Send_Message_Team(1,255,204,0,stealermsg);
+		Create_2D_WAV_Sound_Team("building_capture.wav",1);
+	}
+}
+void tcw_i_am_stealing_tech::Timer_Expired(GameObject *obj, int number)
+{
+	if (number == 779901)//nod stole tech from gdi wf
+	{
+		if (Get_Total_Bullets(obj,"TCW_Weapon_Repairgun_Advanced") == 5)//full repairgun = successful stealing
+		{
+			Commands->Select_Weapon(obj,"TCW_Weapon_Pistol");
+			Remove_Weapon(obj,"TCW_Weapon_Repairgun_Advanced");
+					
+			Hide_Preset_By_Name(0,"TCW_Nod_Predator_Tank",false);
+			Hide_Preset_By_Name(0,"TCW_Nod_Pitbull",false);
+			Hide_Preset_By_Name(0,"TCW_Nod_GDI_Harvester_Player",false);
+			Hide_Preset_By_Name(0,"TCW_Nod_APC",false);
+			Hide_Preset_By_Name(0,"TCW_Nod_Mammoth_Tank",false);
+
+			char stealmsg[250];
+			sprintf(stealmsg,"%s has stolen technology from the GDI War Factory",Get_Player_Name(obj));
+			Send_Message_Team(0,255,0,0,stealmsg);
+			Send_Message_Team(0,255,0,0,"New technology acquired.");
+			Create_2D_WAV_Sound_Team("nod_new_tech_acquired.wav",0);
+		}
+		else
+		{
+			Send_Message_Player(obj,255,0,0,"To steal technology you need a FULL AMMO Repair Gun.");
+			Destroy_Script();
+		}
+	}
+
+	if (number == 779902)//gdi stole tech from nod wf
+	{
+		if (Get_Total_Bullets(obj,"TCW_Weapon_Repairgun_Advanced") == 5)//full repairgun = successful stealing
+		{
+			Commands->Select_Weapon(obj,"TCW_Weapon_Pistol");
+			Remove_Weapon(obj,"TCW_Weapon_Repairgun_Advanced");
+					
+			Hide_Preset_By_Name(1,"TCW_GDI_Attack_Bike",false);
+			Hide_Preset_By_Name(1,"TCW_GDI_Flame_Tank",false);
+			Hide_Preset_By_Name(1,"TCW_GDI_Nod_Harvester_Player",false);
+			Hide_Preset_By_Name(1,"TCW_GDI_Raider_Buggy",false);
+			Hide_Preset_By_Name(1,"TCW_GDI_Scorpion_Tank",false);
+			Hide_Preset_By_Name(1,"TCW_GDI_Stealth_Tank",false);
+
+			char stealmsg[250];
+			sprintf(stealmsg,"%s has stolen technology from the Nod Weapons Factory",Get_Player_Name(obj));
+			Send_Message_Team(1,255,204,0,stealmsg);
+			Send_Message_Team(1,255,204,0,"New technology acquired.");
+			Create_2D_WAV_Sound_Team("gdi_new_tech_acquired.wav",1);
+		}
+		else
+		{
+			Send_Message_Player(obj,255,204,0,"To steal technology you need a FULL AMMO Repair Gun.");
+			Destroy_Script();
+		}
+	}
+}
+
+
+ScriptRegistrant<tcw_steal_tech_zone_nwf> tcw_steal_tech_zone_nwf_Registrant("tcw_steal_tech_zone_nwf","");
+ScriptRegistrant<tcw_steal_tech_zone_gwf> tcw_steal_tech_zone_gwf_Registrant("tcw_steal_tech_zone_gwf","");
+ScriptRegistrant<tcw_i_am_stealing_tech> tcw_i_am_stealing_tech_Registrant("tcw_i_am_stealing_tech","Building=1:int");
+ScriptRegistrant<tcw_hide_show_tech> tcw_hide_show_tech_Registrant("tcw_hide_show_tech","");
 ScriptRegistrant<tcw_Research_Composit_Armor> tcw_Research_Composit_Armor_Registrant("tcw_Research_Composit_Armor","");
\ No newline at end of file
+
+
+
diff -uwr source/scripts/tcw_technology.h 4.0/source/scripts/tcw_technology.h
--- source/scripts/tcw_technology.h	2011-08-16 08:01:10.000000000 +0800
+++ 4.0/source/scripts/tcw_technology.h	2011-10-14 22:27:32.105468700 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -11,6 +11,7 @@
 	with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class tcw_Research_Composit_Armor : public ScriptImpClass {
 	void Created(GameObject *obj);
@@ -24,3 +25,23 @@
 	float research_composit_armor_fund;
 };
 
+class tcw_hide_show_tech : public ScriptImpClass {
+	void Created(GameObject *obj);
+};
+
+
+class tcw_steal_tech_zone_gwf : public ScriptImpClass {
+	void Entered(GameObject *obj, GameObject *enter);
+	void Exited(GameObject *obj, GameObject *exit);
+};
+
+class tcw_steal_tech_zone_nwf : public ScriptImpClass {
+	void Entered(GameObject *obj, GameObject *enter);
+	void Exited(GameObject *obj, GameObject *exit);
+};
+
+
+class tcw_i_am_stealing_tech : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Timer_Expired(GameObject *obj, int number);
+};
\ No newline at end of file
diff -uwr source/scripts/tcw_vehicle.cpp 4.0/source/scripts/tcw_vehicle.cpp
--- source/scripts/tcw_vehicle.cpp	2011-09-03 08:30:06.000000000 +0800
+++ 4.0/source/scripts/tcw_vehicle.cpp	2011-10-14 22:25:11.452148400 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -42,6 +42,24 @@
 			Send_Message_Team(1,255,204,0,"APC ready for combat.");
 		}
 	}
+	if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_APC") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_apc_1.wav",0);
+			Send_Message_Team(0,255,0,0,"APC ready for combat.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_apc_2.wav",0);
+			Send_Message_Team(0,255,0,0,"APC what's the plan.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_apc_1.wav",0);
+			Send_Message_Team(0,255,0,0,"APC ready for combat.");
+		}
+	}
 	else if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Harvester") == 0) || (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Harvester_Player") == 0) )
 	{
 		if (random == 1)
@@ -60,6 +78,24 @@
 			Send_Message_Team(1,255,204,0,"I'm ready to go, which way is the tiberium?");
 		}
 	}
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_GDI_Harvester_Player") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_harvester_1.wav",0);
+			Send_Message_Team(0,255,0,0,"Let's get to that tib-zone.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_harvester_1.wav",0);
+			Send_Message_Team(0,255,0,0,"Let's get to that tib-zone.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_harvester_2.wav",0);
+			Send_Message_Team(0,255,0,0,"I'm ready to go, which way is the tiberium?");
+		}
+	}
 	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Juggernaut") == 0)
 	{
 		if (random == 1)
@@ -97,6 +133,24 @@
 		}
 		Commands->Start_Timer(obj,this,1.0f,1008);//railgun tech check
 	}
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Mammoth_Tank") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_mammoth_1.wav",0);
+			Send_Message_Team(0,255,0,0,"Mammoth Tank waiting orders.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_mammoth_2.wav",0);
+			Send_Message_Team(0,255,0,0,"Mammoth Tank ready.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_mammoth_3.wav",0);
+			Send_Message_Team(0,255,0,0,"Mammoth Tank assembled.");
+		}
+	}
 	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Pitbull") == 0)
 	{
 		if (random == 1)
@@ -115,22 +169,22 @@
 			Send_Message_Team(1,255,204,0,"Pitbull looking for some action.");
 		}
 	}
-	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Predator_Tank") == 0)
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Pitbull") == 0)
 	{
 		if (random == 1)
 		{
-			Create_2D_WAV_Sound_Team("purchase_gdi_predator_1.wav",1);
-			Send_Message_Team(1,255,204,0,"Predator rolling out.");
+			Create_2D_WAV_Sound_Team("purchase_gdi_pitbull_1.wav",0);
+			Send_Message_Team(0,255,0,0,"Pitbull ready for action.");
 		}
 		else if (random == 2)
 		{
-			Create_2D_WAV_Sound_Team("purchase_gdi_predator_1.wav",1);
-			Send_Message_Team(1,255,204,0,"Predator rolling out.");
+			Create_2D_WAV_Sound_Team("purchase_gdi_pitbull_1.wav",0);
+			Send_Message_Team(0,255,0,0,"Pitbull ready for action.");
 		}
 		else if (random == 3)
 		{
-			Create_2D_WAV_Sound_Team("purchase_gdi_predator_2.wav",1);
-			Send_Message_Team(1,255,204,0,"Predator crew ready to roll.");
+			Create_2D_WAV_Sound_Team("purchase_gdi_pitbull_2.wav",0);
+			Send_Message_Team(0,255,0,0,"Pitbull looking for some action.");
 		}
 	}
 	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Predator_Tank") == 0)
@@ -151,7 +205,24 @@
 			Send_Message_Team(1,255,204,0,"Predator crew ready to roll.");
 		}
 	}
-
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Predator_Tank") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_predator_1.wav",0);
+			Send_Message_Team(0,255,0,0,"Predator rolling out.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_predator_1.wav",0);
+			Send_Message_Team(0,255,0,0,"Predator rolling out.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_gdi_predator_2.wav",0);
+			Send_Message_Team(0,255,0,0,"Predator crew ready to roll.");
+		}
+	}
 	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Attack_Bike") == 0)
 	{
 		if (random == 1)
@@ -170,6 +241,24 @@
 			Send_Message_Team(0,255,0,0,"Let's go for a hunt.");
 		}
 	}
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Attack_Bike") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_attackbike_1.wav",1);
+			Send_Message_Team(1,255,204,0,"This bike's ready.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_attackbike_2.wav",1);
+			Send_Message_Team(1,255,204,0,"Let's go for a hunt.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_attackbike_2.wav",1);
+			Send_Message_Team(1,255,204,0,"Let's go for a hunt.");
+		}
+	}
 	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Raider_Buggy") == 0)
 	{
 		if (random == 1)
@@ -188,6 +277,24 @@
 			Send_Message_Team(0,255,0,0,"Let's go on a raid.");
 		}
 	}
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Raider_Buggy") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_raider_buggy_1.wav",1);
+			Send_Message_Team(1,255,204,0,"Raider here.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_raider_buggy_1.wav",1);
+			Send_Message_Team(1,255,204,0,"Raider here.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_raider_buggy_2.wav",1);
+			Send_Message_Team(1,255,204,0,"Let's go on a raid.");
+		}
+	}
 	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Scorpion_Tank") == 0)
 	{
 		if (random == 1)
@@ -206,6 +313,24 @@
 			Send_Message_Team(0,255,0,0,"Scorpion ready for battle.");
 		}
 	}
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Scorpion_Tank") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_scorpion_1.wav",1);
+			Send_Message_Team(1,255,204,0,"The scorpion's ready.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_scorpion_2.wav",1);
+			Send_Message_Team(1,255,204,0,"Scorpion ready for battle.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_scorpion_2.wav",1);
+			Send_Message_Team(1,255,204,0,"Scorpion ready for battle.");
+		}
+	}
 	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Stealth_Tank") == 0)
 	{
 		if (random == 1)
@@ -224,6 +349,24 @@
 			Send_Message_Team(0,255,0,0,"Stealth tank clear for combat.");
 		}
 	}
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Stealth_Tank") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_stealth_tank_1.wav",1);
+			Send_Message_Team(1,255,204,0,"Stealth tank clear for combat.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_stealth_tank_1.wav",1);
+			Send_Message_Team(1,255,204,0,"Stealth tank clear for combat.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_stealth_tank_1.wav",1);
+			Send_Message_Team(1,255,204,0,"Stealth tank clear for combat.");
+		}
+	}
 	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Flame_Tank") == 0)
 	{
 		if (random == 1)
@@ -242,6 +385,24 @@
 			Send_Message_Team(0,255,0,0,"Do not toy with the power of the flame.");
 		}
 	}
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Flame_Tank") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_flame_tank_1.wav",1);
+			Send_Message_Team(1,255,204,0,"The flames will rise.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_flame_tank_1.wav",1);
+			Send_Message_Team(1,255,204,0,"The flames will rise.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_flame_tank_2.wav",1);
+			Send_Message_Team(1,255,204,0,"Do not toy with the power of the flame.");
+		}
+	}
 	else if ( (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester") == 0) || 
 			  (_stricmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester_Player") == 0) )
 	{
@@ -261,6 +422,24 @@
 			Send_Message_Team(0,255,0,0,"Tiberium is power.");
 		}
 	}
+	else if (_stricmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Nod_Harvester_Player") == 0)
+	{
+		if (random == 1)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_harvester_1.wav",1);
+			Send_Message_Team(1,255,204,0,"It is time for a harvest.");
+		}
+		else if (random == 2)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_harvester_1.wav",1);
+			Send_Message_Team(1,255,204,0,"It is time for a harvest.");
+		}
+		else if (random == 3)
+		{
+			Create_2D_WAV_Sound_Team("purchase_nod_harvester_2.wav",1);
+			Send_Message_Team(1,255,204,0,"Tiberium is power.");
+		}
+	}
 }
 void tcw_vehicle::Custom(GameObject *obj, int message, int param, GameObject *sender)
 {
@@ -271,18 +450,15 @@
 		{
 			Commands->Start_Timer(obj,this,0.5f,100100);
 		}
-		if (Commands->Get_Player_Type(obj) == 1)
-		{
-			if (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Pitbull") == 0)
+		if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Pitbull") == 0) || (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Pitbull") == 0) )
 			{
 				Commands->Start_Timer(obj,this,5.0f,1004);
 				triggerstealthdetection = true;
 			}
 		}
-	}
 	else if (message == CUSTOM_EVENT_VEHICLE_EXITED)
 	{
-		if (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Pitbull") == 0)
+		if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Pitbull") == 0) || (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Pitbull") == 0) )
 		{
 			triggerstealthdetection = false;
 		}
@@ -336,11 +512,17 @@
 		Send_Custom_Event_To_Object(obj,"TCW_Nod_Shadow",1004,1,0);
 		Send_Custom_Event_To_Object(obj,"TCW_Nod_Shadow_Low",1004,1,0);
 		Send_Custom_Event_To_Object(obj,"TCW_Nod_Stealth_Tank",1004,1,0);
-		Send_Custom_Event_To_Object(obj,"TCW_Nod_Harvester_Player",1004,1,0);
+		Send_Custom_Event_To_Object(obj,"TCW_GDI_Stealth_Tank",1004,1,0);
 		Send_Custom_Event_To_Object(obj,"TCW_Nod_Harvester",1004,1,0);
+		Send_Custom_Event_To_Object(obj,"TCW_Nod_Harvester_Player",1004,1,0);
+		Send_Custom_Event_To_Object(obj,"TCW_GDI_Nod_Harvester_Player",1004,1,0);
+		Send_Custom_Event_To_Object(obj,"TCW_GDI_Sniper",1004,1,0);
+		Send_Custom_Event_To_Object(obj,"TCW_GDI_Sniper_Low",1004,1,0);
+		Send_Custom_Event_To_Object(obj,"TCW_Nod_Commando",1004,1,0);
+		Send_Custom_Event_To_Object(obj,"TCW_Nod_Commando_Low",1004,1,0);
 		if (triggerstealthdetection)
 		{
-			if (Commands->Get_Player_Type(obj) == 1)
+			if ( (Commands->Get_Player_Type(obj) == 0) || (Commands->Get_Player_Type(obj) == 1) )
 			{
 				Commands->Start_Timer(obj,this,5.0f,1004);
 			}
@@ -380,7 +562,8 @@
 	if (Commands->Get_Player_Type(obj) == 0)
 	{
 		if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester") == 0) || 
-			 (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester_Player") == 0) )
+			 (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester_Player") == 0) || 
+			 (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_GDI_Harvester_Player") == 0) )
 		{
 			Create_2D_WAV_Sound_Team("nod_harvester_lost.wav",0);
 			Send_Message_Team(0,255,0,0,"Harvester lost.");
@@ -394,7 +577,8 @@
 	else if (Commands->Get_Player_Type(obj) == 1)
 	{
 		if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Harvester") == 0) || 
-			 (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Harvester_Player") == 0) )
+			 (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Harvester_Player") == 0) || 
+			 (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Nod_Harvester_Player") == 0) )
 		{
 			Create_2D_WAV_Sound_Team("gdi_harvester_lost.wav",1);
 			Send_Message_Team(1,255,204,0,"Harvester lost.");
@@ -409,7 +593,8 @@
 void tcw_vehicle::Damaged(GameObject *obj, GameObject *damager, float damage)
 {
 	if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Harvester") == 0) || 
-		 (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Harvester_Player") == 0) )
+		 (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Harvester_Player") == 0) || 
+		 (strcmp(Commands->Get_Preset_Name(obj),"TCW_GDI_Nod_Harvester_Player") == 0) )
 	{
 		if (playdamage)
 		{
@@ -423,7 +608,8 @@
 		}
 	}
 	else if ( (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester") == 0) || 
-			  (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester_Player") == 0) )
+			  (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_Harvester_Player") == 0)  || 
+			  (strcmp(Commands->Get_Preset_Name(obj),"TCW_Nod_GDI_Harvester_Player") == 0) )
 	{
 		if (playdamage)
 		{
@@ -445,5 +631,32 @@
 	Auto_Save_Variable(&playdamage,sizeof(playdamage),4);
 }
 
+void tcw_vehexit_killtimer::Created(GameObject *obj)
+{
+	timerid = Commands->Get_ID(obj);
+}
+void tcw_vehexit_killtimer::Custom(GameObject *obj, int message, int param, GameObject *sender)
+{
+	if (message == CUSTOM_EVENT_VEHICLE_EXITED)
+	{
+		Commands->Start_Timer(obj,this,60.0f,Commands->Get_ID(obj));
+	}
+}
+void tcw_vehexit_killtimer::Timer_Expired(GameObject *obj, int number)
+{
+	if (number == timerid)
+	{
+		if (!Get_Vehicle_Driver(obj))
+		{
+			Commands->Destroy_Object(obj);
+		}
+	}
+}
+void tcw_vehexit_killtimer::Register_Auto_Save_Variables()
+{
+	Auto_Save_Variable(&timerid,sizeof(timerid),1);
+}
+
 
+ScriptRegistrant<tcw_vehexit_killtimer> tcw_vehexit_killtimer_Registrant("tcw_vehexit_killtimer","");
 ScriptRegistrant<tcw_vehicle> tcw_vehicle_Registrant("tcw_vehicle","");
\ No newline at end of file
diff -uwr source/scripts/tcw_vehicle.h 4.0/source/scripts/tcw_vehicle.h
--- source/scripts/tcw_vehicle.h	2011-08-16 08:01:10.000000000 +0800
+++ 4.0/source/scripts/tcw_vehicle.h	2011-10-15 12:39:38.283203100 +0800
@@ -1,6 +1,6 @@
 /*	Renegade Scripts.dll
 	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011-2012 MP-Gaming
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it 
@@ -11,7 +11,7 @@
 	with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
+#pragma once
 
 class tcw_vehicle : public ScriptImpClass {
 	void Created(GameObject *obj);
@@ -27,3 +27,10 @@
 	bool is_railgun_available;
 };
 
+class tcw_vehexit_killtimer : public ScriptImpClass {
+	void Created(GameObject *obj);
+	void Custom(GameObject *obj, int message, int param, GameObject *sender);
+	void Timer_Expired(GameObject *obj, int number);
+	public: void Register_Auto_Save_Variables();
+	int timerid;
+};
Only in 4.0/source/scripts: tcw_zone.cpp
Only in 4.0/source/scripts: tcw_zone.h
diff -uwr source/scripts/tda.cpp 4.0/source/scripts/tda.cpp
--- source/scripts/tda.cpp	2010-04-14 10:13:24.000000000 +0800
+++ 4.0/source/scripts/tda.cpp	2011-10-11 23:12:49.508789000 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Tom "Dante" Anderson
-	Copyright 2010 Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/tda.h 4.0/source/scripts/tda.h
--- source/scripts/tda.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/tda.h	2011-10-14 22:27:32.095703100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by Tom "Dante" Anderson
-	Copyright 2010 Tom "Dante" Anderson, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class TDA_Stealth_Armor:public ScriptImpClass {
 	void Custom(GameObject *obj,int type,int param,GameObject *sender);
 	void Timer_Expired(GameObject *obj,int timer_id);
diff -uwr source/scripts/tfx.cpp 4.0/source/scripts/tfx.cpp
--- source/scripts/tfx.cpp	2010-04-14 10:13:24.000000000 +0800
+++ 4.0/source/scripts/tfx.cpp	2011-10-11 23:12:44.100585900 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by TimeFX
-	Copyright 2010 TimeFX, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
diff -uwr source/scripts/tfx.h 4.0/source/scripts/tfx.h
--- source/scripts/tfx.h	2010-04-14 10:13:28.000000000 +0800
+++ 4.0/source/scripts/tfx.h	2011-10-14 22:27:32.205078100 +0800
@@ -1,6 +1,5 @@
 /*	Renegade Scripts.dll
-	Scripts by TimeFX
-	Copyright 2010 TimeFX, Jonathan Wilson
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
 	The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
@@ -10,6 +9,7 @@
 	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 class TFX_Spawn_When_Killed : public ScriptImpClass {
 	void Killed (GameObject *obj,GameObject *killer);
 };
diff -uwr source/scripts/vector2.h 4.0/source/scripts/vector2.h
--- source/scripts/vector2.h	2010-06-05 22:27:08.000000000 +0800
+++ 4.0/source/scripts/vector2.h	2011-10-11 21:41:08.434570300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__VECTOR2_H
 #define TT_INCLUDE__VECTOR2_H
 #include "wwmath.h"
diff -uwr source/scripts/vector4.h 4.0/source/scripts/vector4.h
--- source/scripts/vector4.h	2010-06-05 22:26:18.000000000 +0800
+++ 4.0/source/scripts/vector4.h	2011-10-11 21:41:02.434570300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE__VECTOR4_H
 #define TT_INCLUDE__VECTOR4_H
 #include "wwmath.h"
diff -uwr source/scripts/w3d.h 4.0/source/scripts/w3d.h
--- source/scripts/w3d.h	2011-04-27 19:50:24.000000000 +0800
+++ 4.0/source/scripts/w3d.h	2011-10-11 21:40:46.124023400 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_W3D_H
 #define TT_INCLUDE_W3D_H
 #include "engine_io.h"
diff -uwr source/scripts/weaponmgr.h 4.0/source/scripts/weaponmgr.h
--- source/scripts/weaponmgr.h	2011-05-22 02:39:36.000000000 +0800
+++ 4.0/source/scripts/weaponmgr.h	2011-10-11 21:40:30.001953100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT_INCLUDE_WEAPONMGR_H
 #define TT_INCLUDE_WEAPONMGR_H
 #include "Definition.h"
@@ -130,6 +141,9 @@
 	int				GlobalFireSoundDefID;
 	bool            AreaEffectWeapon;
 	bool			AreaEffectWeaponAffectOwner;
+	bool			AreaEffectWeaponAffectFriendly;
+	bool			AreaEffectWeaponAffectEnemy;
+	bool			AreaEffectWeaponAffectNeutral;
 	friend class PresetDump;
 }; // 00AC
 
diff -uwr source/scripts/wwmath.cpp 4.0/source/scripts/wwmath.cpp
--- source/scripts/wwmath.cpp	2010-05-31 13:37:40.000000000 +0800
+++ 4.0/source/scripts/wwmath.cpp	2011-10-11 23:13:07.331054600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "wwmath.h"
 #include <stdlib.h>
diff -uwr source/scripts/wwmath.h 4.0/source/scripts/wwmath.h
--- source/scripts/wwmath.h	2011-05-24 09:41:42.000000000 +0800
+++ 4.0/source/scripts/wwmath.h	2011-10-11 21:40:22.365234300 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TT__INCLUDE__WWMATH_H
 #define TT__INCLUDE__WWMATH_H
 #include <math.h>
diff -uwr source/scripts/z.cpp 4.0/source/scripts/z.cpp
--- source/scripts/z.cpp	2011-08-24 23:44:34.000000000 +0800
+++ 4.0/source/scripts/z.cpp	2011-10-11 23:14:30.261718700 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
@@ -3579,6 +3577,36 @@
 	Console_Input(settime);
 }
 
+void z_Zone_Aircraft_Refill::Entered(GameObject *obj,GameObject *enterer)
+{
+	int Player_Type = Get_Int_Parameter("Player_Type");
+	if (CheckPlayerType(enterer,Player_Type))
+	{
+		return;
+	}
+	if ((Is_Vehicle(enterer)) && (Is_VTOL(enterer)))
+	{
+		Commands->Start_Timer(obj,this,1.0,Commands->Get_ID(enterer));
+	}
+}
+
+void z_Zone_Aircraft_Refill::Timer_Expired(GameObject *obj,int number)
+{
+	Vector3 pos1;
+	Vector3 pos2;
+	float distance;
+	pos1 = Commands->Get_Position(obj);
+	pos2 = Commands->Get_Position(Commands->Find_Object(number));
+	distance = Commands->Get_Distance(pos1,pos2);
+	if (distance <= Get_Float_Parameter("Refill_Distance"))
+	{
+		const char *pup = Get_Parameter("Powerup_Preset");
+		Commands->Give_PowerUp(Commands->Find_Object(number),pup,false);
+		Commands->Start_Timer(obj,this,1.0,number);
+	}
+}
+
+ScriptRegistrant<z_Zone_Aircraft_Refill> z_Zone_Aircraft_Refill_Registrant("z_Zone_Aircraft_Refill","Powerup_Preset=asdf:string,Player_Type=1:int,Refill_Distance=5000:float");
 ScriptRegistrant<z_Map_Time_Limit> z_Map_Time_Limit_Registrant("z_Map_Time_Limit","Time_In_Seconds=50000:int");
 ScriptRegistrant<z_Powerup_Expire> z_Powerup_Expire_Registrant("z_Powerup_Expire","");
 ScriptRegistrant<z_Killed_Play_Sound_Message> z_Killed_Play_Sound_Message_Registrant("z_Killed_Play_Sound_Message","Message=bla:string,WavSound=bla:string,Red=255:int,Green=0:int,Blue=0:int");
diff -uwr source/scripts/z.h 4.0/source/scripts/z.h
--- source/scripts/z.h	2011-08-24 23:44:34.000000000 +0800
+++ 4.0/source/scripts/z.h	2011-10-14 22:27:32.097656200 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_Powerup_Expire : public ScriptImpClass {
 	void Created(GameObject *obj);
@@ -593,7 +592,10 @@
 	void Created(GameObject *obj);
 };
 
-
+class z_Zone_Aircraft_Refill : public ScriptImpClass {
+	void Entered(GameObject *obj,GameObject *enterer);
+	void Timer_Expired(GameObject *obj,int number);
+};
 
 
 
diff -uwr source/scripts/z_am01.cpp 4.0/source/scripts/z_am01.cpp
--- source/scripts/z_am01.cpp	2011-04-11 13:06:16.000000000 +0800
+++ 4.0/source/scripts/z_am01.cpp	2011-10-11 23:14:24.627929600 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_am01.h 4.0/source/scripts/z_am01.h
--- source/scripts/z_am01.h	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_am01.h	2011-10-14 22:27:32.175781200 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 /*********************************************************************************************/
 class z_aM01_Einstein : public ScriptImpClass {
diff -uwr source/scripts/z_am02.cpp 4.0/source/scripts/z_am02.cpp
--- source/scripts/z_am02.cpp	2011-05-10 22:51:40.000000000 +0800
+++ 4.0/source/scripts/z_am02.cpp	2011-10-11 23:14:21.951171800 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_am02.h 4.0/source/scripts/z_am02.h
--- source/scripts/z_am02.h	2011-05-04 12:50:52.000000000 +0800
+++ 4.0/source/scripts/z_am02.h	2011-10-14 22:27:32.209960900 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_aM02_TruckZone : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_buildingrevive.cpp 4.0/source/scripts/z_buildingrevive.cpp
--- source/scripts/z_buildingrevive.cpp	2011-05-04 12:50:52.000000000 +0800
+++ 4.0/source/scripts/z_buildingrevive.cpp	2011-10-11 23:14:19.441406200 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_buildingrevive.h 4.0/source/scripts/z_buildingrevive.h
--- source/scripts/z_buildingrevive.h	2011-05-04 12:50:52.000000000 +0800
+++ 4.0/source/scripts/z_buildingrevive.h	2011-10-14 22:27:31.952148400 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_Custom_Restore_Building : public ScriptImpClass {
 	void Custom(GameObject *obj, int message, int param, GameObject *sender);
diff -uwr source/scripts/z_cargo.cpp 4.0/source/scripts/z_cargo.cpp
--- source/scripts/z_cargo.cpp	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_cargo.cpp	2011-10-11 23:14:17.298828100 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_cargo.h 4.0/source/scripts/z_cargo.h
--- source/scripts/z_cargo.h	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_cargo.h	2011-10-14 22:27:31.993164000 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_Pup_Soviet_Shocky : public ScriptImpClass {
 	void Custom(GameObject *obj, int message, int param, GameObject *sender);
diff -uwr source/scripts/z_cold_fever.cpp 4.0/source/scripts/z_cold_fever.cpp
--- source/scripts/z_cold_fever.cpp	2011-05-18 22:54:54.000000000 +0800
+++ 4.0/source/scripts/z_cold_fever.cpp	2011-10-11 23:14:15.227539000 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_cold_fever.h 4.0/source/scripts/z_cold_fever.h
--- source/scripts/z_cold_fever.h	2011-05-18 22:54:54.000000000 +0800
+++ 4.0/source/scripts/z_cold_fever.h	2011-10-14 22:27:31.988281200 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_Cold_Closest_Star : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_coop.cpp 4.0/source/scripts/z_coop.cpp
--- source/scripts/z_coop.cpp	2011-06-01 08:38:26.000000000 +0800
+++ 4.0/source/scripts/z_coop.cpp	2011-10-11 23:14:11.353515600 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_coop.h 4.0/source/scripts/z_coop.h
--- source/scripts/z_coop.h	2011-06-01 08:38:26.000000000 +0800
+++ 4.0/source/scripts/z_coop.h	2011-10-14 22:27:32.200195300 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 class z_I_Am_A_Player : public ScriptImpClass {
diff -uwr source/scripts/z_darkdawn.cpp 4.0/source/scripts/z_darkdawn.cpp
--- source/scripts/z_darkdawn.cpp	2011-04-21 22:18:04.000000000 +0800
+++ 4.0/source/scripts/z_darkdawn.cpp	2011-10-11 23:14:04.455078100 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_darkdawn.h 4.0/source/scripts/z_darkdawn.h
--- source/scripts/z_darkdawn.h	2011-04-21 22:18:04.000000000 +0800
+++ 4.0/source/scripts/z_darkdawn.h	2011-10-14 22:27:32.148437500 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 class z_MechUnlockSovTank : public ScriptImpClass {
diff -uwr source/scripts/z_endgame.cpp 4.0/source/scripts/z_endgame.cpp
--- source/scripts/z_endgame.cpp	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_endgame.cpp	2011-10-11 23:14:13.342773400 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_endgame.h 4.0/source/scripts/z_endgame.h
--- source/scripts/z_endgame.h	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_endgame.h	2011-10-14 22:27:32.000976500 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 
diff -uwr source/scripts/z_escort.cpp 4.0/source/scripts/z_escort.cpp
--- source/scripts/z_escort.cpp	2011-04-27 12:07:22.000000000 +0800
+++ 4.0/source/scripts/z_escort.cpp	2011-10-11 23:14:02.354492100 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_escort.h 4.0/source/scripts/z_escort.h
--- source/scripts/z_escort.h	2011-04-27 12:07:22.000000000 +0800
+++ 4.0/source/scripts/z_escort.h	2011-10-14 22:27:32.178710900 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 #include "General.h"
 #include "scripts.h"
 #include "engine.h"
diff -uwr source/scripts/z_eveninglight.cpp 4.0/source/scripts/z_eveninglight.cpp
--- source/scripts/z_eveninglight.cpp	2011-05-23 17:18:52.000000000 +0800
+++ 4.0/source/scripts/z_eveninglight.cpp	2011-10-11 23:13:57.205078100 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_eveninglight.h 4.0/source/scripts/z_eveninglight.h
--- source/scripts/z_eveninglight.h	2011-05-16 06:52:10.000000000 +0800
+++ 4.0/source/scripts/z_eveninglight.h	2011-10-14 22:27:32.066406200 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 class z_Eve_Start : public ScriptImpClass {
diff -uwr source/scripts/z_fever.cpp 4.0/source/scripts/z_fever.cpp
--- source/scripts/z_fever.cpp	2011-04-22 22:04:38.000000000 +0800
+++ 4.0/source/scripts/z_fever.cpp	2011-10-11 23:13:54.789062500 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_fever.h 4.0/source/scripts/z_fever.h
--- source/scripts/z_fever.h	2011-04-21 22:18:04.000000000 +0800
+++ 4.0/source/scripts/z_fever.h	2011-10-14 22:27:32.117187500 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 
diff -uwr source/scripts/z_hostagemode.cpp 4.0/source/scripts/z_hostagemode.cpp
--- source/scripts/z_hostagemode.cpp	2009-06-30 09:28:30.000000000 +0800
+++ 4.0/source/scripts/z_hostagemode.cpp	2011-10-11 23:13:52.476562500 +0800
@@ -1,12 +1,12 @@
-/*	zunnie - MP-Gaming.com | Game-Maps.NET | MultiPlayerForums.com
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 
diff -uwr source/scripts/z_hostagemode.h 4.0/source/scripts/z_hostagemode.h
--- source/scripts/z_hostagemode.h	2009-06-30 09:08:38.000000000 +0800
+++ 4.0/source/scripts/z_hostagemode.h	2011-10-14 22:27:32.180664000 +0800
@@ -1,14 +1,15 @@
-/*	zunnie - MP-Gaming.com
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 /*********************************************************************************************/
 class z_HostageFollowTest : public ScriptImpClass {
diff -uwr source/scripts/z_intro.cpp 4.0/source/scripts/z_intro.cpp
--- source/scripts/z_intro.cpp	2010-09-29 06:26:24.000000000 +0800
+++ 4.0/source/scripts/z_intro.cpp	2011-10-11 23:14:00.150390600 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_intro.h 4.0/source/scripts/z_intro.h
--- source/scripts/z_intro.h	2010-09-29 06:26:24.000000000 +0800
+++ 4.0/source/scripts/z_intro.h	2011-10-14 22:27:31.986328100 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_intro_end : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_joipa.cpp 4.0/source/scripts/z_joipa.cpp
--- source/scripts/z_joipa.cpp	2011-05-23 17:18:52.000000000 +0800
+++ 4.0/source/scripts/z_joipa.cpp	2011-10-11 23:13:50.153320300 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_joipa.h 4.0/source/scripts/z_joipa.h
--- source/scripts/z_joipa.h	2011-05-22 10:13:38.000000000 +0800
+++ 4.0/source/scripts/z_joipa.h	2011-10-14 22:27:31.894531200 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_Joi_Briefing : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_joipa_return.cpp 4.0/source/scripts/z_joipa_return.cpp
--- source/scripts/z_joipa_return.cpp	2011-05-29 07:19:48.000000000 +0800
+++ 4.0/source/scripts/z_joipa_return.cpp	2011-10-11 23:14:34.135742100 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_joipa_return.h 4.0/source/scripts/z_joipa_return.h
--- source/scripts/z_joipa_return.h	2011-05-29 07:19:48.000000000 +0800
+++ 4.0/source/scripts/z_joipa_return.h	2011-10-14 22:27:32.087890600 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_jret_briefing : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_lockdown.cpp 4.0/source/scripts/z_lockdown.cpp
--- source/scripts/z_lockdown.cpp	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_lockdown.cpp	2011-10-11 23:13:47.542968700 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_lockdown.h 4.0/source/scripts/z_lockdown.h
--- source/scripts/z_lockdown.h	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_lockdown.h	2011-10-14 22:27:31.991210900 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 class z_Lockdown_Bar : public ScriptImpClass {
diff -uwr source/scripts/z_m00.cpp 4.0/source/scripts/z_m00.cpp
--- source/scripts/z_m00.cpp	2010-09-29 06:26:24.000000000 +0800
+++ 4.0/source/scripts/z_m00.cpp	2011-10-11 23:14:36.040039000 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_m00.h 4.0/source/scripts/z_m00.h
--- source/scripts/z_m00.h	2010-09-29 06:26:24.000000000 +0800
+++ 4.0/source/scripts/z_m00.h	2011-10-14 22:27:32.100585900 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_m00_missionstart : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_m01.cpp 4.0/source/scripts/z_m01.cpp
--- source/scripts/z_m01.cpp	2010-09-29 06:26:24.000000000 +0800
+++ 4.0/source/scripts/z_m01.cpp	2011-10-11 23:14:38.997070300 +0800
@@ -1,17 +1,14 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
-
 #include "General.h"
 #include "scripts.h"
 #include "engine.h"
diff -uwr source/scripts/z_m01.h 4.0/source/scripts/z_m01.h
--- source/scripts/z_m01.h	2010-09-29 06:26:24.000000000 +0800
+++ 4.0/source/scripts/z_m01.h	2011-10-14 22:27:32.153320300 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_m01_missionstart : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_nod_invasion.cpp 4.0/source/scripts/z_nod_invasion.cpp
--- source/scripts/z_nod_invasion.cpp	2011-05-30 20:36:44.000000000 +0800
+++ 4.0/source/scripts/z_nod_invasion.cpp	2011-10-11 23:14:27.805664000 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_nod_invasion.h 4.0/source/scripts/z_nod_invasion.h
--- source/scripts/z_nod_invasion.h	2011-05-29 07:19:48.000000000 +0800
+++ 4.0/source/scripts/z_nod_invasion.h	2011-10-14 22:27:31.970703100 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_ninv_MissionStart : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_reconnaissance.cpp 4.0/source/scripts/z_reconnaissance.cpp
--- source/scripts/z_reconnaissance.cpp	2011-05-26 09:34:42.000000000 +0800
+++ 4.0/source/scripts/z_reconnaissance.cpp	2011-10-11 23:13:45.326171800 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_reconnaissance.h 4.0/source/scripts/z_reconnaissance.h
--- source/scripts/z_reconnaissance.h	2011-05-24 19:05:46.000000000 +0800
+++ 4.0/source/scripts/z_reconnaissance.h	2011-10-14 22:27:32.198242100 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_rec_CheckpointControl : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_ship.cpp 4.0/source/scripts/z_ship.cpp
--- source/scripts/z_ship.cpp	2011-05-14 22:28:34.000000000 +0800
+++ 4.0/source/scripts/z_ship.cpp	2011-10-11 23:13:43.605468700 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_ship.h 4.0/source/scripts/z_ship.h
--- source/scripts/z_ship.h	2011-05-07 07:43:20.000000000 +0800
+++ 4.0/source/scripts/z_ship.h	2011-10-14 22:27:31.944335900 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_Ship_TorpedoRack : public ScriptImpClass {
 	void Created(GameObject *obj);
diff -uwr source/scripts/z_siege.cpp 4.0/source/scripts/z_siege.cpp
--- source/scripts/z_siege.cpp	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_siege.cpp	2011-10-11 23:13:42.152343700 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_siege.h 4.0/source/scripts/z_siege.h
--- source/scripts/z_siege.h	2010-10-15 07:19:22.000000000 +0800
+++ 4.0/source/scripts/z_siege.h	2011-10-14 22:27:31.995117100 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2010 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 
 class z_Siege_Mission_Start : public ScriptImpClass {
diff -uwr source/scripts/z_uberaow.cpp 4.0/source/scripts/z_uberaow.cpp
--- source/scripts/z_uberaow.cpp	2011-08-20 10:11:46.000000000 +0800
+++ 4.0/source/scripts/z_uberaow.cpp	2011-10-11 23:13:40.107421800 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_uberaow.h 4.0/source/scripts/z_uberaow.h
--- source/scripts/z_uberaow.h	2011-08-20 10:11:46.000000000 +0800
+++ 4.0/source/scripts/z_uberaow.h	2011-10-14 22:27:32.074218700 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - http://dev.mp-gaming.com
-	Copyright 2011 MP-Gaming
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_Player : public ScriptImpClass {
 	void Custom(GameObject *obj, int message, int param, GameObject *sender);
diff -uwr source/scripts/z_zones.cpp 4.0/source/scripts/z_zones.cpp
--- source/scripts/z_zones.cpp	2011-05-04 12:50:52.000000000 +0800
+++ 4.0/source/scripts/z_zones.cpp	2011-10-11 23:14:32.120117100 +0800
@@ -1,14 +1,12 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
 #include "General.h"
diff -uwr source/scripts/z_zones.h 4.0/source/scripts/z_zones.h
--- source/scripts/z_zones.h	2011-04-28 07:18:42.000000000 +0800
+++ 4.0/source/scripts/z_zones.h	2011-10-14 22:27:32.053710900 +0800
@@ -1,16 +1,15 @@
 /*	Renegade Scripts.dll
-	Scripts by zunnie - mp-gaming.com
-	Copyright 2011 zunnie
+	Copyright 2011 Tiberian Technologies
 
 	This file is part of the Renegade scripts.dll
-	The Renegade scripts.dll 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
+	The Renegade scripts.dll 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, or (at your option) any later
 	version. See the file COPYING for more details.
-	In addition, an exemption is given to allow Run Time Dynamic Linking of this code 
-	with any closed source module that does not contain code covered by this licence.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
 	Only the source code to the module(s) containing the licenced code has to be released.
 */
+#pragma once
 
 class z_Sell_Zone : public JFW_Key_Hook_Base {
 	int ID;
diff -uwr source/scripts_VC2010.sln 4.0/source/scripts_VC2010.sln
--- source/scripts_VC2010.sln	2011-08-09 11:07:26.000000000 +0800
+++ 4.0/source/scripts_VC2010.sln	2011-10-14 19:52:39.833007800 +0800
@@ -102,6 +102,8 @@
 		{9B549C98-0BF4-4092-AE2A-AD7F780F8405} = {9B549C98-0BF4-4092-AE2A-AD7F780F8405}
 	EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makemix", "makemix\makemix.vcxproj", "{51D89B89-4A13-4263-8148-A10D78DC9416}"
+EndProject
 Global
 	GlobalSection(SubversionScc) = preSolution
 		Svn-Managed = True
@@ -234,6 +236,14 @@
 		{6BA46F59-EAAB-4E4C-90AD-725469504AA5}.Release SSGM|Win32.ActiveCfg = Release SSGM|Win32
 		{6BA46F59-EAAB-4E4C-90AD-725469504AA5}.Release SSGM|Win32.Build.0 = Release SSGM|Win32
 		{6BA46F59-EAAB-4E4C-90AD-725469504AA5}.Release|Win32.ActiveCfg = Release SSGM|Win32
+		{51D89B89-4A13-4263-8148-A10D78DC9416}.Debug SSGM|Win32.ActiveCfg = Debug|Win32
+		{51D89B89-4A13-4263-8148-A10D78DC9416}.Debug SSGM|Win32.Build.0 = Debug|Win32
+		{51D89B89-4A13-4263-8148-A10D78DC9416}.Debug|Win32.ActiveCfg = Debug|Win32
+		{51D89B89-4A13-4263-8148-A10D78DC9416}.Debug|Win32.Build.0 = Debug|Win32
+		{51D89B89-4A13-4263-8148-A10D78DC9416}.Release SSGM|Win32.ActiveCfg = Release|Win32
+		{51D89B89-4A13-4263-8148-A10D78DC9416}.Release SSGM|Win32.Build.0 = Release|Win32
+		{51D89B89-4A13-4263-8148-A10D78DC9416}.Release|Win32.ActiveCfg = Release|Win32
+		{51D89B89-4A13-4263-8148-A10D78DC9416}.Release|Win32.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff -uwr source/swap/General.cpp 4.0/source/swap/General.cpp
--- source/swap/General.cpp	2011-04-29 19:21:12.000000000 +0800
+++ 4.0/source/swap/General.cpp	2011-10-11 23:02:55.377929600 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/swap/General.h 4.0/source/swap/General.h
--- source/swap/General.h	2011-04-29 19:21:12.000000000 +0800
+++ 4.0/source/swap/General.h	2011-10-11 23:02:53.966796800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef SWAP_INCLUDE__GENERAL_H
 #define SWAP_INCLUDE__GENERAL_H
 
diff -uwr source/swap/Swap.cpp 4.0/source/swap/Swap.cpp
--- source/swap/Swap.cpp	2011-04-30 09:22:40.000000000 +0800
+++ 4.0/source/swap/Swap.cpp	2011-10-13 07:20:03.158203100 +0800
@@ -1,12 +1,67 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "Swap.h"
 #include "gmgame.h"
 #include "Iterator.h"
 
+#define GDI 1
+#define NOD 0
+#define GREEN "104,234,40"
 
 bool IsRTC = false;
 int idrtc = 0;
 
+void PPage(int ID, const char* rgb_colour, const char *Format, ...)
+{
+	if(ID < 1 || ID > 128)
+	{
+		return;
+	}
+
+	if (!Get_GameObj(ID))
+	{
+		return;
+	}
+
+	char buffer[256];
+	va_list va;
+	_crt_va_start(va, Format);
+	vsnprintf(buffer, 256, Format, va);
+	va_end(va);
+
+	float Version = Get_Client_Version(ID);
+
+	if(Version < 2.9)
+	{
+		Console("ppage %d %s",ID, buffer);
+                return;
+	}
+	else
+	{
+		Console("cmsgp %d %s %s", ID, rgb_colour, buffer);
+	}
+}
+
+void Console(const char *Format, ...)
+{
+	char buffer[256];
+	va_list va;
+	_crt_va_start(va, Format);
+	vsnprintf(buffer, 256, Format, va);
+	va_end(va);
+	Console_Input(buffer);
+}
+
 DynamicVectorClass<StringClass> SwappedPlayers;  
 
 bool SwapCheck(int ID) 
@@ -41,6 +96,7 @@
 public:
 	int SwapGameTimeLimit;
 	int SwapExpireLimit;
+	StringClass PPageColour;
 	DynamicVectorClass<StringClass> PresetNames;
 
 	SWAP()
@@ -66,14 +122,12 @@
 		{
 			if ((wcsistr(Message,L"!swap") == Message) || (wcsistr(Message,L"!rtc") == Message))
 			{ 
-				StringClass tmp;
 				for(int i = 0; i < PresetNames.Count(); i++)
 				{
 					if((strcmp(Commands->Get_Preset_Name(Get_GameObj(PlayerID)),PresetNames[i]))== 0)
 					{
-						tmp.Format("ppage %d Unfortunately this preset type has been disallowed from using the command.",PlayerID);
-						Console_Input(tmp);
-						return true;
+						PPage(PlayerID, PPageColour, "Unfortunately this preset type has been disallowed from using the command.");
+						return false;
 					}
 				}
 				if (SwapCheck(PlayerID) == false) 
@@ -82,10 +136,9 @@
 				}
 				else 
 				{
-					tmp.Format("ppage %d You have already swapped once. There is a limit of one successful swap per map, per player.",PlayerID);
-					Console_Input(tmp);
+					PPage(PlayerID, PPageColour, "You have already swapped once. There is a limit of one successful swap per map, per player.");
 				}
-				return true;
+				return false;
 			}
 		}
 		return true;
@@ -93,13 +146,9 @@
 
 	virtual void OnLoadGlobalINISettings(INIClass *SSGMIni) 
 	{
-		//StringClass Setting;
 		SwapGameTimeLimit = SSGMIni->Get_Int("Swap", "SwapGameTimeLimit", 300);
-		//Setting.Format("SwapGameTimeLimit = %i\n", SwapGameTimeLimit);
-		//Console_Output(Setting);
 		SwapExpireLimit = SSGMIni->Get_Int("Swap", "SwapExpireLimit", 60);
-		//Setting.Format("SwapExpireLimit = %i\n", SwapExpireLimit);
-		//Console_Output(Setting);
+		SSGMIni->Get_String(PPageColour,"Swap", "PPageColour", GREEN);
 		int count = SSGMIni->Entry_Count("ListOfPresets");
 		for (int i = 0; i < count; i++)
 		{
@@ -108,17 +157,6 @@
 			SSGMIni->Get_String(entry_string, "ListOfPresets", entry_name, "42");
 			PresetNames.Add(entry_string.Peek_Buffer());
 		}
-		/*
-		StringClass Msg;
-		Msg.Format("ListOfPresets: \n");
-		Console_Output(Msg);
-		for(unsigned int i = 0; i < PresetNames.size(); i++)
-		{
-			Msg.Format("%s ", PresetNames[i].c_str());
-			Console_Output(Msg);
-		}
-		*/
-
 	}
 
 	virtual void OnLoadLevel() 
@@ -141,8 +179,30 @@
 
 	if (The_Game()->Get_Game_Duration_S() < (unsigned)swap.SwapGameTimeLimit)
 	{
-		int GDIPlayers = Get_Team_Player_Count(0);
-		int NodPlayers = Get_Team_Player_Count(1);
+		int NodPlayers = Get_Team_Player_Count(NOD);
+		int GDIPlayers = Get_Team_Player_Count(GDI);
+
+		if (abs(GDIPlayers-NodPlayers) > 1)
+		{
+			int Team = Get_Team(PlayerID);
+			StringClass Msg, Msg2;
+			const char *str = Get_Team_Name(Get_Team(idrtc) ? GDI : NOD);
+			Msg2.Format("msg %s has joined forces with the %s team.",Get_Player_Name(Get_GameObj(PlayerID)),str);
+			if ((GDIPlayers > NodPlayers) && (Team == GDI))
+			{
+				Msg.Format("team2 %d %i",PlayerID, NOD);
+				Console_Input(Msg);
+				Console_Input(Msg2);
+				return;
+			}
+			else if ((NodPlayers > GDIPlayers) && (Team == NOD))
+			{
+				Msg.Format("team2 %d %i",PlayerID, GDI);
+				Console_Input(Msg);
+				Console_Input(Msg2);
+				return;
+			}
+		}
 		if (!IsRTC) 
 		{
 			if (GDIPlayers > 0 && NodPlayers > 0)
@@ -154,7 +214,7 @@
 				Commands->Attach_Script(rtccontroller,"RTC_timer","");
 				const char *str = Get_Team_Name(0);
 				const char *str2 = Get_Team_Name(1);
-				Msg.Format("msg %s on the %s team wants to swap with someone on the %s team. Type \"!rtc\" or \"!swap\" to change with them. There is 1 minute remaining before this expires.",Get_Player_Name(Get_GameObj(PlayerID)),str,str2);
+				Msg.Format("msg %s on the %s team wants to swap with someone on the %s team. Type \"!rtc\" or \"!swap\" to change with them. There is %i seconds remaining before this expires.", Get_Player_Name(Get_GameObj(PlayerID)), str, str2, swap.SwapExpireLimit);
 				Console_Input(Msg);
 				delete[] str;
 				delete[] str2;
@@ -162,8 +222,7 @@
 			}
 			else 
 			{
-				Msg.Format("ppage %d Unfortunately there are not enough people in the server for you to swap teams",PlayerID);
-				Console_Input(Msg);
+				PPage(PlayerID, swap.PPageColour, "Unfortunately there are not enough people in the server for you to swap teams.");
 			}
 		}
 		else if (IsRTC)
@@ -204,16 +263,14 @@
 
 				else if (Get_Team(PlayerID) == Get_Team(idrtc))
 				{
-					Msg.Format("ppage %d You're on the same team, you cannot swap with %s.",PlayerID,Get_Player_Name_By_ID(idrtc));
-					Console_Input(Msg);
+					PPage(PlayerID, swap.PPageColour, "You're on the same team, you cannot swap with %s.", Get_Player_Name_By_ID(idrtc));
 				}
 			}
 		}
 	}
 	else 
 	{
-		Msg.Format("ppage %d Unfortunately five minutes has passed into the game. No swapping is allowed after five minutes of map time.",PlayerID);
-		Console_Input(Msg);
+		PPage(PlayerID, swap.PPageColour, "Unfortunately %i seconds has passed into the game. No swapping is allowed after %i seconds of map time.", The_Game()->Get_Game_Duration_S(), swap.SwapGameTimeLimit);
 	}
 }
 
@@ -238,11 +295,12 @@
 		}
 		else
 		{
+			const char *str = Get_Team_Name(Get_Team(idrtc) ? GDI : NOD);
 			StringClass Msg;
-			Msg.Format("msg %s's request to change teams has expired.",Get_Player_Name_By_ID(idrtc));
-			Console_Input(Msg);
-			Msg.Format("ppage %d Your request to change teams has timed out.",idrtc);
+			Msg.Format("msg %s's request to change to team %s has expired.",Get_Player_Name_By_ID(idrtc), str);
 			Console_Input(Msg);
+			PPage(idrtc, swap.PPageColour, "Your request to change to team %s has timed out.", str);
+			delete[] str;
 			idrtc = 0;
 			Commands->Destroy_Object(obj);
 			Destroy_Script();
@@ -250,6 +308,7 @@
 	}
 }
 
+ScriptRegistrant<RTC_timer> RTC_timer_Registrant("RTC_timer","");
 
 extern "C" __declspec(dllexport) Plugin* Plugin_Init()
 {
diff -uwr source/swap/Swap.h 4.0/source/swap/Swap.h
--- source/swap/Swap.h	2011-04-29 19:21:12.000000000 +0800
+++ 4.0/source/swap/Swap.h	2011-10-13 07:19:59.104492100 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
@@ -15,3 +26,5 @@
 void SwapClearPlayers();
 
 void RequestTeamChange(int PlayerID);
+void Console(const char *Format, ...);
+void  __cdecl PPage(int ID, const char* rgb_colour, const char *Format, ...);
diff -uwr source/tdbedit/Search.cpp 4.0/source/tdbedit/Search.cpp
--- source/tdbedit/Search.cpp	2011-04-25 15:58:38.000000000 +0800
+++ 4.0/source/tdbedit/Search.cpp	2011-10-11 23:02:47.273437500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include <windows.h>
 #include <stdlib.h>
diff -uwr source/tdbedit/Search.h 4.0/source/tdbedit/Search.h
--- source/tdbedit/Search.h	2009-11-20 16:44:28.000000000 +0800
+++ 4.0/source/tdbedit/Search.h	2011-10-11 23:02:45.808593700 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _SEARCH_H_
 #define _SEARCH_H_
 
diff -uwr source/tdbedit/general.cpp 4.0/source/tdbedit/general.cpp
--- source/tdbedit/general.cpp	2009-04-12 11:54:02.000000000 +0800
+++ 4.0/source/tdbedit/general.cpp	2011-10-11 23:02:50.010742100 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/tdbedit/general.h 4.0/source/tdbedit/general.h
--- source/tdbedit/general.h	2011-03-08 09:59:54.000000000 +0800
+++ 4.0/source/tdbedit/general.h	2011-10-11 23:02:48.638671800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TDBEDIT_INCLUDE__GENERAL_H
 #define TDBEDIT_INCLUDE__GENERAL_H
 #include "Defines.h"
diff -uwr source/tdbedit/tdbedit.cpp 4.0/source/tdbedit/tdbedit.cpp
--- source/tdbedit/tdbedit.cpp	2011-04-25 15:54:54.000000000 +0800
+++ 4.0/source/tdbedit/tdbedit.cpp	2011-10-11 23:02:44.485351500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
 #include <windows.h>
 #include <stdio.h>
diff -uwr source/tdbedit/tdbedit.h 4.0/source/tdbedit/tdbedit.h
--- source/tdbedit/tdbedit.h	2009-11-19 18:48:10.000000000 +0800
+++ 4.0/source/tdbedit/tdbedit.h	2011-10-11 23:02:43.047851500 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef _MAIN_H_
 #define _MAIN_H_
 #include <windows.h>
diff -uwr source/tdbedit/tdbedit.vcxproj 4.0/source/tdbedit/tdbedit.vcxproj
--- source/tdbedit/tdbedit.vcxproj	2011-04-25 16:23:52.000000000 +0800
+++ 4.0/source/tdbedit/tdbedit.vcxproj	2011-10-19 11:34:17.688476500 +0800
@@ -123,7 +123,7 @@
       <MinimalRebuild>false</MinimalRebuild>
       <ExceptionHandling>
       </ExceptionHandling>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <BufferSecurityCheck>false</BufferSecurityCheck>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>
diff -uwr source/teamspeak/General.cpp 4.0/source/teamspeak/General.cpp
--- source/teamspeak/General.cpp	2009-04-12 11:51:52.000000000 +0800
+++ 4.0/source/teamspeak/General.cpp	2011-10-11 23:02:41.829101500 +0800
@@ -1 +1,12 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "general.h"
diff -uwr source/teamspeak/General.h 4.0/source/teamspeak/General.h
--- source/teamspeak/General.h	2011-04-19 00:35:22.000000000 +0800
+++ 4.0/source/teamspeak/General.h	2011-10-11 23:02:40.478515600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TEAMSPEAK_INCLUDE__GENERAL_H
 #define TEAMSPEAK_INCLUDE__GENERAL_H
 
diff -uwr source/teamspeak/TCPclass.cpp 4.0/source/teamspeak/TCPclass.cpp
--- source/teamspeak/TCPclass.cpp	2011-04-19 00:51:24.000000000 +0800
+++ 4.0/source/teamspeak/TCPclass.cpp	2011-10-11 23:02:39.259765600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "TCPclass.h"
 #pragma warning (disable: 4127)
diff -uwr source/teamspeak/TCPclass.h 4.0/source/teamspeak/TCPclass.h
--- source/teamspeak/TCPclass.h	2011-04-19 00:47:42.000000000 +0800
+++ 4.0/source/teamspeak/TCPclass.h	2011-10-11 23:02:37.763671800 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #ifndef TEAMSPEAK_INCLUDE__TCPCLASS_H
 #define TEAMSPEAK_INCLUDE__TCPCLASS_H
 class TCPSocket
diff -uwr source/teamspeak/teamspeak.cpp 4.0/source/teamspeak/teamspeak.cpp
--- source/teamspeak/teamspeak.cpp	2011-04-30 09:22:40.000000000 +0800
+++ 4.0/source/teamspeak/teamspeak.cpp	2011-10-11 23:02:36.131835900 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #include "General.h"
 #include "teamspeak.h"
 #include "TCPclass.h"
diff -uwr source/teamspeak/teamspeak.h 4.0/source/teamspeak/teamspeak.h
--- source/teamspeak/teamspeak.h	2011-04-19 00:26:06.000000000 +0800
+++ 4.0/source/teamspeak/teamspeak.h	2011-10-11 23:02:34.471679600 +0800
@@ -1,3 +1,14 @@
+/*	Renegade Scripts.dll
+	Copyright 2011 Tiberian Technologies
+
+	This file is part of the Renegade scripts.dll
+	The Renegade scripts.dll 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, or (at your option) any later
+	version. See the file COPYING for more details.
+	In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
+	Only the source code to the module(s) containing the licenced code has to be released.
+*/
 #pragma once
 
 #include "gmplugin.h"
