Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

View File

@@ -0,0 +1,153 @@
# Microsoft Developer Studio Project File - Name="RND" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 5.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=RND - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Rnd.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Rnd.mak" CFG="RND - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "RND - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "RND - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE "RND - Win32 Retail" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP Scc_ProjName ""$/cpa/tempgrp/RND", FBEAAAAA"
# PROP Scc_LocalPath "."
CPP=cl.exe
!IF "$(CFG)" == "RND - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "x:\cpa\lib"
# PROP Intermediate_Dir "Tmp\Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /G5 /W4 /WX /GX /O2 /I "x:\CPA\Public" /I "x:\CPA\Public\RND" /D "NDEBUG" /D "VISUAL" /D "WIN32" /D "USE_PROFILER" /FD /c
# SUBTRACT CPP /Fr /YX
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"x:\Cpa\Lib\RNDP5_vr.lib"
!ELSEIF "$(CFG)" == "RND - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "x:\Cpa\Lib"
# PROP Intermediate_Dir "Tmp\Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD CPP /nologo /G5 /MD /W4 /WX /GX /Z7 /Od /I "x:\CPA\Public" /I "x:\CPA\Public\RND" /D "_DEBUG" /D "VISUAL" /D "WIN32" /D "USE_PROFILER" /D "MTH_CHECK" /D "CPA_WANTS_EXPORT" /FD /c
# SUBTRACT CPP /Fr /YX
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"x:\Cpa\Lib\RNDP5_vd.lib"
!ELSEIF "$(CFG)" == "RND - Win32 Retail"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "RND___Wi"
# PROP BASE Intermediate_Dir "RND___Wi"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "x:/cpa/lib"
# PROP Intermediate_Dir "tmp/retail"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /G5 /MD /W4 /WX /GX /O2 /I "x:\CPA\Public" /I "x:\CPA\Public\RND" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "CPA_VISUAL" /D "CPA_WANTS_EXPORT" /FD /c
# SUBTRACT BASE CPP /Fr /YX
# ADD CPP /nologo /G5 /W4 /WX /GX /O2 /I "x:\CPA\Public" /I "x:\CPA\Public\RND" /D "NDEBUG" /D "VISUAL" /D "WIN32" /D "RETAIL" /FD /c
# SUBTRACT CPP /Fr /YX
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo /out:"x:\Cpa\Lib\RNDP5_vr.lib"
# ADD LIB32 /nologo /out:"x:\Cpa\Lib\RNDP5_vf.lib"
!ENDIF
# Begin Target
# Name "RND - Win32 Release"
# Name "RND - Win32 Debug"
# Name "RND - Win32 Retail"
# Begin Group "Sources"
# PROP Default_Filter ".c,.cpp"
# Begin Source File
SOURCE=.\RND_Main.c
# End Source File
# Begin Source File
SOURCE=.\RND_Scpt.c
# End Source File
# End Group
# Begin Group "Includes"
# PROP Default_Filter ".h,.hpp"
# Begin Source File
SOURCE=..\..\Public\RND\ErrRND.h
# End Source File
# Begin Source File
SOURCE=..\..\Public\RND\MemRND.h
# End Source File
# Begin Source File
SOURCE=..\..\Public\RND.h
# End Source File
# Begin Source File
SOURCE=..\..\Public\RND\RND_CPA.h
# End Source File
# Begin Source File
SOURCE=..\..\Public\RND\RND_Main.h
# End Source File
# Begin Source File
SOURCE=..\..\Public\RND\RND_Scpt.h
# End Source File
# Begin Source File
SOURCE=..\..\Public\RND\RND_Str.h
# End Source File
# End Group
# Begin Source File
SOURCE=.\Rnd.mak
# End Source File
# End Target
# End Project

View File

