ConversationEditor writes .java

I think there was one issue not fixed in these changes - I can't find it in my Discord history though. I'm also unable to build ConversationEditor on the master branch due to linker errors.
This commit is contained in:
Alec Harley
2020-08-25 11:22:20 -07:00
parent a04e64b472
commit 095a6b5adb
3 changed files with 40 additions and 30 deletions
@@ -78,10 +78,10 @@ void ScriptShellView::OnUpdate(CView * const pSender, LPARAM const lHint, CObjec
buffer.Format ("Created %s.stf\r\n", shellData->m_shortFileName);
AddTexts (buffer);
buffer.Format ("Created %s.script\r\n", shellData->m_shortFileName);
buffer.Format ("Created %s.java\r\n", shellData->m_shortFileName);
AddTexts (buffer);
buffer.Format ("Compiling %s.script\r\n", shellData->m_shortFileName);
buffer.Format ("Compiling %s.java\r\n", shellData->m_shortFileName);
AddTexts (buffer);
CreateShellRedirect (commandLine);
@@ -114,7 +114,7 @@ void ScriptShellView::OnUpdate(CView * const pSender, LPARAM const lHint, CObjec
CString m_fullDataScriptFileName (shellData->m_fullScriptFileName);
m_fullDataScriptFileName.Replace ("/dsrc/", "/data/");
m_fullDataScriptFileName.Replace (".script", ".class");
m_fullDataScriptFileName.Replace (".java", ".class");
CreateShellRedirect (p4 + " edit " + m_fullDataScriptFileName);
CreateShellRedirect (p4 + " add " + m_fullDataScriptFileName);
@@ -1112,9 +1112,9 @@ void ScriptTreeView::OnScriptAddlibrary()
Conversation::LibrarySet & librarySet = document->getLibrarySet ();
CFileDialog dlg (true, "*.scriptlib", 0, (OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR), "ScriptLib Files *.scriptlib|*.scriptlib||");
CFileDialog dlg (true, "*.java", 0, (OFN_FILEMUSTEXIST | OFN_NOCHANGEDIR), "ScriptLib Files *.java|*.java||");
dlg.m_ofn.lpstrInitialDir = RecentDirectory::find ("Script");
dlg.m_ofn.lpstrDefExt = "scriptlib";
dlg.m_ofn.lpstrDefExt = "java";
dlg.m_ofn.lpstrTitle = "Add Script Library";
if (dlg.DoModal () == IDOK)
{
@@ -37,26 +37,26 @@ namespace SwgConversationEditorDocNamespace
CString const cs_labelDefaultName = "_none";
CString const cs_labelRootName = "_root";
CString const cs_scriptPreNameDeclarationConditionString = "boolean ";
CString const cs_scriptPostNameDeclarationConditionString = " (obj_id player, obj_id npc)\r\n";
CString const cs_scriptPreNameDeclarationConditionString = "public boolean ";
CString const cs_scriptPostNameDeclarationConditionString = " (obj_id player, obj_id npc) throws InterruptedException\r\n";
CString const cs_scriptBodyConditionString = "{\r\n\treturn true;\r\n}\r\n";
CString const cs_scriptPreNameDeclarationActionString = "void ";
CString const cs_scriptPostNameDeclarationActionString = " (obj_id player, obj_id npc)\r\n";
CString const cs_scriptPreNameDeclarationActionString = "public void ";
CString const cs_scriptPostNameDeclarationActionString = " (obj_id player, obj_id npc) throws InterruptedException\r\n";
CString const cs_scriptBodyActionString = "{\r\n}\r\n";
CString const cs_scriptPreNameDeclarationTokenTOString = "string ";
CString const cs_scriptPostNameDeclarationTokenTOString = " (obj_id player, obj_id npc)\r\n";
CString const cs_scriptBodyTokenTOString = "{\r\n\treturn new string();\r\n}\r\n";
CString const cs_scriptPreNameDeclarationTokenDIString = "int ";
CString const cs_scriptPostNameDeclarationTokenDIString = " (obj_id player, obj_id npc)\r\n";
CString const cs_scriptPreNameDeclarationTokenTOString = "public String ";
CString const cs_scriptPostNameDeclarationTokenTOString = " (obj_id player, obj_id npc) throws InterruptedException\r\n";
CString const cs_scriptBodyTokenTOString = "{\r\n\treturn new String();\r\n}\r\n";
CString const cs_scriptPreNameDeclarationTokenDIString = "public int ";
CString const cs_scriptPostNameDeclarationTokenDIString = " (obj_id player, obj_id npc) throws InterruptedException\r\n";
CString const cs_scriptBodyTokenDIString = "{\r\n\treturn 0;\r\n}\r\n";
CString const cs_scriptPreNameDeclarationTokenDFString = "float ";
CString const cs_scriptPostNameDeclarationTokenDFString = " (obj_id player, obj_id npc)\r\n";
CString const cs_scriptPreNameDeclarationTokenDFString = "public float ";
CString const cs_scriptPostNameDeclarationTokenDFString = " (obj_id player, obj_id npc) throws InterruptedException\r\n";
CString const cs_scriptBodyTokenDFString = "{\r\n\treturn 0.f;\r\n}\r\n";
CString const cs_scriptHeader1 = "// ======================================================================\n//\n// ";
CString const cs_scriptHeader2 = "\n// Copyright 2004, Sony Online Entertainment\n// All Rights Reserved.\n//\n// Created with " + SwgConversationEditorApp::getVersion() + " - DO NOT EDIT THIS AUTO-GENERATED FILE!\n//\n// ======================================================================\n\n";
CString const cs_scriptHeader2 = "\n// Copyright 2004, Sony Online Entertainment\n// All Rights Reserved.\n//\n// Created with " + SwgConversationEditorApp::getVersion() + " - DO NOT EDIT THIS AUTO-GENERATED FILE!\n// blour says hi\n// ======================================================================\n\n";
CString const cs_scriptLibraryDelimiter = "// ======================================================================\n// Library Includes\n// ======================================================================\n\n";
CString const cs_scriptLibraryDelimiter = "package script.conversation;\n\n// ======================================================================\n// Library Includes\n// ======================================================================\n\n";
CString const cs_scriptConstantsDelimiter = "// ======================================================================\n// Script Constants\n// ======================================================================\n\n";
CString const cs_scriptConditionDelimiter = "// ======================================================================\n// Script Conditions\n// ======================================================================\n\n";
CString const cs_scriptActionDelimiter = "// ======================================================================\n// Script Actions\n// ======================================================================\n\n";
@@ -173,7 +173,7 @@ namespace SwgConversationEditorDocNamespace
CString getFullScriptFileName (CString const & shortFileName)
{
CString fullScriptFileName(ConfigFile::getKeyString("SwgConversationEditor", "scriptPath", 0) + CString ("/") + shortFileName + ".script");
CString fullScriptFileName(ConfigFile::getKeyString("SwgConversationEditor", "scriptPath", 0) + CString ("/") + shortFileName + ".java");
fullScriptFileName.MakeLower();
return fullScriptFileName;
}
@@ -503,10 +503,10 @@ CString const SwgConversationEditorDoc::getDefaultTriggerText ()
//-- write OnInitialize
{
buffer += "trigger OnInitialize ()\r\n" \
buffer += "public int OnInitialize(obj_id self) throws InterruptedException\r\n" \
"{\r\n" \
"\tif ((!isTangible (self)) || (isPlayer (self)))\r\n" \
"\t\tdetachScript(self, \"conversation.filename\");\r\n\r\n" \
"\tif ((!isMob (self)) || (isPlayer (self)))\r\n\t{\r\n" \
"\t\tdetachScript(self, \"conversation.filename\");\r\n\t}\r\n\r\n" \
"\tsetCondition (self, CONDITION_CONVERSABLE);\r\n\r\n" \
"\treturn SCRIPT_CONTINUE;\r\n" \
"}\r\n\r\n";
@@ -514,7 +514,7 @@ CString const SwgConversationEditorDoc::getDefaultTriggerText ()
//-- write OnAttach
{
buffer += "trigger OnAttach ()\r\n" \
buffer += "public int OnAttach(obj_id self) throws InterruptedException\r\n" \
"{\r\n" \
"\tsetCondition (self, CONDITION_CONVERSABLE);\r\n\r\n" \
"\treturn SCRIPT_CONTINUE;\r\n" \
@@ -524,7 +524,7 @@ CString const SwgConversationEditorDoc::getDefaultTriggerText ()
//-- write OnObjectMenuRequest
{
buffer +=
"trigger OnObjectMenuRequest (obj_id player, menu_info menuInfo)\r\n" \
"public int OnObjectMenuRequest(obj_id self, obj_id player, menu_info menuInfo) throws InterruptedException\r\n" \
"{\r\n" \
"\tint menu = menuInfo.addRootMenu (menu_info_types.CONVERSE_START, null);\r\n" \
"\tmenu_info_data menuInfoData = menuInfo.getMenuItemById (menu);\r\n" \
@@ -536,7 +536,7 @@ CString const SwgConversationEditorDoc::getDefaultTriggerText ()
//-- write OnIncapacitated
{
buffer += "trigger OnIncapacitated (obj_id killer)\r\n" \
buffer += "public int OnIncapacitated(obj_id self, obj_id killer) throws InterruptedException\r\n" \
"{\r\n" \
"\tclearCondition (self, CONDITION_CONVERSABLE);\r\n" \
"\tdetachScript (self, \"conversation.filename\");\r\n\r\n" \
@@ -2072,7 +2072,7 @@ bool SwgConversationEditorDoc::writeScript (CString const & scriptName, CString
//-- write header
outfile.WriteString (cs_scriptHeader1);
outfile.WriteString (fileName);
outfile.WriteString (".script" );
outfile.WriteString (".java" );
outfile.WriteString (cs_scriptHeader2);
//-- write libraries
@@ -2080,9 +2080,16 @@ bool SwgConversationEditorDoc::writeScript (CString const & scriptName, CString
writeLibraries (outfile);
outfile.WriteString ("\n");
//-- write public class filename extends opener
outfile.WriteString("public class ");
outfile.WriteString(fileName);
outfile.WriteString(" extends script.base_script\n{\n\tpublic ");
outfile.WriteString(fileName);
outfile.WriteString("()\r\n\t{\r\n\t}\r\n");
//-- write constants
outfile.WriteString (cs_scriptConstantsDelimiter);
outfile.WriteString ("string c_stringFile = \"conversation/");
outfile.WriteString ("public static String c_stringFile = \"conversation/");
outfile.WriteString (fileName);
outfile.WriteString ("\";\n");
outfile.WriteString ("\n");
@@ -2374,7 +2381,7 @@ bool SwgConversationEditorDoc::writeScript (CString const & scriptName, CString
}
{
outfile.WriteString ("trigger OnStartNpcConversation (obj_id player)\n");
outfile.WriteString ("public int OnStartNpcConversation(obj_id self, obj_id player) throws InterruptedException\n");
outfile.WriteString ("{\n");
// obj_id npc = self;
@@ -2398,7 +2405,7 @@ bool SwgConversationEditorDoc::writeScript (CString const & scriptName, CString
//-- write OnNpcConversationResponse
outfile.WriteString (cs_scriptSingleDelimiter);
{
outfile.WriteString ("trigger OnNpcConversationResponse (string conversationId, obj_id player, string_id response)\n{\n");
outfile.WriteString ("public int OnNpcConversationResponse(obj_id self, String conversationId, obj_id player, string_id response) throws InterruptedException\n{\n");
// if (conversationId != <conversationId>)
buffer.Format ("\tif (conversationId != \"%s\")\n", fileName);
@@ -2453,6 +2460,8 @@ bool SwgConversationEditorDoc::writeScript (CString const & scriptName, CString
outfile.WriteString (cs_scriptDoubleDelimiter);
outfile.WriteString("}"); //write closer for public class blah blah
return true;
}
@@ -2467,10 +2476,11 @@ void SwgConversationEditorDoc::writeLibraries (CStdioFile & outfile) const
Conversation::LibrarySet::iterator end = librarySet.end ();
for (Conversation::LibrarySet::iterator iterator = librarySet.begin (); iterator != end; ++iterator)
{
outfile.WriteString ("include library.");
outfile.WriteString ("import script.library.");
outfile.WriteString (iterator->c_str ());
outfile.WriteString (";\n");
}
outfile.WriteString("import script.*;\n");
}
// ----------------------------------------------------------------------