commit x64 compilation from lulu cause the other branch dont seems to compile properly at home

This commit is contained in:
2026-07-17 16:08:20 +02:00
parent c0f3eeb00d
commit 0efa4ee6f7
625 changed files with 117283 additions and 4426 deletions

View File

@ -0,0 +1,86 @@
/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#include "data/registry.h"
using namespace GS;
using GS::NML::Tag;
//------------------------------------------------------------------------------
Tag *Registry::CreateKey(const char *path, const Variant *value, bool /*recursive*/)
{
StringList tag_path_list;
String(path).TrimChar(';').Split(":", tag_path_list);
Tag *ctag = NULL;
for (uint n = 0; n < tag_path_list.GetCount(); ++n)
{
String &tag_path = tag_path_list.ObjectAt(n);
Tag *ntag = ctag ? ctag->GetTag(tag_path) : GetTag(tag_path);
if (ntag == NULL)
ntag = ctag ? ctag->AddChild(tag_path) : AddRoot(tag_path);
if ((ctag = ntag) == NULL)
return NULL;
}
if (ctag && value)
{
ctag->GetValue() = *value;
RegistryKeyChange msg(path);
BroadcastMessage(RegistryMsg_KeyChange, this, &msg);
}
return ctag;
}
Tag *Registry::CreateKey(const char *path, const Variant &value, bool recursive)
{ return CreateKey(path, &value, recursive); }
bool Registry::DeleteKey(const char *path)
{
StringList tag_path_list;
String(path).Split(":", tag_path_list);
Tag *ctag = NULL, *ptag = NULL;
for (uint n = 0; n < tag_path_list.GetCount(); ++n)
{
ptag = ctag;
String &tag_path = tag_path_list.ObjectAt(n);
Tag *ntag = ctag ? ctag->GetTag(tag_path) : GetTag(tag_path);
if (!ntag)
return false;
ctag = ntag;
}
if (!ctag)
return false;
if (ptag)
ptag->RemoveTag(ctag);
else
tags.Remove(ctag);
_safe_delete(ctag);
return true;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
float Registry::GetReal(const char *path, float default_value) const
{
Tag *tag = GetTag(path);
float v;
if (!tag || !tag->GetValue().Get(v))
return default_value;
return v;
}
bool Registry::GetBool(const char *path, bool default_value) const
{
Tag *tag = GetTag(path);
bool v;
if (!tag || !tag->GetValue().Get(v))
return default_value;
return v;
}
//------------------------------------------------------------------------------