@@ -0,0 +1,260 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="RND"
ProjectGUID="{6FED06A6-DCB9-4935-AA64-0525EA35258D}"
SccProjectName="&quot;$/cpa/tempgrp/RND&quot;, FBEAAAAA"
SccAuxPath=""
SccLocalPath="."
SccProvider="MSSCCI:NXN alienbrain">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="x:\Cpa\Libd"
IntermediateDirectory=".\Tmp\Debug"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
OptimizeForProcessor="1"
AdditionalIncludeDirectories="x:\CPA\Public,x:\CPA\Public\RND"
PreprocessorDefinitions="_DEBUG;VISUAL;WIN32;USE_PROFILER;MTH_CHECK;CPA_WANTS_EXPORT"
RuntimeLibrary="3"
PrecompiledHeaderFile=".\Tmp\Debug/RND.pch"
AssemblerListingLocation=".\Tmp\Debug/"
ObjectFile=".\Tmp\Debug/"
ProgramDataBaseFileName=".\Tmp\Debug/"
WarningLevel="4"
WarnAsError="TRUE"
SuppressStartupBanner="TRUE"
DebugInformationFormat="1"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="x:\Cpa\Libd\RNDP5_vd.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
Culture="1033"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Retail|Win32"
OutputDirectory="x:/cpa/lib"
IntermediateDirectory=".\tmp/retail"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="1"
AdditionalIncludeDirectories="x:\CPA\Public,x:\CPA\Public\RND"
PreprocessorDefinitions="NDEBUG;VISUAL;WIN32;RETAIL"
StringPooling="TRUE"
RuntimeLibrary="4"
EnableFunctionLevelLinking="TRUE"
PrecompiledHeaderFile=".\tmp/retail/RND.pch"
AssemblerListingLocation=".\tmp/retail/"
ObjectFile=".\tmp/retail/"
ProgramDataBaseFileName=".\tmp/retail/"
WarningLevel="4"
WarnAsError="TRUE"
SuppressStartupBanner="TRUE"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="x:\Cpa\Lib\RNDP5_vf.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
Culture="1033"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="x:\cpa\lib"
IntermediateDirectory=".\Tmp\Release"
ConfigurationType="4"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
OptimizeForProcessor="1"
AdditionalIncludeDirectories="x:\CPA\Public,x:\CPA\Public\RND"
PreprocessorDefinitions="NDEBUG;VISUAL;WIN32;USE_PROFILER"
StringPooling="TRUE"
RuntimeLibrary="4"
EnableFunctionLevelLinking="TRUE"
PrecompiledHeaderFile=".\Tmp\Release/RND.pch"
AssemblerListingLocation=".\Tmp\Release/"
ObjectFile=".\Tmp\Release/"
ProgramDataBaseFileName=".\Tmp\Release/"
WarningLevel="4"
WarnAsError="TRUE"
SuppressStartupBanner="TRUE"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLibrarianTool"
OutputFile="x:\Cpa\Lib\RNDP5_vr.lib"
SuppressStartupBanner="TRUE"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
Culture="1033"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Sources"
Filter=".c,.cpp">
<File
RelativePath="RND_Main.c">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Retail|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
</File>
<File
RelativePath="RND_Scpt.c">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Retail|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Includes"
Filter=".h,.hpp">
<File
RelativePath="..\..\Public\RND\ErrRND.h">
</File>
<File
RelativePath="..\..\Public\RND\MemRND.h">
</File>
<File
RelativePath="..\..\Public\RND.h">
</File>
<File
RelativePath="..\..\Public\RND\RND_CPA.h">
</File>
<File
RelativePath="..\..\Public\RND\RND_Main.h">
</File>
<File
RelativePath="..\..\Public\RND\RND_Scpt.h">
</File>
<File
RelativePath="..\..\Public\RND\RND_Str.h">
</File>
</Filter>
<File
RelativePath="Rnd.mak">
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@@ -0,0 +1,366 @@
/*=========================================================================
* RND_Main.c :
* Variables declaration and init function
*
* (c) Ubi Studios 1997
*=======================================================================*/
#include "Acp_base.h"
#include "RND_CPA.h"
#define D_RND_Input_StructureDefine
#define D_RND_Input_VariableDefine
#include "TMR.h"
#include "RND.h"
#include "MemRND.h"
#include "ErrRND.h"
#include "RND_Scpt.h"
#include "RND_Str.h"
#undef D_RND_Input_StructureDefine
#undef D_RND_Input_VariableDefine
/* LOL portage*/
#ifdef U64
unsigned long RND_ulRandVal= 1L;
#define RND_M_ulNextRand() \
(RND_ulRandVal= RND_ulRandVal * 1103515245L + 12345)
#define RND_M_ulRand() \
((RND_M_ulNextRand() >> 16) & 0x7FFF)
#endif /*U64*/
/*************************************************************************/
#define RND_M_vIncIndex(_lIndexNumber) \
{\
RND_g_stRandomStructure.a_ulIndex[_lIndexNumber]++;\
if (RND_g_stRandomStructure.a_ulIndex[_lIndexNumber]>=RND_g_stRandomStructure.ulSizeOfTable)\
RND_g_stRandomStructure.a_ulIndex[_lIndexNumber] = 0;\
}
/*************************************************************************/
#define RND_M_ulGetRandomValue(_lIndexNumber)\
(RND_g_stRandomStructure.p_ulTable[RND_g_stRandomStructure.a_ulIndex[_lIndexNumber]])
/*************************************************************************/
#define RND_M_vGetRandomVector(_lIndexNumber,Vect) \
{ register unsigned long ulTemp=RND_g_stRandomStructure.a_ulIndex[_lIndexNumber]; \
(Vect)->xX=(MTH_tdxReal) RND_g_stRandomStructure.p_ulTable[ulTemp++]; \
if (ulTemp>=RND_g_stRandomStructure.ulSizeOfTable) ulTemp = 0; \
(Vect)->xY=(MTH_tdxReal) RND_g_stRandomStructure.p_ulTable[ulTemp++]; \
if (ulTemp>=RND_g_stRandomStructure.ulSizeOfTable) ulTemp = 0; \
(Vect)->xZ=(MTH_tdxReal) RND_g_stRandomStructure.p_ulTable[ulTemp++]; \
if (ulTemp>=RND_g_stRandomStructure.ulSizeOfTable) ulTemp = 0; \
RND_g_stRandomStructure.a_ulIndex[_lIndexNumber]=ulTemp; \
}
/*************************************************************************/
#ifdef U64
void RND_fn_vSetSeed(unsigned long _ulSeed)
{
RND_ulRandVal=_ulSeed;
}
#endif
/*************************************************************************/
void RND_fn_vFirstInitRandom(void)
{
Erm_M_InitErrMsg(RND);
Mmg_M_InitMmg(RND);
Mmg_fn_cCheckAlignmentValidity();
RND_g_stRandomStructure.hLastUsedIndex = 0;
}
/*************************************************************************/
void RND_fn_vInitRandom(void)
{
#if !defined(U64)
/**** Script initialisation ****/
SCR_fn_v_RdL0_RegisterCallback("RandomDescription",RND_fn_eRandomScriptCallBack,SCR_CRC_c_RdL0_ForSection);
#else /* U64 */
#define D_U64_NB_ELEMENTS 256
#ifdef CHECK_MEMORY
Mmg_M_InitSpecificBlock(RND,E_ucRNDMemoryBlock, C_uwAllocSize+D_U64_NB_ELEMENTS*sizeof(unsigned long), C_ulDefaultMaxNbStaticMalloc, 4, C_BlockWithFreeFlag | C_Check_AlignementFlag | C_Check_OverflowFlag);
#else /* CHECK_MEMORY */
Mmg_M_InitSpecificBlock(RND,E_ucRNDMemoryBlock, D_U64_NB_ELEMENTS*sizeof(unsigned long), C_ulDefaultMaxNbStaticMalloc, 4, C_BlockWithoutFreeFlag | C_Check_AlignementFlag | C_Check_OverflowFlag);
#endif /* CHECK_MEMORY */
#ifndef FINAL_VERSION
RND_fn_vSetSeed( 1 );
#else
RND_fn_vSetSeed( osGetCount() );
#endif /* FINAL_VERSION */
Mmg_M_SetModeAlloc4Ch(RND,E_ucRNDMemoryBlock,C_ucMmgDefaultChannel);
RND_g_stRandomStructure.ulSizeOfTable = D_U64_NB_ELEMENTS;
MMG_fn_vAddMemoryInfo (MMG_C_lTypeRND , MMG_C_lSubTypeRND , NULL);
RND_g_stRandomStructure.p_ulTable = Mmg_fn_p_vAlloc4Ch(D_U64_NB_ELEMENTS*sizeof(unsigned long),C_ucMmgDefaultChannel);
RND_fn_vComputeRandomTable();
#endif /* U64 */
}
/*************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC 04/06/99 */
void RND_fn_vDesinitRandom(void)
{
#if !defined(U64)
SCR_fn_v_RdL0_DeleteRegisterCallback("RandomDescription",SCR_CRC_c_RdL0_ForSection, SCR_CDR_c_RdL0_Contains);
#endif /* U64 */
Mmg_M_DeleteBlock(RND,E_ucRNDMemoryBlock);
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC 04/06/99 */
/*************************************************************************/
#if !defined(RETAIL) || defined(FINAL_VERSION_FOR_TESTERS)
void RND_PrintUsedStaticMemory(void)
{
Mmg_M_PrintUsedStaticMemoryInModule(RND);
}
#endif !defined(RETAIL) || defined(FINAL_VERSION_FOR_TESTERS)
/**************************************************************************/
/*XB*/
#ifdef CHECK_MEMORY
void RND_CheckMemory(void)
{
Mmg_M_CheckMemory(RND);
}
#endif /* CHECK_MEMORY */
/*End XB*/
/**************************************************************************/
/* XB 02/06/99 */
#ifndef FINAL_VERSION
unsigned long RND_fn_ulGetUsedStaticMemory(void)
{
return Mmg_M_GetUsedStaticMemory(RND);
}
#endif /* FINAL_VERSION */
/* End XB 02/06/99 */
/**************************************************************************/
RND_tdxHandleToRandomIndex RND_fn_hReserveANewHandleIndex(void)
{
if (RND_g_stRandomStructure.hLastUsedIndex>RND_C_MaxIndex)
M_RNDFatalError(E_uwRNDIncreaseRND_C_MaxIndex);
RND_g_stRandomStructure.hLastUsedIndex++;
return(RND_g_stRandomStructure.hLastUsedIndex-1);
}
/*************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
void RND_fn_vReadRandomScript(char *_szName)
{
#if !defined(U64)
SCR_fnp_st_RdL0_AnalyseSection(_szName, SCR_CDF_uw_Anl_ForceAnalyse);
#endif /* U64 */
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
void RND_fn_vComputeRandomTable(void)
{
unsigned long i;
#ifndef U64
srand((unsigned)GetTickCount());
#endif /* U64 */
RND_g_stRandomStructure.ulMaxValueInTable = 0;
for (i=0;i<RND_g_stRandomStructure.ulSizeOfTable;i++)
{
#ifndef U64
RND_g_stRandomStructure.p_ulTable[i] = rand();
#else /* U64 */
RND_g_stRandomStructure.p_ulTable[i] = RND_M_ulRand();
#endif /* U64 */
}
RND_fn_vRemapRandomTable();
}
/*************************************************************************/
void RND_fn_vRemapRandomTable(void)
{
unsigned long i;
unsigned long ulMinValueInTable;
ulMinValueInTable = RND_g_stRandomStructure.p_ulTable[0];
RND_g_stRandomStructure.ulMaxValueInTable = 0;
for (i=0;i<RND_g_stRandomStructure.ulSizeOfTable;i++)
{
if (RND_g_stRandomStructure.p_ulTable[i]<ulMinValueInTable)
ulMinValueInTable = RND_g_stRandomStructure.p_ulTable[i];
}
for (i=0;i<RND_g_stRandomStructure.ulSizeOfTable;i++)
{
RND_g_stRandomStructure.p_ulTable[i]-=ulMinValueInTable;
if (RND_g_stRandomStructure.p_ulTable[i]>RND_g_stRandomStructure.ulMaxValueInTable)
RND_g_stRandomStructure.ulMaxValueInTable = RND_g_stRandomStructure.p_ulTable[i];
}
/*RND_g_stRandomStructure.xMaxValueInTable = (MTH_tdxReal)RND_g_stRandomStructure.ulMaxValueInTable;*/
RND_g_stRandomStructure.ulMaxValueInTable ++;
RND_g_stRandomStructure.xInverseMaxValueInTable = MTH_M_xDiv(MTH_C_ONE,(MTH_tdxReal)RND_g_stRandomStructure.ulMaxValueInTable);
/* Oliv' - Portage v14 - why isn't it initialized at all ?*/
memset( RND_g_stRandomStructure.a_ulIndex, 0, RND_C_MaxIndex*sizeof(unsigned long) );
/* EndOfOliv'*/
}
/*************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
void RND_fn_vReinitRandomTable(void)
{
long i;
for (i=0;i<RND_C_MaxIndex;i++)
RND_g_stRandomStructure.a_ulIndex[i] = 0;
}
/*ANNECY BBB {*/
/*************************************************************************/
void RDN_fn_vSetRandomSeed(RND_tdxHandleToRandomIndex _lIndexNumber, long _lNewSeed)
{
if ( _lNewSeed < 0 )
_lNewSeed = 0;
else
_lNewSeed %= RND_g_stRandomStructure.ulSizeOfTable;
RND_g_stRandomStructure.a_ulIndex[_lIndexNumber] = _lNewSeed;
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
/*ANNECY BBB }*/
/*************************************************************************/
unsigned long RND_fn_ulGetUnsignedLongRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,unsigned long _ulMin,unsigned long _ulMax)
{
unsigned long ulValue;
ulValue = (_ulMin + ((1+_ulMax-_ulMin)*RND_M_ulGetRandomValue(_lIndexNumber))/(RND_g_stRandomStructure.ulMaxValueInTable+1));
RND_M_vIncIndex(_lIndexNumber);
return (ulValue);
}
/*************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
unsigned char RND_fn_ulGetUnsignedCharRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,unsigned char _ucMin,unsigned char _ucMax)
{
unsigned char ucValue;
ucValue = (unsigned char)(_ucMin + ((_ucMax+1-_ucMin)*RND_M_ulGetRandomValue(_lIndexNumber))/(RND_g_stRandomStructure.ulMaxValueInTable+1));
RND_M_vIncIndex(_lIndexNumber);
return (ucValue);
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
/*************************************************************************/
long RND_fn_lGetLongRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,long _lMin,long _lMax)
{
long lValue;
lValue = (_lMin + ((_lMax+1-_lMin)*(long)RND_M_ulGetRandomValue(_lIndexNumber))/(RND_g_stRandomStructure.ulMaxValueInTable+1));
RND_M_vIncIndex(_lIndexNumber);
return (lValue);
}
/*************************************************************************/
MTH_tdxReal RND_fn_xGetRealRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,MTH_tdxReal _xMin,MTH_tdxReal _xMax)
{
MTH_tdxReal xValue;
/* xValue = (_xMin + ((_xMax-_xMin)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);*/
xValue = (_xMin + ((_xMax-_xMin)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))*RND_g_stRandomStructure.xInverseMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
return (xValue);
}
/*************************************************************************/
#ifndef _FIRE_DEADCODE_U64_ /* Added by RUC */
struct MTH3D_tdstVector_ *RND_fn_p_stGetVectorRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,struct MTH3D_tdstVector_ *_p_stMin,struct MTH3D_tdstVector_ *_p_stMax,struct MTH3D_tdstVector_ *_p_stReturnedVector)
{
/*
_p_stReturnedVector->xX = (_p_stMin->xX + ((_p_stMax->xX-_p_stMin->xX)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedVector->xY = (_p_stMin->xY + ((_p_stMax->xY-_p_stMin->xY)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedVector->xZ = (_p_stMin->xZ + ((_p_stMax->xZ-_p_stMin->xZ)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
*/
MTH3D_tdstVector stScaleVector;
MTH3D_M_vSubVector(_p_stReturnedVector,_p_stMax,_p_stMin);
RND_M_vGetRandomVector(_lIndexNumber,&stScaleVector);
MTH3D_M_vScaleVector(_p_stReturnedVector,_p_stReturnedVector,&stScaleVector);
MTH3D_M_vAddVector(_p_stReturnedVector,_p_stReturnedVector,_p_stMin);
MTH3D_M_vMulScalarVector(_p_stReturnedVector,RND_g_stRandomStructure.xInverseMaxValueInTable,_p_stReturnedVector);
return (_p_stReturnedVector);
}
/*************************************************************************/
struct MTH3D_tdstMatrix_ *RND_fn_p_stGetMatrixRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber,struct MTH3D_tdstMatrix_ *_p_stMin,struct MTH3D_tdstMatrix_ *_p_stMax,struct MTH3D_tdstMatrix_ *_p_stReturnedMatrix)
{
/*
_p_stReturnedMatrix->stCol_0.xX = (_p_stMin->stCol_0.xX + ((_p_stMax->stCol_0.xX-_p_stMin->stCol_0.xX)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedMatrix->stCol_0.xY = (_p_stMin->stCol_0.xY + ((_p_stMax->stCol_0.xY-_p_stMin->stCol_0.xY)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedMatrix->stCol_0.xZ = (_p_stMin->stCol_0.xZ + ((_p_stMax->stCol_0.xZ-_p_stMin->stCol_0.xZ)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedMatrix->stCol_1.xX = (_p_stMin->stCol_1.xX + ((_p_stMax->stCol_1.xX-_p_stMin->stCol_1.xX)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedMatrix->stCol_1.xY = (_p_stMin->stCol_1.xY + ((_p_stMax->stCol_1.xY-_p_stMin->stCol_1.xY)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedMatrix->stCol_1.xZ = (_p_stMin->stCol_1.xZ + ((_p_stMax->stCol_1.xZ-_p_stMin->stCol_1.xZ)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedMatrix->stCol_2.xX = (_p_stMin->stCol_2.xX + ((_p_stMax->stCol_2.xX-_p_stMin->stCol_2.xX)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedMatrix->stCol_2.xY = (_p_stMin->stCol_2.xY + ((_p_stMax->stCol_2.xY-_p_stMin->stCol_2.xY)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
_p_stReturnedMatrix->stCol_2.xZ = (_p_stMin->stCol_2.xZ + ((_p_stMax->stCol_2.xZ-_p_stMin->stCol_2.xZ)*(MTH_tdxReal)RND_M_ulGetRandomValue(_lIndexNumber))/RND_g_stRandomStructure.xMaxValueInTable);
RND_M_vIncIndex(_lIndexNumber);
RND_M_vIncIndex(_lIndexNumber);
*/
MTH3D_tdstVector stScaleVector;
MTH3D_M_vSubMatrix(_p_stReturnedMatrix,_p_stMax,_p_stMin);
RND_M_vGetRandomVector(_lIndexNumber,&stScaleVector);
MTH3D_M_vScaleVector(&(_p_stReturnedMatrix->stCol_0),&(_p_stReturnedMatrix->stCol_0),&stScaleVector);
RND_M_vGetRandomVector(_lIndexNumber,&stScaleVector);
MTH3D_M_vScaleVector(&(_p_stReturnedMatrix->stCol_1),&(_p_stReturnedMatrix->stCol_1),&stScaleVector);
RND_M_vGetRandomVector(_lIndexNumber,&stScaleVector);
MTH3D_M_vScaleVector(&(_p_stReturnedMatrix->stCol_2),&(_p_stReturnedMatrix->stCol_2),&stScaleVector);
MTH3D_M_vAddMatrix(_p_stReturnedMatrix,_p_stReturnedMatrix,_p_stMin);
MTH3D_M_vMulScalarMatrix(_p_stReturnedMatrix,RND_g_stRandomStructure.xInverseMaxValueInTable,_p_stReturnedMatrix);
return (_p_stReturnedMatrix);
}
/*************************************************************************/
unsigned long RND_fn_ulGetRandomValue(RND_tdxHandleToRandomIndex _lIndexNumber)
{
return(RND_g_stRandomStructure.p_ulTable[RND_g_stRandomStructure.a_ulIndex[_lIndexNumber]]);
}
/*************************************************************************/
void RND_fn_vIncIndex(RND_tdxHandleToRandomIndex _lIndexNumber)
{
RND_g_stRandomStructure.a_ulIndex[_lIndexNumber]++;
if (RND_g_stRandomStructure.a_ulIndex[_lIndexNumber]>=RND_g_stRandomStructure.ulSizeOfTable)
RND_fn_vReinitRandomTable();
}
#endif /* _FIRE_DEADCODE_U64_ */ /* Added by RUC */
/*************************************************************************/

View File

@@ -0,0 +1,123 @@
/*=========================================================================
* RND_Scpt.c :
* Script read
*
* (c) Ubi Studios 1997
*=======================================================================*/
#define D_RND_Input_StructureDefine
#include "Acp_base.h"
#include "RND_CPA.h"
#include "MemRND.h"
#include "ErrRND.h"
#include "RND_Main.h"
#include "RND_Scpt.h"
#include "RND_Str.h"
#undef D_RND_Input_StructureDefine
/*#define RND_WITHOUT_SNA // just for Concat*/
/*************************************************************************/
#if (!defined(U64))
#ifndef RND_WITHOUT_SNA
#include "sna.h"
#endif
SCR_tde_Anl_ReturnValue RND_fn_eRandomScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction)
{
FILE *p_stFile;
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
char szFilename[_MAX_PATH];
_p_stFile = _p_stFile;
if (M_IsTitle)
{
M_CheckScriptParamNumber(1);
RND_g_stRandomStructure.ulSizeOfTable = atoi(_ap_szParams[0]);
Mmg_M_InitBlock(RND,E_ucRNDMemoryBlock,C_uwAllocSize+RND_g_stRandomStructure.ulSizeOfTable*sizeof(unsigned long));
Mmg_M_SetModeAlloc4Ch(RND,E_ucRNDMemoryBlock,C_ucMmgDefaultChannel);
MMG_fn_vAddMemoryInfo (MMG_C_lTypeRND , MMG_C_lSubTypeRND , NULL);
RND_g_stRandomStructure.p_ulTable = Mmg_fn_p_vAlloc4Ch(RND_g_stRandomStructure.ulSizeOfTable*sizeof(unsigned long),C_ucMmgDefaultChannel);
/* GuS 98/08/07 */
#ifndef RND_WITHOUT_SNA
#ifndef RETAIL
if ( SNA_M_bTestSaveGameDesc() )
SNA_fn_vWriteLongEntryToCurrentDscFile( SNA_C_ul_RandomDescTitle, atol(_ap_szParams[0]) );
#endif
#endif
}
else if (M_IsEntry)
{
if (M_ActionIs("ComputeTable"))
{
RND_fn_vComputeRandomTable();
#ifndef RND_WITHOUT_SNA
#ifndef RETAIL
if ( SNA_M_bTestSaveGameDesc() )
SNA_fn_vWriteNoParamEntryToCurrentDscFile( SNA_C_ul_RandomComputeTable );
#endif
#endif
}
else if (M_ActionIs("ReadTable"))
{
strcpy(szFilename,SCR_M_RdL0_GetOpenFileNameR(0));
if (strrchr(szFilename,'.')!=NULL)
*strrchr(szFilename,'.') = 0;
strcat(szFilename,".trn");
if ((p_stFile=fopen(szFilename,"rb"))!=NULL)
{
fread(RND_g_stRandomStructure.p_ulTable,RND_g_stRandomStructure.ulSizeOfTable,sizeof(unsigned long),p_stFile);
fclose(p_stFile);
#ifndef RND_WITHOUT_SNA
#ifndef RETAIL
if ( SNA_M_bTestSaveGameDesc() )
{
SNA_fn_vWriteNoParamEntryToCurrentDscFile( SNA_C_ul_RandomReadTable );
SNA_fn_vWriteBlockToCurrentDscFile
(
(char *)RND_g_stRandomStructure.p_ulTable,
RND_g_stRandomStructure.ulSizeOfTable * sizeof(unsigned long)
);
}
#endif
#endif
}
else
{
RND_fn_vComputeRandomTable();
#ifndef RND_WITHOUT_SNA
#ifndef RETAIL
if ( SNA_M_bTestSaveGameDesc() )
SNA_fn_vWriteNoParamEntryToCurrentDscFile( SNA_C_ul_RandomComputeTable );
#endif
#endif
}
}
RND_fn_vRemapRandomTable();
}
#ifndef RND_WITHOUT_SNA
#ifndef RETAIL
else if( M_IsEnd )
{
if ( SNA_M_bTestSaveGameDesc() )
SNA_fn_vWriteNoParamEntryToCurrentDscFile( SNA_C_ulEndOfDescSection );
}
#endif
#endif
return(eReturnValue);
}
#endif /* !U64*/
/*************************************************************************/

