Merge with develop
This commit is contained in:
parent
c7ef9d9773
commit
0da48b0abb
15 changed files with 110 additions and 62 deletions
|
@ -188,8 +188,8 @@ void CForm::read (xmlNodePtr node, CFormLoader &loader, CFormDfn *dfn, const std
|
||||||
if ( ((const char*)node->name == NULL) || (strcmp ((const char*)node->name, "FORM") != 0) )
|
if ( ((const char*)node->name == NULL) || (strcmp ((const char*)node->name, "FORM") != 0) )
|
||||||
{
|
{
|
||||||
// Make an error message
|
// Make an error message
|
||||||
warning (true, "read", "XML Syntax error in block line %p, node (%s) should be FORM.",
|
warning (true, "read", "XML Syntax error in block line %d, node (%s) should be FORM.",
|
||||||
node->content, node->name);
|
(sint)node->line, node->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get first struct node
|
// Get first struct node
|
||||||
|
@ -197,8 +197,8 @@ void CForm::read (xmlNodePtr node, CFormLoader &loader, CFormDfn *dfn, const std
|
||||||
if (child == NULL)
|
if (child == NULL)
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "Syntax error in block line %p, node (%s) should have a STRUCT child node.",
|
warning (true, "read", "Syntax error in block line %d, node (%s) should have a STRUCT child node.",
|
||||||
node->content, node->name);
|
(sint)node->line, node->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the struct
|
// Read the struct
|
||||||
|
|
|
@ -130,7 +130,7 @@ void CFormDfn::read (xmlNodePtr root, CFormLoader &loader, bool forceLoad, const
|
||||||
if ( ((const char*)root->name == NULL) || (strcmp ((const char*)root->name, "DFN") != 0) )
|
if ( ((const char*)root->name == NULL) || (strcmp ((const char*)root->name, "DFN") != 0) )
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML Syntax error in block line %p, node (%s) should be DFN.", root->content, root->name);
|
warning (true, "read", "XML Syntax error in block line %d, node (%s) should be DFN.", (sint)root->line, root->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Count the parent
|
// Count the parent
|
||||||
|
@ -162,8 +162,8 @@ void CFormDfn::read (xmlNodePtr root, CFormLoader &loader, bool forceLoad, const
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML Syntax error in block (%s) line %p, aguments Name not found.",
|
warning (true, "read", "XML Syntax error in block (%s) line %d, aguments Name not found.",
|
||||||
parent->name, parent->content);
|
parent->name, (sint)parent->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Next parent
|
// Next parent
|
||||||
|
@ -245,8 +245,8 @@ void CFormDfn::read (xmlNodePtr root, CFormLoader &loader, bool forceLoad, const
|
||||||
if ((Entries[childNumber].Type == NULL) && !forceLoad)
|
if ((Entries[childNumber].Type == NULL) && !forceLoad)
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "In XML block (%s) line %p, file not found %s.",
|
warning (true, "read", "In XML block (%s) line %d, file not found %s.",
|
||||||
child->name, child->content, Entries[childNumber].Filename.c_str ());
|
child->name, (sint)child->line, Entries[childNumber].Filename.c_str ());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the default value
|
// Read the default value
|
||||||
|
@ -262,8 +262,8 @@ void CFormDfn::read (xmlNodePtr root, CFormLoader &loader, bool forceLoad, const
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML In block (%s) line %p, no filename found for the .typ file.",
|
warning (true, "read", "XML In block (%s) line %d, no filename found for the .typ file.",
|
||||||
child->name, child->content);
|
child->name, (sint)child->line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (stricmp (typeName, "Dfn") == 0)
|
else if (stricmp (typeName, "Dfn") == 0)
|
||||||
|
@ -279,15 +279,15 @@ void CFormDfn::read (xmlNodePtr root, CFormLoader &loader, bool forceLoad, const
|
||||||
if ((Entries[childNumber].Dfn == NULL) && !forceLoad)
|
if ((Entries[childNumber].Dfn == NULL) && !forceLoad)
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML In block (%s) line %p, file not found %s.",
|
warning (true, "read", "XML In block (%s) line %d, file not found %s.",
|
||||||
child->name, child->content, Entries[childNumber].Filename.c_str ());
|
child->name, (sint)child->line, Entries[childNumber].Filename.c_str ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML In block (%s) line %p, no filename found for the .typ file.",
|
warning (true, "read", "XML In block (%s) line %d, no filename found for the .typ file.",
|
||||||
child->name, child->content);
|
child->name, (sint)child->line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (stricmp (typeName, "DfnPointer") == 0)
|
else if (stricmp (typeName, "DfnPointer") == 0)
|
||||||
|
@ -297,8 +297,8 @@ void CFormDfn::read (xmlNodePtr root, CFormLoader &loader, bool forceLoad, const
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML Syntax error in block (%s) line %p, element has not a valid type name attribut \"Type = %s\".",
|
warning (true, "read", "XML Syntax error in block (%s) line %d, element has not a valid type name attribut \"Type = %s\".",
|
||||||
child->name, child->content, typeName);
|
child->name, (sint)child->line, typeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the value
|
// Delete the value
|
||||||
|
@ -307,8 +307,8 @@ void CFormDfn::read (xmlNodePtr root, CFormLoader &loader, bool forceLoad, const
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML Syntax error in block (%s) line %p, element has no type name attribut \"Type = [Type][Dfn][DfnPointer]\".",
|
warning (true, "read", "XML Syntax error in block (%s) line %d, element has no type name attribut \"Type = [Type][Dfn][DfnPointer]\".",
|
||||||
child->name, child->content);
|
child->name, (sint)child->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the array attrib
|
// Get the array attrib
|
||||||
|
@ -325,8 +325,8 @@ void CFormDfn::read (xmlNodePtr root, CFormLoader &loader, bool forceLoad, const
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML Syntax error in block (%s) line %p, aguments Name not found.",
|
warning (true, "read", "XML Syntax error in block (%s) line %d, aguments Name not found.",
|
||||||
root->name, root->content);
|
root->name, (sint)root->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Next child
|
// Next child
|
||||||
|
|
|
@ -836,7 +836,7 @@ bool CFormElm::getInternalNodeByName (CForm *form, const std::string &name, cons
|
||||||
bool inArrayIndex = false;
|
bool inArrayIndex = false;
|
||||||
|
|
||||||
// Index in the array
|
// Index in the array
|
||||||
uint arrayIndex;
|
uint arrayIndex = 0;
|
||||||
|
|
||||||
// Bool next token must be an array index
|
// Bool next token must be an array index
|
||||||
bool wantArrayIndex = false;
|
bool wantArrayIndex = false;
|
||||||
|
@ -1653,7 +1653,7 @@ bool CFormElm::setValueByName (NLMISC::CRGBA value, const std::string &name, boo
|
||||||
{
|
{
|
||||||
char tmp[512];
|
char tmp[512];
|
||||||
smprintf (tmp, 512, "%d,%d,%d", value.R, value.G, value.B);
|
smprintf (tmp, 512, "%d,%d,%d", value.R, value.G, value.B);
|
||||||
return setValueByName (tmp, name, created);
|
return setValueByName(std::string(tmp), name, created);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
|
@ -112,8 +112,8 @@ void CFileHeader::read (xmlNodePtr root)
|
||||||
xmlFree ((void*)value);
|
xmlFree ((void*)value);
|
||||||
|
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML Syntax error in TYPE block line %p, the Version argument is invalid.",
|
warning (true, "read", "XML Syntax error in TYPE block line %d, the Version argument is invalid.",
|
||||||
root->content);
|
(sint)root->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the value
|
// Delete the value
|
||||||
|
@ -145,8 +145,8 @@ void CFileHeader::read (xmlNodePtr root)
|
||||||
xmlFree ((void*)value);
|
xmlFree ((void*)value);
|
||||||
|
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning (true, "read", "XML Syntax error in TYPE block line %p, the State argument is invalid.",
|
warning (true, "read", "XML Syntax error in TYPE block line %d, the State argument is invalid.",
|
||||||
root->content);
|
(sint)root->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the value
|
// Delete the value
|
||||||
|
|
|
@ -109,8 +109,8 @@ void CType::read (xmlNodePtr root)
|
||||||
if ( ((const char*)root->name == NULL) || (strcmp ((const char*)root->name, "TYPE") != 0) )
|
if ( ((const char*)root->name == NULL) || (strcmp ((const char*)root->name, "TYPE") != 0) )
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning2 (true, "read", "XML Syntax error in block line %p, node (%s) should be TYPE.",
|
warning2 (true, "read", "XML Syntax error in block line %d, node (%s) should be TYPE.",
|
||||||
root->content, root->name);
|
(sint)root->line, root->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the type
|
// Read the type
|
||||||
|
@ -137,8 +137,8 @@ void CType::read (xmlNodePtr root)
|
||||||
xmlFree ((void*)value);
|
xmlFree ((void*)value);
|
||||||
|
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning2 (true, "read", "XML Syntax error in TYPE block line %p, the Type value is unknown (%s).",
|
warning2 (true, "read", "XML Syntax error in TYPE block line %d, the Type value is unknown (%s).",
|
||||||
root->content, valueStr.c_str ());
|
(sint)root->line, valueStr.c_str ());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the value
|
// Delete the value
|
||||||
|
@ -147,8 +147,8 @@ void CType::read (xmlNodePtr root)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning2 (true, "read", "XML Syntax error in TYPE block line %p, the Type argument was not found.",
|
warning2 (true, "read", "XML Syntax error in TYPE block line %d, the Type argument was not found.",
|
||||||
root->content);
|
(sint)root->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the UI
|
// Read the UI
|
||||||
|
@ -255,8 +255,8 @@ void CType::read (xmlNodePtr root)
|
||||||
xmlFree ((void*)label);
|
xmlFree ((void*)label);
|
||||||
|
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning2 (true, "read", "XML Syntax error in DEFINITION block line %p, the Value argument was not found.",
|
warning2 (true, "read", "XML Syntax error in DEFINITION block line %d, the Value argument was not found.",
|
||||||
childPtr->content);
|
(sint)childPtr->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete the value
|
// Delete the value
|
||||||
|
@ -265,8 +265,8 @@ void CType::read (xmlNodePtr root)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Throw exception
|
// Throw exception
|
||||||
warning2 (true, "read", "XML Syntax error in DEFINITION block line %p, the Label argument was not found.",
|
warning2 (true, "read", "XML Syntax error in DEFINITION block line %d, the Label argument was not found.",
|
||||||
childPtr->content);
|
(sint)childPtr->line);
|
||||||
}
|
}
|
||||||
|
|
||||||
// One more
|
// One more
|
||||||
|
|
|
@ -838,6 +838,7 @@ namespace NLGUI
|
||||||
result.R = 255 * hueToRgb(m1, m2, h + 1.0f/3.0f);
|
result.R = 255 * hueToRgb(m1, m2, h + 1.0f/3.0f);
|
||||||
result.G = 255 * hueToRgb(m1, m2, h);
|
result.G = 255 * hueToRgb(m1, m2, h);
|
||||||
result.B = 255 * hueToRgb(m1, m2, h - 1.0f/3.0f);
|
result.B = 255 * hueToRgb(m1, m2, h - 1.0f/3.0f);
|
||||||
|
result.A = 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
class CNameToCol
|
class CNameToCol
|
||||||
|
|
|
@ -530,7 +530,7 @@ void CLigoConfig::syntaxError (const std::string &filename, xmlNodePtr xmlNode,
|
||||||
vsnprintf( buffer, 1024, format, args );
|
vsnprintf( buffer, 1024, format, args );
|
||||||
va_end( args );
|
va_end( args );
|
||||||
|
|
||||||
errorMessage ("(%s), node (%s), line (%p) :\n%s", filename.c_str(), xmlNode->name, xmlNode->content, buffer);
|
errorMessage ("(%s), node (%s), line (%d) :\n%s", filename.c_str(), xmlNode->name, (sint)xmlNode->line, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ***************************************************************************
|
// ***************************************************************************
|
||||||
|
|
|
@ -495,15 +495,30 @@ void CFileDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mes
|
||||||
if (_NeedHeader)
|
if (_NeedHeader)
|
||||||
{
|
{
|
||||||
const char *hs = HeaderString();
|
const char *hs = HeaderString();
|
||||||
fwrite (hs, strlen (hs), 1, _FilePointer);
|
|
||||||
|
if (fwrite(hs, strlen(hs), 1, _FilePointer) != 1)
|
||||||
|
{
|
||||||
|
printf("Unable to write header: %s\n", hs);
|
||||||
|
}
|
||||||
|
|
||||||
_NeedHeader = false;
|
_NeedHeader = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!str.empty())
|
if (!str.empty())
|
||||||
fwrite (str.c_str(), str.size(), 1, _FilePointer);
|
{
|
||||||
|
if (fwrite(str.c_str(), str.size(), 1, _FilePointer) != 1)
|
||||||
|
{
|
||||||
|
printf("Unable to write string: %s\n", str.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(!args.CallstackAndLog.empty())
|
if (!args.CallstackAndLog.empty())
|
||||||
fwrite (args.CallstackAndLog.c_str(), args.CallstackAndLog.size (), 1, _FilePointer);
|
{
|
||||||
|
if (fwrite(args.CallstackAndLog.c_str(), args.CallstackAndLog.size(), 1, _FilePointer) != 1)
|
||||||
|
{
|
||||||
|
printf("Unable to write call stack: %s\n", args.CallstackAndLog.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fflush (_FilePointer);
|
fflush (_FilePointer);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2041,17 +2041,21 @@ NLMISC_COMMAND(entity, "Create an entity on the user or just remove it if Form n
|
||||||
node = NLGUI::CDBManager::getInstance()->getDbProp("SERVER:Entities:E"+toString("%d", slot)+":P"+toString("%d", CLFECOMMON::PROPERTY_ORIENTATION), false);
|
node = NLGUI::CDBManager::getInstance()->getDbProp("SERVER:Entities:E"+toString("%d", slot)+":P"+toString("%d", CLFECOMMON::PROPERTY_ORIENTATION), false);
|
||||||
if(node)
|
if(node)
|
||||||
{
|
{
|
||||||
float dir = (float)atan2(UserEntity->front().y, UserEntity->front().x);
|
union C64BitsRot
|
||||||
prop = (sint64 *)(&dir);
|
{
|
||||||
node->setValue64(*prop);
|
sint64 i64;
|
||||||
|
float f;
|
||||||
|
};
|
||||||
|
|
||||||
|
C64BitsRot rot;
|
||||||
|
rot.f = (float)atan2(UserEntity->front().y, UserEntity->front().x);
|
||||||
|
node->setValue64(rot.i64);
|
||||||
}
|
}
|
||||||
// Set Mode
|
// Set Mode
|
||||||
node = NLGUI::CDBManager::getInstance()->getDbProp("SERVER:Entities:E"+toString("%d", slot)+":P"+toString("%d", CLFECOMMON::PROPERTY_MODE), false);
|
node = NLGUI::CDBManager::getInstance()->getDbProp("SERVER:Entities:E"+toString("%d", slot)+":P"+toString("%d", CLFECOMMON::PROPERTY_MODE), false);
|
||||||
if(node)
|
if(node)
|
||||||
{
|
{
|
||||||
MBEHAV::EMode m = MBEHAV::NORMAL;
|
node->setValue64((sint64)MBEHAV::NORMAL);
|
||||||
prop = (sint64 *)&m;
|
|
||||||
node->setValue64(*prop);
|
|
||||||
EntitiesMngr.updateVisualProperty(0, slot, CLFECOMMON::PROPERTY_MODE);
|
EntitiesMngr.updateVisualProperty(0, slot, CLFECOMMON::PROPERTY_MODE);
|
||||||
}
|
}
|
||||||
// Set Visual Properties
|
// Set Visual Properties
|
||||||
|
@ -2842,8 +2846,17 @@ NLMISC_COMMAND(orient, "Orient an entity", "Slot: [1-254] orient(degree) [dt(tic
|
||||||
fromString(args[2], dt);
|
fromString(args[2], dt);
|
||||||
// Write the position in the DB.
|
// Write the position in the DB.
|
||||||
float fRot= (float)(rot*Pi/180.f);
|
float fRot= (float)(rot*Pi/180.f);
|
||||||
uint64 val= *(uint32*)(&fRot);
|
|
||||||
IngameDbMngr.setProp("Entities:E" + toString(slot) + ":P"+toString(CLFECOMMON::PROPERTY_ORIENTATION), val);
|
union C64BitsRot
|
||||||
|
{
|
||||||
|
sint64 i64;
|
||||||
|
float f;
|
||||||
|
};
|
||||||
|
|
||||||
|
C64BitsRot r;
|
||||||
|
r.f = fRot;
|
||||||
|
|
||||||
|
IngameDbMngr.setProp("Entities:E" + toString(slot) + ":P"+toString(CLFECOMMON::PROPERTY_ORIENTATION), r.i64);
|
||||||
// Update the position.
|
// Update the position.
|
||||||
EntitiesMngr.updateVisualProperty(NetMngr.getCurrentServerTick()+dt, slot, CLFECOMMON::PROPERTY_ORIENTATION);
|
EntitiesMngr.updateVisualProperty(NetMngr.getCurrentServerTick()+dt, slot, CLFECOMMON::PROPERTY_ORIENTATION);
|
||||||
}
|
}
|
||||||
|
@ -3756,7 +3769,7 @@ NLMISC_COMMAND(testLongBubble, "To display a bubble with a long text", "<entity>
|
||||||
fromString(args[0], entityId);
|
fromString(args[0], entityId);
|
||||||
|
|
||||||
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
||||||
ucstring text = "test\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\n";
|
ucstring text("test\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\ntest\n");
|
||||||
uint duration = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutBubbles).getValSInt32();
|
uint duration = CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionTimeoutBubbles).getValSInt32();
|
||||||
|
|
||||||
CEntityCL *entity = EntitiesMngr.entity(entityId);
|
CEntityCL *entity = EntitiesMngr.entity(entityId);
|
||||||
|
|
|
@ -2584,8 +2584,16 @@ void CEntityManager::logPropertyChange(CLFECOMMON::TCLEntityId who, const CStage
|
||||||
// Orientation
|
// Orientation
|
||||||
else if(propLoged[i]==CLFECOMMON::PROPERTY_ORIENTATION)
|
else if(propLoged[i]==CLFECOMMON::PROPERTY_ORIENTATION)
|
||||||
{
|
{
|
||||||
float rot= *(float*)(&value);
|
union C64BitsRot
|
||||||
valStr= toString("%d", sint32(rot*180/Pi));
|
{
|
||||||
|
sint64 i64;
|
||||||
|
float f;
|
||||||
|
};
|
||||||
|
|
||||||
|
C64BitsRot rot;
|
||||||
|
rot.i64 = value;
|
||||||
|
|
||||||
|
valStr= toString("%d", sint32(rot.f*180/Pi));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2044,7 +2044,7 @@ int CLuaIHMRyzom::addShape(CLuaState &ls)
|
||||||
|
|
||||||
string shape = ls.toString(1);
|
string shape = ls.toString(1);
|
||||||
|
|
||||||
float x,y,z = 0.0f;
|
float x = 0.0f, y = 0.0f, z = 0.0f;
|
||||||
float scale = 1.0f;
|
float scale = 1.0f;
|
||||||
string context,url,skeleton,texture = "";
|
string context,url,skeleton,texture = "";
|
||||||
bool highlight, transparency, collision = false;
|
bool highlight, transparency, collision = false;
|
||||||
|
|
|
@ -1652,7 +1652,11 @@ void CClientEditionModule::saveUserComponentFile(const std::string& filename, bo
|
||||||
FILE* output = nlfopen(uncompressedName, "wb");
|
FILE* output = nlfopen(uncompressedName, "wb");
|
||||||
if (output)
|
if (output)
|
||||||
{
|
{
|
||||||
fwrite(component->UncompressedData, sizeof(char) , component->UncompressedDataLength, output);
|
if (fwrite(component->UncompressedData, sizeof(char), component->UncompressedDataLength, output) != component->UncompressedDataLength)
|
||||||
|
{
|
||||||
|
nlwarning("Unable to write %s", component->UncompressedData);
|
||||||
|
}
|
||||||
|
|
||||||
fclose(output);
|
fclose(output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4905,11 +4905,10 @@ CEntityCL *CEditor::createEntity(uint slot, const NLMISC::CSheetId &sheetId, con
|
||||||
node = NLGUI::CDBManager::getInstance()->getDbProp("SERVER:Entities:E"+toString("%d", slot)+":P"+toString("%d", CLFECOMMON::PROPERTY_MODE), false);
|
node = NLGUI::CDBManager::getInstance()->getDbProp("SERVER:Entities:E"+toString("%d", slot)+":P"+toString("%d", CLFECOMMON::PROPERTY_MODE), false);
|
||||||
if(node)
|
if(node)
|
||||||
{
|
{
|
||||||
MBEHAV::EMode m = MBEHAV::NORMAL;
|
node->setValue64((sint64)MBEHAV::NORMAL);
|
||||||
prop = (sint64 *)&m;
|
|
||||||
node->setValue64(*prop);
|
|
||||||
EntitiesMngr.updateVisualProperty(0, slot, CLFECOMMON::PROPERTY_MODE);
|
EntitiesMngr.updateVisualProperty(0, slot, CLFECOMMON::PROPERTY_MODE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set Visual Properties
|
// Set Visual Properties
|
||||||
SPropVisualA visualA;
|
SPropVisualA visualA;
|
||||||
//visualA.PropertySubData.LTrail = 1;
|
//visualA.PropertySubData.LTrail = 1;
|
||||||
|
|
|
@ -789,10 +789,18 @@ bool CUserEntity::mode(MBEHAV::EMode m)
|
||||||
case MBEHAV::COMBAT:
|
case MBEHAV::COMBAT:
|
||||||
case MBEHAV::COMBAT_FLOAT:
|
case MBEHAV::COMBAT_FLOAT:
|
||||||
{
|
{
|
||||||
|
union C64BitsRot
|
||||||
|
{
|
||||||
|
sint64 i64;
|
||||||
|
float f;
|
||||||
|
};
|
||||||
|
|
||||||
|
C64BitsRot rot;
|
||||||
|
|
||||||
// Compute the angle
|
// Compute the angle
|
||||||
const string propName = toString("SERVER:Entities:E%d:P%d", _Slot, CLFECOMMON::PROPERTY_ORIENTATION);
|
const string propName = toString("SERVER:Entities:E%d:P%d", _Slot, CLFECOMMON::PROPERTY_ORIENTATION);
|
||||||
sint64 ang = NLGUI::CDBManager::getInstance()->getDbProp(propName)->getValue64();
|
rot.i64 = NLGUI::CDBManager::getInstance()->getDbProp(propName)->getValue64();
|
||||||
_TargetAngle = *(float *)(&ang);
|
_TargetAngle = rot.f;
|
||||||
|
|
||||||
// Initialize controls for the combat.
|
// Initialize controls for the combat.
|
||||||
UserControls.startCombat();
|
UserControls.startCombat();
|
||||||
|
|
|
@ -213,7 +213,7 @@ public:
|
||||||
static SRes seekFunc(void *object, Int64 *pos, ESzSeek origin)
|
static SRes seekFunc(void *object, Int64 *pos, ESzSeek origin)
|
||||||
{
|
{
|
||||||
Q7zFile *me = (Q7zFile*)object;
|
Q7zFile *me = (Q7zFile*)object;
|
||||||
qint64 newPos;
|
qint64 newPos = 0;
|
||||||
|
|
||||||
switch(origin)
|
switch(origin)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue