MCPcopy Create free account
hub / github.com/OpenNFS/OpenNFS / ONFSTrack

Method ONFSTrack

src/Loaders/trk_loader.cpp:7–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5#include "trk_loader.h"
6
7ONFSTrack::ONFSTrack(NFSVer nfs_version, const std::string &track_name) {
8 tag = nfs_version;
9 name = track_name;
10
11 std::stringstream track_path;
12 track_path << RESOURCE_PATH << ToString(tag);
13
14 switch (tag) {
15 case NFS_2:
16 track_path << NFS_2_TRACK_PATH << track_name;
17 trackData = NFS2<PC>::LoadTrack(track_path.str());
18 nBlocks = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->nBlocks;
19 camera_animations = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->cameraAnimation;
20 textureArrayID = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->textureArrayID;
21 track_blocks = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->track_blocks;
22 global_objects = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->global_objects;
23 break;
24 case NFS_2_SE:
25 track_path << NFS_2_SE_TRACK_PATH << track_name;
26 trackData = NFS2<PC>::LoadTrack(track_path.str());
27 nBlocks = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->nBlocks;
28 camera_animations = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->cameraAnimation;
29 textureArrayID = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->textureArrayID;
30 track_blocks = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->track_blocks;
31 global_objects = boost::get<shared_ptr<NFS2_DATA::PC::TRACK>>(trackData)->global_objects;
32 break;
33 case NFS_3:
34 track_path << NFS_3_TRACK_PATH << track_name;
35 trackData = NFS3::LoadTrack(track_path.str());
36 nBlocks = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->nBlocks;
37 camera_animations = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->cameraAnimation;
38 textureArrayID = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->textureArrayID;
39 track_blocks = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->track_blocks;
40 global_objects = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->global_objects;
41 break;
42 case NFS_3_PS1:
43 track_path << "/" << track_name;
44 trackData = NFS2<PS1>::LoadTrack(track_path.str());
45 nBlocks = boost::get<shared_ptr<NFS2_DATA::PS1::TRACK>>(trackData)->nBlocks;
46 camera_animations = boost::get<shared_ptr<NFS2_DATA::PS1::TRACK>>(trackData)->cameraAnimation;
47 textureArrayID = boost::get<shared_ptr<NFS2_DATA::PS1::TRACK>>(trackData)->textureArrayID;
48 track_blocks = boost::get<shared_ptr<NFS2_DATA::PS1::TRACK>>(trackData)->track_blocks;
49 global_objects = boost::get<shared_ptr<NFS2_DATA::PS1::TRACK>>(trackData)->global_objects;
50 break;
51 case NFS_4:
52 track_path << NFS_4_TRACK_PATH << track_name;
53 trackData = NFS4::LoadTrack(track_path.str());
54 nBlocks = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->nBlocks;
55 camera_animations = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->cameraAnimation;
56 textureArrayID = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->textureArrayID;
57 track_blocks = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->track_blocks;
58 global_objects = boost::get<shared_ptr<NFS3_4_DATA::TRACK>>(trackData)->global_objects;
59 break;
60 case UNKNOWN:
61 ASSERT(false, "Unknown track type!");
62 default:
63 break;
64 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected