Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
150 lines
3.8 KiB
C++
150 lines
3.8 KiB
C++
/**********************************************************************
|
|
*<
|
|
FILE: ctrl.cpp
|
|
|
|
DESCRIPTION: DLL implementation of some controllers
|
|
|
|
CREATED BY: Rolf Berteig
|
|
|
|
HISTORY: created 13 June 1995
|
|
|
|
*> Copyright (c) 1994, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#include "ctrl.h"
|
|
#include "buildver.h"
|
|
|
|
HINSTANCE hInstance;
|
|
int controlsInit = FALSE;
|
|
|
|
/** public functions **/
|
|
BOOL WINAPI DllMain(HINSTANCE hinstDLL,ULONG fdwReason,LPVOID lpvReserved) {
|
|
hInstance = hinstDLL;
|
|
|
|
if ( !controlsInit ) {
|
|
controlsInit = TRUE;
|
|
|
|
// jaguar controls
|
|
InitCustomControls(hInstance);
|
|
|
|
#ifdef OLD3DCONTROLS
|
|
// initialize 3D controls
|
|
Ctl3dRegister(hinstDLL);
|
|
Ctl3dAutoSubclass(hinstDLL);
|
|
#endif
|
|
|
|
// initialize Chicago controls
|
|
InitCommonControls();
|
|
|
|
SetDefaultBoolController(GetBoolControlDesc());
|
|
}
|
|
|
|
switch(fdwReason) {
|
|
case DLL_PROCESS_ATTACH:
|
|
break;
|
|
case DLL_THREAD_ATTACH:
|
|
break;
|
|
case DLL_THREAD_DETACH:
|
|
break;
|
|
case DLL_PROCESS_DETACH:
|
|
break;
|
|
}
|
|
return(TRUE);
|
|
}
|
|
|
|
|
|
//------------------------------------------------------
|
|
// This is the interface to Jaguar:
|
|
//------------------------------------------------------
|
|
|
|
__declspec( dllexport ) const TCHAR *
|
|
LibDescription() { return
|
|
GetString(IDS_RB_DEFCONTROLLERS); }
|
|
|
|
|
|
#ifndef DESIGN_VER
|
|
|
|
/// MUST CHANGE THIS NUMBER WHEN ADD NEW CLASS
|
|
__declspec( dllexport ) int LibNumberClasses() {return 21;}
|
|
|
|
__declspec( dllexport ) ClassDesc*
|
|
LibClassDesc(int i) {
|
|
switch(i) {
|
|
case 0: return GetPathCtrlDesc();
|
|
case 1: return GetEulerCtrlDesc();
|
|
case 2: return GetFloatNoiseDesc();
|
|
case 3: return GetExprPosCtrlDesc();
|
|
case 4: return GetExprP3CtrlDesc();
|
|
case 5: return GetExprFloatCtrlDesc();
|
|
case 6: return GetExprScaleCtrlDesc();
|
|
case 7: return GetPositionNoiseDesc();
|
|
case 8: return GetPoint3NoiseDesc();
|
|
case 9: return GetRotationNoiseDesc();
|
|
case 10: return GetScaleNoiseDesc();
|
|
case 11: return GetBoolControlDesc();
|
|
case 12: return GetIPosCtrlDesc();
|
|
case 13: return GetAttachControlDesc();
|
|
case 14: return GetIPoint3CtrlDesc();
|
|
case 15: return GetIColorCtrlDesc();
|
|
case 16: return GetLinkCtrlDesc();
|
|
case 17: return GetFollowUtilDesc();
|
|
case 18: return GetSurfCtrlDesc();
|
|
case 19: return GetLODControlDesc();
|
|
case 20: return GetLODUtilDesc();
|
|
|
|
// case 7: return GetExprRotCtrlDesc();
|
|
default: return 0;
|
|
}
|
|
}
|
|
|
|
#else
|
|
|
|
/// MUST CHANGE THIS NUMBER WHEN ADD NEW CLASS
|
|
__declspec( dllexport ) int LibNumberClasses() { return 17; }
|
|
|
|
__declspec( dllexport ) ClassDesc*
|
|
LibClassDesc(int i) {
|
|
switch(i) {
|
|
case 0: return GetPathCtrlDesc();
|
|
case 1: return GetEulerCtrlDesc();
|
|
case 2: return GetFloatNoiseDesc();
|
|
// case 3: return GetExprPosCtrlDesc();
|
|
// case 4: return GetExprP3CtrlDesc();
|
|
// case 5: return GetExprFloatCtrlDesc();
|
|
// case 6: return GetExprScaleCtrlDesc();
|
|
case 3: return GetPositionNoiseDesc();
|
|
case 4: return GetPoint3NoiseDesc();
|
|
case 5: return GetRotationNoiseDesc();
|
|
case 6: return GetScaleNoiseDesc();
|
|
case 7: return GetBoolControlDesc();
|
|
case 8: return GetIPosCtrlDesc();
|
|
case 9: return GetAttachControlDesc();
|
|
case 10: return GetIPoint3CtrlDesc();
|
|
case 11: return GetIColorCtrlDesc();
|
|
case 12: return GetLinkCtrlDesc();
|
|
case 13: return GetFollowUtilDesc();
|
|
case 14: return GetSurfCtrlDesc();
|
|
case 15: return GetLODControlDesc();
|
|
case 16: return GetLODUtilDesc();
|
|
|
|
default: return 0;
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
// Return version so can detect obsolete DLLs
|
|
__declspec( dllexport ) ULONG
|
|
LibVersion() { return VERSION_3DSMAX; }
|
|
|
|
TCHAR *GetString(int id)
|
|
{
|
|
static TCHAR buf[256];
|
|
|
|
if(hInstance)
|
|
return LoadString(hInstance, id, buf, sizeof(buf)) ? buf : NULL;
|
|
return NULL;
|
|
}
|
|
|