summaryrefslogtreecommitdiff
path: root/src/uqm/comm/mycon
diff options
context:
space:
mode:
Diffstat (limited to 'src/uqm/comm/mycon')
-rw-r--r--src/uqm/comm/mycon/Makeinfo2
-rw-r--r--src/uqm/comm/mycon/myconc.c643
-rw-r--r--src/uqm/comm/mycon/resinst.h9
-rw-r--r--src/uqm/comm/mycon/strings.h136
4 files changed, 790 insertions, 0 deletions
diff --git a/src/uqm/comm/mycon/Makeinfo b/src/uqm/comm/mycon/Makeinfo
new file mode 100644
index 0000000..df0ef72
--- /dev/null
+++ b/src/uqm/comm/mycon/Makeinfo
@@ -0,0 +1,2 @@
+uqm_CFILES="myconc.c"
+uqm_HFILES="resinst.h strings.h"
diff --git a/src/uqm/comm/mycon/myconc.c b/src/uqm/comm/mycon/myconc.c
new file mode 100644
index 0000000..6490904
--- /dev/null
+++ b/src/uqm/comm/mycon/myconc.c
@@ -0,0 +1,643 @@
+//Copyright Paul Reiche, Fred Ford. 1992-2002
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "../commall.h"
+#include "resinst.h"
+#include "strings.h"
+
+#include "uqm/gameev.h"
+#include "libs/mathlib.h"
+
+
+static LOCDATA mycon_desc =
+{
+ NULL, /* init_encounter_func */
+ NULL, /* post_encounter_func */
+ NULL, /* uninit_encounter_func */
+ MYCON_PMAP_ANIM, /* AlienFrame */
+ MYCON_FONT, /* AlienFont */
+ WHITE_COLOR_INIT, /* AlienTextFColor */
+ BLACK_COLOR_INIT, /* AlienTextBColor */
+ {0, 0}, /* AlienTextBaseline */
+ 0, /* SIS_TEXT_WIDTH - 16, */ /* AlienTextWidth */
+ ALIGN_CENTER, /* AlienTextAlign */
+ VALIGN_TOP, /* AlienTextValign */
+ MYCON_COLOR_MAP, /* AlienColorMap */
+ MYCON_MUSIC, /* AlienSong */
+ NULL_RESOURCE, /* AlienAltSong */
+ 0, /* AlienSongFlags */
+ MYCON_CONVERSATION_PHRASES, /* PlayerPhrases */
+ 5, /* NumAnimations */
+ { /* AlienAmbientArray (ambient animations) */
+ {
+ 12, /* StartIndex */
+ 6, /* NumFrames */
+ CIRCULAR_ANIM, /* AnimFlags */
+ ONE_SECOND * 3 / 40, 0, /* FrameRate */
+ ONE_SECOND * 3 / 40, 0, /* RestartRate */
+ (1 << 1), /* BlockMask */
+ },
+ {
+ 18, /* StartIndex */
+ 4, /* NumFrames */
+ CIRCULAR_ANIM, /* AnimFlags */
+ ONE_SECOND * 3 / 40, 0, /* FrameRate */
+ ONE_SECOND * 3 / 40, 0, /* RestartRate */
+ (1 << 0), /* BlockMask */
+ },
+ {
+ 22, /* StartIndex */
+ 6, /* NumFrames */
+ CIRCULAR_ANIM, /* AnimFlags */
+ ONE_SECOND * 3 / 40, 0, /* FrameRate */
+ ONE_SECOND * 3 / 40, 0, /* RestartRate */
+ 0, /* BlockMask */
+ },
+ {
+ 28, /* StartIndex */
+ 5, /* NumFrames */
+ CIRCULAR_ANIM, /* AnimFlags */
+ ONE_SECOND * 3 / 40, 0, /* FrameRate */
+ ONE_SECOND * 3 / 40, 0, /* RestartRate */
+ 0, /* BlockMask */
+ },
+ {
+ 33, /* StartIndex */
+ 4, /* NumFrames */
+ YOYO_ANIM, /* AnimFlags */
+ ONE_SECOND * 3 / 40, 0, /* FrameRate */
+ ONE_SECOND * 3 / 40, 0, /* RestartRate */
+ 0, /* BlockMask */
+ },
+ },
+ { /* AlienTransitionDesc */
+ 0, /* StartIndex */
+ 0, /* NumFrames */
+ 0, /* AnimFlags */
+ 0, 0, /* FrameRate */
+ 0, 0, /* RestartRate */
+ 0, /* BlockMask */
+ },
+ { /* AlienTalkDesc */
+ 1, /* StartIndex */
+ 11, /* NumFrames */
+ 0, /* AnimFlags */
+ ONE_SECOND / 15, 0, /* FrameRate */
+ ONE_SECOND / 12, 0, /* RestartRate */
+ 0, /* BlockMask */
+ },
+ NULL, /* AlienNumberSpeech - none */
+ /* Filler for loaded resources */
+ NULL, NULL, NULL,
+ NULL,
+ NULL,
+};
+
+static BYTE MadeChoice;
+
+static void
+DoRamble (RESPONSE_REF R)
+{
+ BYTE Counter;
+
+ Counter = GET_GAME_STATE (MYCON_RAMBLE);
+ switch (Counter++)
+ {
+ case 0:
+ NPCPhrase (RAMBLE_1);
+ break;
+ case 1:
+ NPCPhrase (RAMBLE_2);
+ break;
+ case 2:
+ NPCPhrase (RAMBLE_3);
+ break;
+ case 3:
+ NPCPhrase (RAMBLE_4);
+ break;
+ case 4:
+ NPCPhrase (RAMBLE_5);
+ break;
+ case 5:
+ NPCPhrase (RAMBLE_6);
+ break;
+ case 6:
+ NPCPhrase (RAMBLE_7);
+ break;
+ case 7:
+ NPCPhrase (RAMBLE_8);
+ break;
+ case 8:
+ NPCPhrase (RAMBLE_9);
+ break;
+ case 9:
+ NPCPhrase (RAMBLE_10);
+ break;
+ case 10:
+ NPCPhrase (RAMBLE_11);
+ break;
+ case 11:
+ NPCPhrase (RAMBLE_12);
+ break;
+ case 12:
+ NPCPhrase (RAMBLE_13);
+ break;
+ case 13:
+ NPCPhrase (RAMBLE_14);
+ break;
+ case 14:
+ NPCPhrase (RAMBLE_15);
+ break;
+ case 15:
+ NPCPhrase (RAMBLE_16);
+ break;
+ case 16:
+ NPCPhrase (RAMBLE_17);
+ break;
+ case 17:
+ NPCPhrase (RAMBLE_18);
+ break;
+ case 18:
+ NPCPhrase (RAMBLE_19);
+ break;
+ case 19:
+ NPCPhrase (RAMBLE_20);
+ break;
+ case 20:
+ NPCPhrase (RAMBLE_21);
+ break;
+ case 21:
+ NPCPhrase (RAMBLE_22);
+ break;
+ case 22:
+ NPCPhrase (RAMBLE_23);
+ break;
+ case 23:
+ NPCPhrase (RAMBLE_24);
+ break;
+ case 24:
+ NPCPhrase (RAMBLE_25);
+ if (GET_GAME_STATE (KNOW_ABOUT_SHATTERED) < 2)
+ {
+ SET_GAME_STATE (KNOW_ABOUT_SHATTERED, 2);
+ }
+ break;
+ case 25:
+ NPCPhrase (RAMBLE_26);
+ break;
+ case 26:
+ NPCPhrase (RAMBLE_27);
+ break;
+ case 27:
+ NPCPhrase (RAMBLE_28);
+ break;
+ case 28:
+ NPCPhrase (RAMBLE_29);
+ break;
+ case 29:
+ NPCPhrase (RAMBLE_30);
+ break;
+ case 30:
+ NPCPhrase (RAMBLE_31);
+ break;
+ case 31:
+ NPCPhrase (RAMBLE_32);
+ Counter = 0;
+ break;
+ }
+ SET_GAME_STATE (MYCON_RAMBLE, Counter);
+
+ if (!(GET_GAME_STATE (GLOBAL_FLAGS_AND_DATA) & (1 << 7)))
+ {
+ if (!PLAYER_SAID (R, come_in_peace)
+ && !PLAYER_SAID (R, gonna_die))
+ {
+ Counter = (GET_GAME_STATE (MYCON_INSULTS) + 1) & 7;
+ SET_GAME_STATE (MYCON_INSULTS, Counter);
+ MadeChoice = 1;
+ }
+ }
+ else if (!PLAYER_SAID (R, lets_be_friends)
+ && !PLAYER_SAID (R, came_to_homeworld)
+ && !PLAYER_SAID (R, submit_to_us))
+ {
+ Counter = (GET_GAME_STATE (MYCON_INFO) + 1) & 15;
+ SET_GAME_STATE (MYCON_INFO, Counter);
+ MadeChoice = 1;
+ }
+}
+
+static void
+CombatIsInevitable (RESPONSE_REF R)
+{
+ setSegue (Segue_hostile);
+
+ if (PLAYER_SAID (R, bye_space))
+ NPCPhrase (BYE_AND_DIE_SPACE);
+ else if (PLAYER_SAID (R, bye_homeworld))
+ NPCPhrase (BYE_AND_DIE_HOMEWORLD);
+ else if (PLAYER_SAID (R, like_to_land))
+ NPCPhrase (NEVER_LET_LAND);
+ else if (PLAYER_SAID (R, bye_sun_device))
+ {
+ NPCPhrase (GOODBYE_SUN_DEVICE);
+
+ setSegue (Segue_peace);
+ }
+ else
+ {
+ DoRamble (R);
+ if (!(GET_GAME_STATE (GLOBAL_FLAGS_AND_DATA) & (1 << 7)))
+ NPCPhrase (BYE_AND_DIE_SPACE);
+ else
+ NPCPhrase (BYE_AND_DIE_HOMEWORLD);
+ }
+ MadeChoice = 0;
+}
+
+static void
+SunDevice (RESPONSE_REF R)
+{
+ if (PLAYER_SAID (R, whats_up_sun_device))
+ {
+ NPCPhrase (GENERAL_INFO_SUN_DEVICE);
+
+ DISABLE_PHRASE (whats_up_sun_device);
+ }
+ else if (PLAYER_SAID (R, how_goes_implanting))
+ {
+ NPCPhrase (UNFORSEEN_DELAYS);
+
+ DISABLE_PHRASE (how_goes_implanting);
+ }
+ else if (PLAYER_SAID (R, i_have_a_cunning_plan))
+ {
+ NPCPhrase (WONT_FALL_FOR_TRICK);
+
+ SET_GAME_STATE (NO_TRICK_AT_SUN, 1);
+ }
+
+ if (PHRASE_ENABLED (whats_up_sun_device))
+ Response (whats_up_sun_device, SunDevice);
+ if (GET_GAME_STATE (MYCON_FELL_FOR_AMBUSH))
+ {
+ if (PHRASE_ENABLED (how_goes_implanting) && GET_GAME_STATE (MYCON_FELL_FOR_AMBUSH))
+ Response (how_goes_implanting, SunDevice);
+ Response (like_to_land, CombatIsInevitable);
+ }
+ else if (GET_GAME_STATE (MYCON_AMBUSH)
+ && !GET_GAME_STATE (NO_TRICK_AT_SUN))
+ Response (i_have_a_cunning_plan, SunDevice);
+ Response (bye_sun_device, CombatIsInevitable);
+}
+
+static void
+TrickMycon (RESPONSE_REF R)
+{
+ if (PLAYER_SAID (R, i_have_a_cunning_plan))
+ {
+ NPCPhrase (TELL_US_ABOUT_WORLD);
+
+ DISABLE_PHRASE (i_have_a_cunning_plan);
+ }
+ else if (PLAYER_SAID (R, clue_1))
+ {
+ NPCPhrase (RESPONSE_1);
+
+ DISABLE_PHRASE (clue_1);
+ }
+ else if (PLAYER_SAID (R, clue_2))
+ {
+ NPCPhrase (RESPONSE_2);
+
+ DISABLE_PHRASE (clue_2);
+ }
+ else if (PLAYER_SAID (R, clue_3))
+ {
+ NPCPhrase (RESPONSE_3);
+
+ DISABLE_PHRASE (clue_3);
+ }
+
+ if (PHRASE_ENABLED (clue_1) == 0
+ && PHRASE_ENABLED (clue_2) == 0
+ && PHRASE_ENABLED (clue_3) == 0)
+ {
+ NPCPhrase (WE_GO_TO_IMPLANT);
+
+ setSegue (Segue_peace);
+ SET_GAME_STATE (MYCON_FELL_FOR_AMBUSH, 1);
+ AddEvent (RELATIVE_EVENT, 0, 0, 0, ADVANCE_MYCON_MISSION);
+ }
+ else
+ NPCPhrase (AMBUSH_TAIL);
+
+ if (PHRASE_ENABLED (clue_1))
+ Response (clue_1, TrickMycon);
+ if (PHRASE_ENABLED (clue_2))
+ Response (clue_2, TrickMycon);
+ if (PHRASE_ENABLED (clue_3))
+ Response (clue_3, TrickMycon);
+}
+
+static void
+NormalMycon (RESPONSE_REF R)
+{
+ RESPONSE_FUNC RespFunc;
+
+ if (PLAYER_SAID (R, what_about_shattered))
+ {
+ NPCPhrase (ABOUT_SHATTERED);
+
+ SET_GAME_STATE (KNOW_ABOUT_SHATTERED, 2);
+ }
+ else if (R)
+ {
+ DoRamble (R);
+ NPCPhrase (RAMBLE_TAIL);
+
+ DISABLE_PHRASE (R);
+ }
+
+ if ((BYTE)TFB_Random () < 256 * 30 / 100)
+ RespFunc = (RESPONSE_FUNC)CombatIsInevitable;
+ else
+ RespFunc = (RESPONSE_FUNC)NormalMycon;
+ if (!(GET_GAME_STATE (GLOBAL_FLAGS_AND_DATA) & (1 << 7)))
+ {
+ if (PHRASE_ENABLED (come_in_peace))
+ Response (come_in_peace, RespFunc);
+ if (PHRASE_ENABLED (gonna_die))
+ Response (gonna_die, RespFunc);
+ if (!MadeChoice) switch (GET_GAME_STATE (MYCON_INSULTS))
+ {
+ case 0:
+ Response (insult_1, RespFunc);
+ break;
+ case 1:
+ Response (insult_2, RespFunc);
+ break;
+ case 2:
+ Response (insult_3, RespFunc);
+ break;
+ case 3:
+ Response (insult_4, RespFunc);
+ break;
+ case 4:
+ Response (insult_5, RespFunc);
+ break;
+ case 5:
+ Response (insult_6, RespFunc);
+ break;
+ case 6:
+ Response (insult_7, RespFunc);
+ break;
+ case 7:
+ Response (insult_8, RespFunc);
+ break;
+ }
+ Response (bye_space, CombatIsInevitable);
+ }
+ else
+ {
+ if (!MadeChoice) switch (GET_GAME_STATE (MYCON_INFO))
+ {
+ case 0:
+ Response (question_1, RespFunc);
+ break;
+ case 1:
+ Response (question_2, RespFunc);
+ break;
+ case 2:
+ Response (question_3, RespFunc);
+ break;
+ case 3:
+ Response (question_4, RespFunc);
+ break;
+ case 4:
+ Response (question_5, RespFunc);
+ break;
+ case 5:
+ Response (question_6, RespFunc);
+ break;
+ case 6:
+ Response (question_7, RespFunc);
+ break;
+ case 7:
+ Response (question_8, RespFunc);
+ break;
+ case 8:
+ Response (question_9, RespFunc);
+ break;
+ case 9:
+ Response (question_10, RespFunc);
+ break;
+ case 10:
+ Response (question_11, RespFunc);
+ break;
+ case 11:
+ Response (question_12, RespFunc);
+ break;
+ case 12:
+ Response (question_13, RespFunc);
+ break;
+ case 13:
+ Response (question_14, RespFunc);
+ break;
+ case 14:
+ Response (question_15, RespFunc);
+ break;
+ case 15:
+ Response (question_16, RespFunc);
+ break;
+ }
+ if (PHRASE_ENABLED (lets_be_friends))
+ Response (lets_be_friends, RespFunc);
+ if (PHRASE_ENABLED (came_to_homeworld))
+ Response (came_to_homeworld, RespFunc);
+ if (PHRASE_ENABLED (submit_to_us))
+ Response (submit_to_us, RespFunc);
+ if (!GET_GAME_STATE (MYCON_FELL_FOR_AMBUSH))
+ {
+ if (GET_GAME_STATE (KNOW_ABOUT_SHATTERED) == 1)
+ Response (what_about_shattered, NormalMycon);
+ if (GET_GAME_STATE (MYCON_AMBUSH))
+ {
+ Response (i_have_a_cunning_plan, TrickMycon);
+ }
+ }
+ Response (bye_homeworld, CombatIsInevitable);
+ }
+}
+
+static void
+Intro (void)
+{
+ BYTE NumVisits;
+
+ if (GET_GAME_STATE (SUN_DEVICE))
+ {
+ NumVisits = GET_GAME_STATE (MYCON_VISITS);
+ switch (NumVisits++)
+ {
+ case 0:
+ NPCPhrase (DIE_THIEF);
+ break;
+ case 1:
+ NPCPhrase (DIE_THIEF_AGAIN);
+ --NumVisits;
+ break;
+ }
+ SET_GAME_STATE (MYCON_VISITS, NumVisits);
+
+ setSegue (Segue_hostile);
+ }
+ else if (GET_GAME_STATE (MYCON_KNOW_AMBUSH))
+ {
+ NPCPhrase (DIE_LIAR);
+
+ setSegue (Segue_hostile);
+ }
+ else if (GET_GAME_STATE (GLOBAL_FLAGS_AND_DATA) & (1 << 6))
+ {
+ NumVisits = GET_GAME_STATE (MYCON_SUN_VISITS);
+ switch (NumVisits++)
+ {
+ case 0:
+ NPCPhrase (HELLO_SUN_DEVICE_WORLD_1);
+ break;
+ case 1:
+ NPCPhrase (HELLO_SUN_DEVICE_WORLD_2);
+ --NumVisits;
+ break;
+ }
+ SET_GAME_STATE (MYCON_SUN_VISITS, NumVisits);
+
+ SunDevice ((RESPONSE_REF)0);
+ }
+ else if (GET_GAME_STATE (GLOBAL_FLAGS_AND_DATA) & (1 << 7))
+ {
+ NumVisits = GET_GAME_STATE (MYCON_HOME_VISITS);
+ switch (NumVisits++)
+ {
+ case 0:
+ NPCPhrase (HELLO_HOMEWORLD_1);
+ break;
+ case 1:
+ NPCPhrase (HELLO_HOMEWORLD_2);
+ break;
+ case 2:
+ NPCPhrase (HELLO_HOMEWORLD_3);
+ break;
+ case 3:
+ NPCPhrase (HELLO_HOMEWORLD_4);
+ break;
+ case 4:
+ NPCPhrase (HELLO_HOMEWORLD_5);
+ break;
+ case 5:
+ NPCPhrase (HELLO_HOMEWORLD_6);
+ break;
+ case 6:
+ NPCPhrase (HELLO_HOMEWORLD_7);
+ break;
+ case 7:
+ NPCPhrase (HELLO_HOMEWORLD_8);
+ --NumVisits;
+ break;
+ }
+ SET_GAME_STATE (MYCON_HOME_VISITS, NumVisits);
+
+ NormalMycon ((RESPONSE_REF)0);
+ }
+ else
+ {
+ NumVisits = GET_GAME_STATE (MYCON_VISITS);
+ switch (NumVisits++)
+ {
+ case 0:
+ NPCPhrase (HELLO_SPACE_1);
+ break;
+ case 1:
+ NPCPhrase (HELLO_SPACE_2);
+ break;
+ case 2:
+ NPCPhrase (HELLO_SPACE_3);
+ break;
+ case 3:
+ NPCPhrase (HELLO_SPACE_4);
+ break;
+ case 4:
+ NPCPhrase (HELLO_SPACE_5);
+ break;
+ case 5:
+ NPCPhrase (HELLO_SPACE_6);
+ break;
+ case 6:
+ NPCPhrase (HELLO_SPACE_7);
+ break;
+ case 7:
+ NPCPhrase (HELLO_SPACE_8);
+ --NumVisits;
+ break;
+ }
+ SET_GAME_STATE (MYCON_VISITS, NumVisits);
+
+ NormalMycon ((RESPONSE_REF)0);
+ }
+}
+
+static COUNT
+uninit_mycon (void)
+{
+ return (0);
+}
+
+static void
+post_mycon_enc (void)
+{
+ // nothing defined so far
+}
+
+LOCDATA*
+init_mycon_comm (void)
+{
+ LOCDATA *retval;
+
+ mycon_desc.init_encounter_func = Intro;
+ mycon_desc.post_encounter_func = post_mycon_enc;
+ mycon_desc.uninit_encounter_func = uninit_mycon;
+
+ mycon_desc.AlienTextBaseline.x = TEXT_X_OFFS + (SIS_TEXT_WIDTH >> 1);
+ mycon_desc.AlienTextBaseline.y = 0;
+ mycon_desc.AlienTextWidth = SIS_TEXT_WIDTH - 16;
+
+ MadeChoice = 0;
+
+ if (LOBYTE (GLOBAL (CurrentActivity)) != WON_LAST_BATTLE)
+ {
+ setSegue (Segue_hostile);
+ }
+ else
+ {
+ setSegue (Segue_peace);
+ }
+ retval = &mycon_desc;
+
+ return (retval);
+}
diff --git a/src/uqm/comm/mycon/resinst.h b/src/uqm/comm/mycon/resinst.h
new file mode 100644
index 0000000..65a6a33
--- /dev/null
+++ b/src/uqm/comm/mycon/resinst.h
@@ -0,0 +1,9 @@
+/* This file was auto-generated by the gen_resfiles utility and
+ should not be edited directly. Modify the master resource list
+ instead and regenerate. */
+
+#define MYCON_COLOR_MAP "comm.mycon.colortable"
+#define MYCON_CONVERSATION_PHRASES "comm.mycon.dialogue"
+#define MYCON_FONT "comm.mycon.font"
+#define MYCON_MUSIC "comm.mycon.music"
+#define MYCON_PMAP_ANIM "comm.mycon.graphics"
diff --git a/src/uqm/comm/mycon/strings.h b/src/uqm/comm/mycon/strings.h
new file mode 100644
index 0000000..8b71dfb
--- /dev/null
+++ b/src/uqm/comm/mycon/strings.h
@@ -0,0 +1,136 @@
+//Copyright Paul Reiche, Fred Ford. 1992-2002
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef MYCON_STRINGS_H
+#define MYCON_STRINGS_H
+
+enum
+{
+ NULL_PHRASE,
+ TELL_US_ABOUT_WORLD,
+ BYE_AND_DIE_HOMEWORLD,
+ RAMBLE_1,
+ RAMBLE_2,
+ RAMBLE_3,
+ RAMBLE_4,
+ RAMBLE_5,
+ RAMBLE_6,
+ RAMBLE_7,
+ RAMBLE_8,
+ RAMBLE_9,
+ RAMBLE_10,
+ RAMBLE_11,
+ RAMBLE_12,
+ RAMBLE_13,
+ RAMBLE_14,
+ RAMBLE_15,
+ RAMBLE_16,
+ RAMBLE_17,
+ RAMBLE_18,
+ RAMBLE_19,
+ RAMBLE_20,
+ RAMBLE_21,
+ RAMBLE_22,
+ RAMBLE_23,
+ RAMBLE_24,
+ RAMBLE_25,
+ RAMBLE_26,
+ RAMBLE_27,
+ RAMBLE_28,
+ RAMBLE_29,
+ RAMBLE_30,
+ RAMBLE_31,
+ RAMBLE_32,
+ question_1,
+ question_2,
+ question_3,
+ question_4,
+ question_5,
+ question_6,
+ question_7,
+ question_8,
+ question_9,
+ question_10,
+ question_11,
+ question_12,
+ question_13,
+ question_14,
+ question_15,
+ question_16,
+ bye_space,
+ BYE_AND_DIE_SPACE,
+ gonna_die,
+ insult_1,
+ insult_2,
+ insult_3,
+ insult_4,
+ insult_5,
+ insult_6,
+ insult_7,
+ insult_8,
+ come_in_peace,
+ HELLO_HOMEWORLD_1,
+ HELLO_HOMEWORLD_2,
+ HELLO_HOMEWORLD_3,
+ HELLO_HOMEWORLD_4,
+ HELLO_HOMEWORLD_5,
+ HELLO_HOMEWORLD_6,
+ HELLO_HOMEWORLD_7,
+ HELLO_HOMEWORLD_8,
+ HELLO_SPACE_1,
+ HELLO_SPACE_2,
+ HELLO_SPACE_3,
+ HELLO_SPACE_4,
+ HELLO_SPACE_5,
+ HELLO_SPACE_6,
+ HELLO_SPACE_7,
+ HELLO_SPACE_8,
+ lets_be_friends,
+ came_to_homeworld,
+ submit_to_us,
+ bye_sun_device,
+ GOODBYE_SUN_DEVICE,
+ RESPONSE_1,
+ RESPONSE_2,
+ RESPONSE_3,
+ clue_1,
+ clue_2,
+ clue_3,
+ what_about_shattered,
+ ABOUT_SHATTERED,
+ HELLO_SUN_DEVICE_WORLD_1,
+ HELLO_SUN_DEVICE_WORLD_2,
+ whats_up_sun_device,
+ GENERAL_INFO_SUN_DEVICE,
+ like_to_land,
+ NEVER_LET_LAND,
+ bye_homeworld,
+ i_have_a_cunning_plan,
+ DIE_LIAR,
+ how_goes_implanting,
+ UNFORSEEN_DELAYS,
+ DIE_THIEF,
+ DIE_THIEF_AGAIN,
+ GOODBYE_AND_DIE,
+ AMBUSH_TAIL,
+ RAMBLE_TAIL,
+ WE_GO_TO_IMPLANT,
+ WONT_FALL_FOR_TRICK,
+};
+
+#endif /* _STRINGS_H */