Initial gamelib integration AAS2 with some animation and physics and another integration pass on idLib.
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
#include "framework/resource.h"
|
||||
|
||||
#include "framework/resourcelist.h"
|
||||
#include "idlib/lib_print.h"
|
||||
#include "idlib/text/str.h"
|
||||
|
||||
idResource::idResource()
|
||||
: trackedMemory(0), name("unnamed"), nextOnHashChain(nullptr),
|
||||
resourceListPtr(nullptr), resourceError(nullptr), networkID(-1),
|
||||
staleCount(0), resourceFlags(0), pad{} {
|
||||
}
|
||||
|
||||
idResource::~idResource() {
|
||||
if ((resourceFlags & 0x40u) != 0) {
|
||||
idLibPrint::FatalError("Resource deleted with staticResource set: %s",
|
||||
name.c_str());
|
||||
}
|
||||
if (resourceListPtr != nullptr) {
|
||||
resourceListPtr->Remove(this);
|
||||
}
|
||||
idResourceList::UnRegisterNetworkResource(this);
|
||||
}
|
||||
|
||||
void idResource::LoadResource() {
|
||||
const idResourceList* const list = GetResourceList();
|
||||
idLibPrint::FatalError("idResource::Load() for %s not implemented.\n",
|
||||
list != nullptr ? list->GetResourceTypeName() : "resource");
|
||||
}
|
||||
|
||||
bool idResource::ReloadIfStale() {
|
||||
return false;
|
||||
}
|
||||
|
||||
void idResource::WriteResourceFile() {
|
||||
const idResourceList* const list = GetResourceList();
|
||||
idLibPrint::FatalError(
|
||||
"resource type '%s' has not implemented WriteResourceFile()",
|
||||
list != nullptr ? list->GetResourceTypeName() : "resource");
|
||||
}
|
||||
|
||||
idResourceList* idResource::GetResourceList() {
|
||||
return resourceListPtr;
|
||||
}
|
||||
|
||||
void idResource::Print() {
|
||||
const idResourceList* const list = GetResourceList();
|
||||
const char* const typeName =
|
||||
list != nullptr ? list->GetResourceTypeName() : "resource";
|
||||
if (resourceError != nullptr) {
|
||||
idLibPrint::Printf("%s:%s:%s\n", typeName, name.c_str(),
|
||||
resourceError);
|
||||
} else {
|
||||
idLibPrint::Printf("%s:%s\n", typeName, name.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
void idResource::List() {
|
||||
Print();
|
||||
}
|
||||
|
||||
void idResource::SetName(const char* const newName) {
|
||||
idStr canonicalName(newName);
|
||||
canonicalName.MakeNameCanonical();
|
||||
if (idStr::Cmp(canonicalName.c_str(), name.c_str()) != 0) {
|
||||
name.Set(canonicalName.c_str());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user