Files
TeslaRel410/CODE/BT/BT/BTTOOL.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 "bt.hpp"
#if !defined(BTTOOL_HPP)
# include "bttool.hpp"
#endif
#if !defined(FILEUTIL_HPP)
# include <fileutil.hpp>
#endif
#if !defined(MECH_HPP)
# include "mech.hpp"
#endif
#if !defined(BTPLAYER_HPP)
# include "btplayer.hpp"
#endif
#if !defined(PROJTILE_HPP)
# include "projtile.hpp"
#endif
#if !defined(MISSILE_HPP)
# include "missile.hpp"
#endif
#if !defined(BTTEAM_HPP)
# include "btteam.hpp"
#endif
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
Logical
BTTool::CreateMakeMessage(
const char* class_name,
Entity::MakeMessage *creation_message,
NotationFile *model_file,
const ResourceDirectories *directories
)
{
if (!stricmp(class_name,"MechClassID"))
{
Mech::CreateMakeMessage(
(Mech::MakeMessage*)creation_message,
model_file,
directories
);
return True;
}
else if (!stricmp(class_name, "BTTeamClassID"))
{
BTTeam::CreateMakeMessage(
(BTTeam::MakeMessage*)creation_message,
model_file,
directories
);
return True;
}
return
ApplicationTool::CreateMakeMessage(
class_name,
creation_message,
model_file,
directories
);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
void
BTTool::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, "MechClassID"))
{
#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", "BTVh");
ops_file->AppendEntry(ops_file_data, NULL, (char *)NULL);
#endif
model_resources.gameResourceID =
Mech::CreateModelResource(
resource_file,
model_name,
model_file,
directories
);
model_resources.subsystemResourceID =
Mech::CreateSubsystemStream(
resource_file,
model_name,
model_file,
directories
);
model_resources.damageZoneResourceID =
Mech::CreateDamageZoneStream(
resource_file,
model_name,
model_file,
directories
);
model_resources.skeletonResourceID =
Mech::CreateSkeletonStream(
resource_file,
model_name,
model_file,
directories
);
model_resources.explosionTableResourceID =
Mech::CreateExplosionTableStream(
resource_file,
model_name,
model_file,
directories
);
}
else if (!stricmp(model_class, "ProjectileClassID"))
{
model_resources.gameResourceID =
Projectile::CreateModelResource(
resource_file,
model_name,
model_file,
directories
);
}
else if (!stricmp(model_class, "MissileClassID"))
{
model_resources.gameResourceID =
Missile::CreateModelResource(
resource_file,
model_name,
model_file,
directories
);
}
else
{
ApplicationTool::CreateModelResource(
model_resources,
model_class,
resource_file,
model_name,
model_file,
directories
);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
ResourceDescription::ResourceID
BTTool::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, "MechClassID"))
{
return
Mech::CreateControlMappingStream(
mapping_name,
mapping_file,
platformTool->GetControlMappingFunction(),
resource_file,
model_name,
model_file,
directories,
current_tool
);
}
else
{
return -1;
}
}