summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CBot/CBotVar.cpp2
-rw-r--r--src/script/script.cpp31
-rw-r--r--src/ui/edit.cpp12
3 files changed, 24 insertions, 21 deletions
diff --git a/src/CBot/CBotVar.cpp b/src/CBot/CBotVar.cpp
index 2430d0d..7b0ce7b 100644
--- a/src/CBot/CBotVar.cpp
+++ b/src/CBot/CBotVar.cpp
@@ -590,7 +590,7 @@ void CBotVar::AddNext(CBotVar* pVar)
void CBotVar::SetVal(CBotVar* var)
{
- switch (/*var->*/GetType())
+ switch (var->GetType())
{
case CBotTypBoolean:
SetValInt(var->GetValInt());
diff --git a/src/script/script.cpp b/src/script/script.cpp
index 5dbab56..f23c11d 100644
--- a/src/script/script.cpp
+++ b/src/script/script.cpp
@@ -2668,6 +2668,8 @@ CScript::CScript(CInstanceManager* iMan, CObject* object, CTaskManager** seconda
m_primaryTask = 0;
m_secondaryTask = secondaryTask;
+ m_interface = static_cast<Ui::CInterface*>(m_iMan->SearchInstance(CLASS_INTERFACE));
+
m_ipf = CBOT_IPF;
m_errMode = ERM_STOP;
m_len = 0;
@@ -3522,7 +3524,6 @@ void CScript::New(Ui::CEdit* edit, const char* name)
FILE *file = NULL;
char res[100];
char text[100];
- char filename[100];
char script[500];
char buffer[500];
char *sf;
@@ -3561,9 +3562,8 @@ void CScript::New(Ui::CEdit* edit, const char* name)
sf = m_main->GetScriptFile();
if ( sf[0] != 0 ) // Load an empty program specific?
{
- strcpy(filename, "script\\");
- strcat(filename, sf);
- file = fopen(filename, "rb");
+ std::string filename = CApplication::GetInstancePointer()->GetDataFilePath(DIR_AI, sf);
+ file = fopen(filename.c_str(), "rb");
if ( file != NULL )
{
fseek(file, 0, SEEK_END);
@@ -3645,9 +3645,11 @@ bool CScript::ReadScript(const char* filename)
{
FILE* file;
Ui::CEdit* edit;
- char name[100];
- if ( strchr(filename, '\\') == 0 )
+ // TODO: local user dir
+ std::string name = CApplication::GetInstancePointer()->GetDataFilePath(DIR_AI, filename);
+
+ /*if ( strchr(filename, '\\') == 0 )
{
strcpy(name, "script\\");
strcat(name, filename);
@@ -3656,9 +3658,9 @@ bool CScript::ReadScript(const char* filename)
{
//? strcpy(name, filename);
UserDir(name, filename, "");
- }
+ }*/
- file = fopen(name, "rb");
+ file = fopen(name.c_str(), "rb");
if ( file == NULL ) return false;
fclose(file);
@@ -3668,7 +3670,7 @@ bool CScript::ReadScript(const char* filename)
edit = m_interface->CreateEdit(Math::Point(0.0f, 0.0f), Math::Point(0.0f, 0.0f), 0, EVENT_EDIT9);
edit->SetMaxChar(Ui::EDITSTUDIOMAX);
edit->SetAutoIndent(m_engine->GetEditIndentMode());
- edit->ReadText(name);
+ edit->ReadText(name.c_str());
GetScript(edit);
m_interface->DeleteControl(EVENT_EDIT9);
return true;
@@ -3679,9 +3681,10 @@ bool CScript::ReadScript(const char* filename)
bool CScript::WriteScript(const char* filename)
{
Ui::CEdit* edit;
- char name[100];
- if ( strchr(filename, '\\') == 0 )
+ std::string name = CApplication::GetInstancePointer()->GetDataFilePath(DIR_AI, filename);
+ // TODO: local user dir
+ /*if ( strchr(filename, '\\') == 0 )
{
strcpy(name, "script\\");
strcat(name, filename);
@@ -3689,11 +3692,11 @@ bool CScript::WriteScript(const char* filename)
else
{
strcpy(name, filename);
- }
+ }*/
if ( m_script == 0 )
{
- remove(filename);
+ // TODO: ? remove(filename);
return false;
}
@@ -3701,7 +3704,7 @@ bool CScript::WriteScript(const char* filename)
edit->SetMaxChar(Ui::EDITSTUDIOMAX);
edit->SetAutoIndent(m_engine->GetEditIndentMode());
edit->SetText(m_script);
- edit->WriteText(name);
+ edit->WriteText(name.c_str());
m_interface->DeleteControl(EVENT_EDIT9);
return true;
}
diff --git a/src/ui/edit.cpp b/src/ui/edit.cpp
index 27ef576..ca53a7a 100644
--- a/src/ui/edit.cpp
+++ b/src/ui/edit.cpp
@@ -1483,7 +1483,7 @@ bool CEdit::ReadText(const char *filename, int addSize)
FreeImage();
if (m_text != nullptr)
- delete m_text;
+ delete[] m_text;
m_text = new char[m_maxChar+1];
memset(m_text, 0, m_maxChar+1);
@@ -1516,7 +1516,7 @@ bool CEdit::ReadText(const char *filename, int addSize)
{
m_text[j] = buffer[i];
//if ( m_format.size() > 0 )
- m_format[j] = font;
+ m_format[j] = font;
j ++;
}
i ++;
@@ -1857,7 +1857,7 @@ bool CEdit::ReadText(const char *filename, int addSize)
{
m_text[j] = buffer[i];
//if ( m_format.size() > 0 )
- m_format[j] = font;
+ m_format[j] = font;
j ++;
}
i ++;
@@ -1873,7 +1873,7 @@ bool CEdit::ReadText(const char *filename, int addSize)
m_len = j;
m_imageTotal = iIndex;
- delete buffer;
+ delete[] buffer;
Justif();
ColumnFix();
@@ -3320,8 +3320,8 @@ bool CEdit::SetFormat(int cursor1, int cursor2, int format)
for ( i=cursor1 ; i<cursor2 ; i++ )
{
- if (m_format.count(i))
- m_format[i] |= format;
+ if (m_format.count(i))
+ m_format[i] |= format;
}
return true;