Files
TeslaRel410/CODE/RP/RP/RPTOOL.CPP
T
CydandClaude Fable 5 fdd9ac9d97 Initial import: Tesla Release 4.10 (Tesla:BattleTech & Tesla:Red Planet)
Archival snapshot of the Virtual World Entertainment Tesla cockpit
software, 1994-1996: MUNGA engine and L4 pod layer source (Borland
C++ 5.0), BT/RP game code, and game content (models, audio, maps,
gauges, Division renderer data). Includes third-party libraries:
Division dVS/DPL graphics, HMI SOS audio, WATTCP networking.

Files are preserved byte-for-byte (.gitattributes disables all
line-ending conversion). README.md documents the layout, target
hardware, and toolchain.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 13:21:58 -05:00

210 lines
4.8 KiB
C++

//===========================================================================//
// File: txttores.cpp //
// Project: Resource Tools //
// Author: Jerry Edsall //
// Purpose: Program to convert Notation files to MUNGA .res files. //
//---------------------------------------------------------------------------//
// Copyright (c) 1995 Virtual World Entertainment, Inc. //
// All rights reserved worldwide. //
// This unpublished source code is PROPRIETARY and CONFIDENTIAL. //
//===========================================================================//
#include <rp.hpp>
#pragma hdrstop
#if !defined(RPTOOL_HPP)
# include <rptool.hpp>
#endif
#if !defined(FILEUTIL_HPP)
# include <fileutil.hpp>
#endif
#if !defined(VTV_HPP)
# include <vtv.hpp>
#endif
#if !defined(SCORZONE_HPP)
# include <scorzone.hpp>
#endif
#if !defined(RIVET_HPP)
# include <rivet.hpp>
#endif
#if !defined(DEMOPACK_HPP)
# include <demopack.hpp>
#endif
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
Logical
RPTool::CreateMakeMessage(
const char* class_name,
Entity::MakeMessage *creation_message,
NotationFile *model_file,
const ResourceDirectories *directories
)
{
if (!stricmp(class_name,"VTVClassID"))
{
VTV::CreateMakeMessage(
(VTV::MakeMessage*)creation_message,
model_file,
directories
);
return True;
}
else if (!stricmp(class_name,"ScoreZoneClassID"))
{
ScoreZone::CreateMakeMessage(
(ScoreZone::MakeMessage*)creation_message,
model_file,
directories
);
return True;
}
return
ApplicationTool::CreateMakeMessage(
class_name,
creation_message,
model_file,
directories
);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
RPTool::CreateModelResource(
ModelData &model_resources,
const char *model_class,
ResourceFile *resource_file,
const char *model_name,
NotationFile *model_file,
const ResourceDirectories *directories
)
{
if (!stricmp(model_class, "VTVClassID"))
{
#if 0
strcpy(ops_file_data, ops_name);
strcat(ops_file_data, "::Standard::Vehicle::");
strcat(ops_file_data, model_name );
strcpy(ops_file_page, ops_name);
strcat(ops_file_page, "::Standard::VehicleList");
ops_file->AppendEntry(ops_file_page, "vehicle", ops_file_data);
ops_file->SetEntry(ops_file_data, "tag", model_name );
ops_file->SetEntry(ops_file_data, "classID", "RPVh");
ops_file->AppendEntry(ops_file_data, NULL, (char *)NULL);
#endif
model_resources.gameResourceID =
VTV::CreateModelResource(
resource_file,
model_name,
model_file,
directories
);
model_resources.subsystemResourceID =
VTV::CreateSubsystemStream(
resource_file,
model_name,
model_file,
directories
);
model_resources.skeletonResourceID =
VTV::CreateSkeletonStream(
resource_file,
model_name,
model_file,
directories
);
model_resources.damageZoneResourceID =
VTV::CreateDamageZoneStream(
resource_file,
model_name,
model_file,
directories
);
}
else if (!stricmp(model_class, "RivetClassID"))
{
model_resources.gameResourceID =
Rivet::CreateModelResource(
resource_file,
model_name,
model_file,
directories
);
}
else if (!stricmp(model_class, "DemolitionPackClassID"))
{
model_resources.gameResourceID =
DemolitionPack::CreateModelResource(
resource_file,
model_name,
model_file,
directories
);
}
else if (!stricmp(model_class, "ScoreZoneClassID"))
{
model_resources.gameResourceID =
ScoreZone::CreateModelResource(
resource_file,
model_name,
model_file,
directories
);
}
else
{
ApplicationTool::CreateModelResource(
model_resources,
model_class,
resource_file,
model_name,
model_file,
directories
);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
ResourceDescription::ResourceID
RPTool::CreateControlMappingStream(
const char *model_class,
const char *mapping_name,
NotationFile *mapping_file,
ResourceFile *resource_file,
const char *model_name,
NotationFile *model_file,
const ResourceDirectories *directories,
PlatformTool *current_tool
)
{
if (!stricmp(model_class, "VTVClassID"))
{
return
VTV::CreateControlMappingStream(
mapping_name,
mapping_file,
platformTool->GetControlMappingFunction(),
resource_file,
model_name,
model_file,
directories,
current_tool
);
}
else
{
return -1;
}
}