View File

@@ -0,0 +1,5 @@
SCC = This is a source code control file
[RND.vcproj]
SCC_Aux_Path = "P4SCC#srvperforce-ma:1666##raymandata##Editor"
SCC_Project_Name = Perforce Project

View File

@@ -0,0 +1,145 @@
#define D_RND_Input_StructureDefine
#include "RND_CPA.h"
#include "MemRND.h"
#include "ErrRND.h"
#include "RND_Main.h"
#include "RND_Scpt.h"
#include "RND_Str.h"
#undef D_RND_Input_StructureDefine
#ifndef RND_WITHOUT_SNA
#include "sna.h"
#endif
#include "ldt.h"
#define lTagComputeTable 'pmoC'
#define lTagReadTable 'daeR'
/*****************************************************************
Function name : fn_iCreateRandom
Description :
Author : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
Creation Date : 14-Oct-98
Modified :
Return type : int
Argument : LDT_tdst_Link *pLink
*****************************************************************/
int fn_iCreateRandom( LDT_tdst_Link *pLink )
{
RND_g_stRandomStructure.ulSizeOfTable = atoi(LDT_szGetParam(1));
Mmg_M_InitBlock(RND,E_ucRNDMemoryBlock,C_uwAllocSize+RND_g_stRandomStructure.ulSizeOfTable*sizeof(unsigned long));
Mmg_M_SetModeAlloc4Ch(RND,E_ucRNDMemoryBlock,C_ucMmgDefaultChannel);
MMG_fn_vAddMemoryInfo (MMG_C_lTypeRND , MMG_C_lSubTypeRND , NULL);
RND_g_stRandomStructure.p_ulTable = Mmg_fn_p_vAlloc4Ch(RND_g_stRandomStructure.ulSizeOfTable*sizeof(unsigned long),C_ucMmgDefaultChannel);
/* GuS 98/08/07 */
#ifndef RND_WITHOUT_SNA
if ( SNA_M_bTestSaveGameDesc() )
SNA_fn_vWriteLongEntryToCurrentDscFile( SNA_C_ul_RandomDescTitle, atol(LDT_szGetParam(1)) );
#endif
return 0;
}
/*****************************************************************
Function name : fn_iLoadRandom
Description :
Author : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
Creation Date : 14-Oct-98
Modified :
Return type : int
Argument : LDT_tdst_Link *pLink
*****************************************************************/
int fn_iLoadRandom( LDT_tdst_Link *pLink )
{
LDT_tdeParseResult result=ParseResult_BeginSection;
char szFilename[_MAX_PATH];
FILE *p_stFile;
while( result!=ParseResult_EndSection )
{
result=LDT_GetNextEntry();
switch( result )
{
case ParseResult_Entry: /* an entry */
{
char *szEntry=LDT_szGetEntryName();
switch (*(long*)szEntry)
{
case lTagComputeTable : /* */
{
RND_fn_vComputeRandomTable();
#ifndef RND_WITHOUT_SNA
if ( SNA_M_bTestSaveGameDesc() )
SNA_fn_vWriteNoParamEntryToCurrentDscFile( SNA_C_ul_RandomComputeTable );
#endif
RND_fn_vRemapRandomTable();
}
break;
case lTagReadTable : /* */
{
char szSectionName[_MAX_PATH], szParent[_MAX_PATH], szType[_MAX_PATH], szId[_MAX_PATH] ;
LDT_ComputeSectionName( pLink, szSectionName );
LDT_SplitSectionName( szSectionName, szFilename, szParent, szType, szId );
if (strrchr(szFilename,'.')!=NULL)
*strrchr(szFilename,'.') = 0;
strcat(szFilename,".trn");
if ((p_stFile=fopen(szFilename,"rb"))!=NULL)
{
fread(RND_g_stRandomStructure.p_ulTable,RND_g_stRandomStructure.ulSizeOfTable,sizeof(unsigned long),p_stFile);
fclose(p_stFile);
#ifndef RND_WITHOUT_SNA
if ( SNA_M_bTestSaveGameDesc() )
{
SNA_fn_vWriteNoParamEntryToCurrentDscFile( SNA_C_ul_RandomReadTable );
SNA_fn_vWriteBlockToCurrentDscFile
(
(char *)RND_g_stRandomStructure.p_ulTable,
RND_g_stRandomStructure.ulSizeOfTable * sizeof(unsigned long)
);
}
#endif
}
else
{
RND_fn_vComputeRandomTable();
#ifndef RND_WITHOUT_SNA
if ( SNA_M_bTestSaveGameDesc() )
SNA_fn_vWriteNoParamEntryToCurrentDscFile( SNA_C_ul_RandomComputeTable );
#endif
}
RND_fn_vRemapRandomTable();
}
break;
}
}
}
}
#ifndef RND_WITHOUT_SNA
if ( SNA_M_bTestSaveGameDesc() )
SNA_fn_vWriteNoParamEntryToCurrentDscFile( SNA_C_ulEndOfDescSection );
#endif
return 0;
}