1 //Copyright Paul Reiche, Fred Ford. 1992-2002
2
3 /*
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18
19 #include "../commall.h"
20 #include "resinst.h"
21 #include "strings.h"
22
23 #include "uqm/build.h"
24 #include "uqm/gameev.h"
25 #include "libs/mathlib.h"
26
27
28 static LOCDATA yehat_desc =
29 {
30 NULL, /* init_encounter_func */
31 NULL, /* post_encounter_func */
32 NULL, /* uninit_encounter_func */
33 YEHAT_PMAP_ANIM, /* AlienFrame */
34 YEHAT_FONT, /* AlienFont */
35 WHITE_COLOR_INIT, /* AlienTextFColor */
36 BLACK_COLOR_INIT, /* AlienTextBColor */
37 {0, 0}, /* AlienTextBaseline */
38 0, /* (SIS_TEXT_WIDTH - 16) * 2 / 3, */ /* AlienTextWidth */
39 ALIGN_CENTER, /* AlienTextAlign */
40 VALIGN_MIDDLE, /* AlienTextValign */
41 YEHAT_COLOR_MAP, /* AlienColorMap */
42 YEHAT_MUSIC, /* AlienSong */
43 NULL_RESOURCE, /* AlienAltSong */
44 0, /* AlienSongFlags */
45 YEHAT_CONVERSATION_PHRASES, /* PlayerPhrases */
46 15, /* NumAnimations */
47 { /* AlienAmbientArray (ambient animations) */
48 { /* right hand-wing tapping keyboard; front guy */
49 4, /* StartIndex */
50 3, /* NumFrames */
51 YOYO_ANIM
52 | WAIT_TALKING, /* AnimFlags */
53 ONE_SECOND / 10, ONE_SECOND / 10, /* FrameRate */
54 ONE_SECOND / 4, ONE_SECOND / 2,/* RestartRate */
55 (1 << 6) | (1 << 7),
56 },
57 { /* left hand-wing tapping keyboard; front guy */
58 7, /* StartIndex */
59 3, /* NumFrames */
60 YOYO_ANIM
61 | WAIT_TALKING, /* AnimFlags */
62 ONE_SECOND / 10, ONE_SECOND / 10, /* FrameRate */
63 ONE_SECOND / 4, ONE_SECOND / 2,/* RestartRate */
64 (1 << 6) | (1 << 7),
65 },
66 {
67 10, /* StartIndex */
68 3, /* NumFrames */
69 YOYO_ANIM, /* AnimFlags */
70 ONE_SECOND / 20, 0, /* FrameRate */
71 ONE_SECOND, ONE_SECOND * 3, /* RestartRate */
72 (1 << 4) | (1 << 14),
73 },
74 {
75 13, /* StartIndex */
76 3, /* NumFrames */
77 YOYO_ANIM, /* AnimFlags */
78 ONE_SECOND / 20, 0, /* FrameRate */
79 ONE_SECOND, ONE_SECOND * 3, /* RestartRate */
80 (1 << 5),
81 },
82 {
83 16, /* StartIndex */
84 5, /* NumFrames */
85 YOYO_ANIM, /* AnimFlags */
86 ONE_SECOND / 15, ONE_SECOND / 15, /* FrameRate */
87 ONE_SECOND * 6, ONE_SECOND * 3,/* RestartRate */
88 (1 << 2) | (1 << 14),
89 },
90 {
91 21, /* StartIndex */
92 5, /* NumFrames */
93 YOYO_ANIM, /* AnimFlags */
94 ONE_SECOND / 15, ONE_SECOND / 15, /* FrameRate */
95 ONE_SECOND * 6, ONE_SECOND * 3,/* RestartRate */
96 (1 << 3),
97 },
98 { /* right arm-wing rising; front guy */
99 26, /* StartIndex */
100 2, /* NumFrames */
101 YOYO_ANIM | WAIT_TALKING, /* AnimFlags */
102 ONE_SECOND / 15, ONE_SECOND / 15, /* FrameRate */
103 ONE_SECOND * 6, ONE_SECOND * 3,/* RestartRate */
104 (1 << 0) | (1 << 1),
105 },
106 { /* left arm-wing rising; front guy */
107 28, /* StartIndex */
108 2, /* NumFrames */
109 YOYO_ANIM | WAIT_TALKING, /* AnimFlags */
110 ONE_SECOND / 15, ONE_SECOND / 15, /* FrameRate */
111 ONE_SECOND * 6, ONE_SECOND * 3,/* RestartRate */
112 (1 << 0) | (1 << 1),
113 },
114 {
115 30, /* StartIndex */
116 3, /* NumFrames */
117 YOYO_ANIM, /* AnimFlags */
118 ONE_SECOND / 30, ONE_SECOND / 30, /* FrameRate */
119 ONE_SECOND / 30, ONE_SECOND / 30, /* RestartRate */
120 0, /* BlockMask */
121 },
122 {
123 33, /* StartIndex */
124 3, /* NumFrames */
125 YOYO_ANIM, /* AnimFlags */
126 ONE_SECOND / 30, ONE_SECOND / 30, /* FrameRate */
127 ONE_SECOND / 30, ONE_SECOND / 30, /* RestartRate */
128 0, /* BlockMask */
129 },
130 {
131 36, /* StartIndex */
132 3, /* NumFrames */
133 YOYO_ANIM, /* AnimFlags */
134 ONE_SECOND / 30, ONE_SECOND / 30, /* FrameRate */
135 ONE_SECOND / 30, ONE_SECOND / 30, /* RestartRate */
136 0, /* BlockMask */
137 },
138 {
139 39, /* StartIndex */
140 3, /* NumFrames */
141 YOYO_ANIM, /* AnimFlags */
142 ONE_SECOND / 30, ONE_SECOND / 30, /* FrameRate */
143 ONE_SECOND / 30, ONE_SECOND / 30, /* RestartRate */
144 0, /* BlockMask */
145 },
146 {
147 42, /* StartIndex */
148 3, /* NumFrames */
149 YOYO_ANIM, /* AnimFlags */
150 ONE_SECOND / 30, ONE_SECOND / 30, /* FrameRate */
151 ONE_SECOND / 30, ONE_SECOND / 30, /* RestartRate */
152 0, /* BlockMask */
153 },
154 {
155 45, /* StartIndex */
156 3, /* NumFrames */
157 YOYO_ANIM, /* AnimFlags */
158 ONE_SECOND / 30, ONE_SECOND / 30, /* FrameRate */
159 ONE_SECOND / 30, ONE_SECOND / 30, /* RestartRate */
160 0, /* BlockMask */
161 },
162 {
163 48, /* StartIndex */
164 4, /* NumFrames */
165 YOYO_ANIM | WAIT_TALKING, /* AnimFlags */
166 ONE_SECOND / 30, 0, /* FrameRate */
167 ONE_SECOND, ONE_SECOND * 3, /* RestartRate */
168 (1 << 2) | (1 << 4),
169 },
170 },
171 { /* AlienTransitionDesc - empty */
172 0, /* StartIndex */
173 0, /* NumFrames */
174 0, /* AnimFlags */
175 0, 0, /* FrameRate */
176 0, 0, /* RestartRate */
177 0, /* BlockMask */
178 },
179 { /* AlienTalkDesc */
180 1, /* StartIndex */
181 3, /* NumFrames */
182 0, /* AnimFlags */
183 ONE_SECOND / 15, 0, /* FrameRate */
184 ONE_SECOND / 12, 0, /* RestartRate */
185 0, /* BlockMask */
186 },
187 NULL, /* AlienNumberSpeech - none */
188 /* Filler for loaded resources */
189 NULL, NULL, NULL,
190 NULL,
191 NULL,
192 };
193
194 static void
ExitConversation(RESPONSE_REF R)195 ExitConversation (RESPONSE_REF R)
196 {
197 setSegue (Segue_hostile);
198
199 if (PLAYER_SAID (R, bye_homeworld))
200 NPCPhrase (GOODBYE_AND_DIE_HOMEWORLD);
201 else if (PLAYER_SAID (R, bye_royalist))
202 NPCPhrase (GOODBYE_AND_DIE_ROYALIST);
203 else if (PLAYER_SAID (R, i_demand_you_ally_homeworld0))
204 {
205 NPCPhrase (ENEMY_MUST_DIE);
206
207 SET_GAME_STATE (NO_YEHAT_ALLY_HOME, 1);
208 }
209 else if (PLAYER_SAID (R, bye_space))
210 {
211 if ((BYTE)TFB_Random () & 1)
212 NPCPhrase (GOODBYE_AND_DIE_SPACE);
213 else
214 {
215 NPCPhrase (GO_IN_PEACE);
216
217 setSegue (Segue_peace);
218 }
219 }
220 else if (PLAYER_SAID (R, not_here)
221 || PLAYER_SAID (R, not_send))
222 {
223 switch (GET_GAME_STATE (YEHAT_REBEL_VISITS))
224 {
225 case 0:
226 NPCPhrase (JUST_A_TRICK_1);
227 break;
228 case 1:
229 NPCPhrase (JUST_A_TRICK_2);
230 break;
231 }
232 SET_GAME_STATE (YEHAT_REBEL_VISITS, 1);
233 }
234 else if (PLAYER_SAID (R, ok_send))
235 {
236 NPCPhrase (WE_REVOLT);
237
238 setSegue (Segue_peace);
239 SET_GAME_STATE (YEHAT_CIVIL_WAR, 1);
240 SET_GAME_STATE (YEHAT_VISITS, 0);
241 SET_GAME_STATE (YEHAT_HOME_VISITS, 0);
242 SET_GAME_STATE (YEHAT_REBEL_VISITS, 0);
243 SET_GAME_STATE (YEHAT_REBEL_INFO, 0);
244 SET_GAME_STATE (YEHAT_REBEL_TOLD_PKUNK, 0);
245 SET_GAME_STATE (NO_YEHAT_INFO, 0);
246
247 AddEvent (RELATIVE_EVENT, 0, 0, 0, YEHAT_REBEL_EVENT);
248 }
249 }
250
251 static void
Royalists(RESPONSE_REF R)252 Royalists (RESPONSE_REF R)
253 {
254 if (PLAYER_SAID (R, how_is_rebellion))
255 {
256 BYTE NumVisits;
257
258 NumVisits = GET_GAME_STATE (YEHAT_ROYALIST_INFO);
259 switch (NumVisits++)
260 {
261 case 0:
262 NPCPhrase (ROYALIST_REBELLION_1);
263 break;
264 case 1:
265 NPCPhrase (ROYALIST_REBELLION_2);
266 --NumVisits;
267 break;
268 }
269 SET_GAME_STATE (YEHAT_ROYALIST_INFO, NumVisits);
270
271 DISABLE_PHRASE (how_is_rebellion);
272 }
273 else if (PLAYER_SAID (R, what_about_pkunk_royalist))
274 {
275 if (GET_GAME_STATE (YEHAT_ABSORBED_PKUNK))
276 NPCPhrase (PKUNK_ABSORBED_ROYALIST);
277 else
278 NPCPhrase (HATE_PKUNK_ROYALIST);
279
280 SET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK, 1);
281 }
282 else if (PLAYER_SAID (R, sorry_about_revolution))
283 {
284 NPCPhrase (ALL_YOUR_FAULT);
285
286 SET_GAME_STATE (NO_YEHAT_INFO, 1);
287 }
288
289 if (PHRASE_ENABLED (how_is_rebellion))
290 Response (how_is_rebellion, Royalists);
291 if (!GET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK)
292 && GET_GAME_STATE (PKUNK_VISITS)
293 && GET_GAME_STATE (PKUNK_HOME_VISITS))
294 Response (what_about_pkunk_royalist, Royalists);
295 if (!GET_GAME_STATE (NO_YEHAT_INFO))
296 Response (sorry_about_revolution, Royalists);
297 Response (bye_royalist, ExitConversation);
298 }
299
300 static void
StartRevolt(RESPONSE_REF R)301 StartRevolt (RESPONSE_REF R)
302 {
303 if (PLAYER_SAID (R, shofixti_alive_1))
304 {
305 NPCPhrase (SEND_HIM_OVER_1);
306
307 SET_GAME_STATE (YEHAT_REBEL_TOLD_PKUNK, 1);
308 }
309 else if (PLAYER_SAID (R, shofixti_alive_2))
310 NPCPhrase (SEND_HIM_OVER_2);
311
312 if (HaveEscortShip (SHOFIXTI_SHIP))
313 Response (ok_send, ExitConversation);
314 else
315 Response (not_here, ExitConversation);
316 Response (not_send, ExitConversation);
317 }
318
319 static void
YehatHome(RESPONSE_REF R)320 YehatHome (RESPONSE_REF R)
321 {
322
323 if (PLAYER_SAID (R, whats_up_homeworld))
324 {
325 BYTE NumVisits;
326
327 NumVisits = GET_GAME_STATE (YEHAT_ROYALIST_INFO);
328 switch (NumVisits++)
329 {
330 case 0:
331 NPCPhrase (GENERAL_INFO_HOMEWORLD_1);
332 break;
333 case 1:
334 NPCPhrase (GENERAL_INFO_HOMEWORLD_2);
335 --NumVisits;
336 break;
337 }
338 SET_GAME_STATE (YEHAT_ROYALIST_INFO, NumVisits);
339
340 DISABLE_PHRASE (whats_up_homeworld);
341 }
342 else if (PLAYER_SAID (R, at_least_help_us_homeworld))
343 {
344 NPCPhrase (NO_HELP_ENEMY);
345
346 SET_GAME_STATE (NO_YEHAT_HELP_HOME, 1);
347 }
348 else if (PLAYER_SAID (R, give_info))
349 {
350 NPCPhrase (NO_INFO_FOR_ENEMY);
351
352 SET_GAME_STATE (NO_YEHAT_INFO, 1);
353 }
354 else if (PLAYER_SAID (R, what_about_pkunk_royalist))
355 {
356 if (GET_GAME_STATE (YEHAT_ABSORBED_PKUNK))
357 NPCPhrase (PKUNK_ABSORBED_ROYALIST);
358 else
359 NPCPhrase (HATE_PKUNK_ROYALIST);
360
361 SET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK, 1);
362 }
363
364 if (PHRASE_ENABLED (whats_up_homeworld))
365 Response (whats_up_homeworld, YehatHome);
366 if (!GET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK)
367 && GET_GAME_STATE (PKUNK_VISITS)
368 && GET_GAME_STATE (PKUNK_HOME_VISITS))
369 Response (what_about_pkunk_royalist, YehatHome);
370 if (!GET_GAME_STATE (NO_YEHAT_HELP_HOME))
371 Response (at_least_help_us_homeworld, YehatHome);
372 if (!GET_GAME_STATE (NO_YEHAT_INFO))
373 Response (give_info, YehatHome);
374 if (!GET_GAME_STATE (NO_YEHAT_ALLY_HOME))
375 {
376 UNICODE buf[ALLIANCE_NAME_BUFSIZE];
377
378 GetAllianceName (buf, name_1);
379 construct_response (
380 shared_phrase_buf,
381 i_demand_you_ally_homeworld0,
382 GLOBAL_SIS (CommanderName),
383 i_demand_you_ally_homeworld1,
384 buf,
385 i_demand_you_ally_homeworld2,
386 GLOBAL_SIS (ShipName),
387 i_demand_you_ally_homeworld3,
388 (UNICODE*)NULL);
389 DoResponsePhrase (i_demand_you_ally_homeworld0,
390 ExitConversation, shared_phrase_buf);
391 }
392 Response (bye_homeworld, ExitConversation);
393 }
394
395 static void
YehatSpace(RESPONSE_REF R)396 YehatSpace (RESPONSE_REF R)
397 {
398 BYTE i, LastStack;
399 RESPONSE_REF pStr[3];
400
401 LastStack = 0;
402 pStr[0] = pStr[1] = pStr[2] = 0;
403 if (PLAYER_SAID (R, whats_up_space_1)
404 || PLAYER_SAID (R, whats_up_space_2)
405 || PLAYER_SAID (R, whats_up_space_3)
406 || PLAYER_SAID (R, whats_up_space_4))
407 {
408 BYTE NumVisits;
409
410 NumVisits = GET_GAME_STATE (YEHAT_REBEL_INFO);
411 switch (NumVisits++)
412 {
413 case 0:
414 NPCPhrase (GENERAL_INFO_SPACE_1);
415 break;
416 case 1:
417 NPCPhrase (GENERAL_INFO_SPACE_2);
418 break;
419 case 2:
420 NPCPhrase (GENERAL_INFO_SPACE_3);
421 break;
422 case 3:
423 NPCPhrase (GENERAL_INFO_SPACE_4);
424 --NumVisits;
425 break;
426 }
427 SET_GAME_STATE (YEHAT_REBEL_INFO, NumVisits);
428
429 DISABLE_PHRASE (whats_up_space_1);
430 }
431 else if (PLAYER_SAID (R, i_demand_you_ally_space0))
432 {
433 NPCPhrase (WE_CANNOT_1);
434
435 LastStack = 2;
436 SET_GAME_STATE (NO_YEHAT_ALLY_SPACE, 1);
437 }
438 else if (PLAYER_SAID (R, obligation))
439 {
440 NPCPhrase (WE_CANNOT_2);
441
442 setSegue (Segue_peace);
443 SET_GAME_STATE (NO_YEHAT_ALLY_SPACE, 2);
444
445 return;
446 }
447 else if (PLAYER_SAID (R, at_least_help_us_space))
448 {
449 NPCPhrase (SORRY_CANNOT);
450
451 LastStack = 1;
452 SET_GAME_STATE (NO_YEHAT_HELP_SPACE, 1);
453 }
454 else if (PLAYER_SAID (R, dishonor))
455 {
456 NPCPhrase (HERES_A_HINT);
457
458 SET_GAME_STATE (NO_YEHAT_HELP_SPACE, 2);
459 }
460 else if (PLAYER_SAID (R, what_about_pkunk_royalist))
461 {
462 if (GET_GAME_STATE (YEHAT_ABSORBED_PKUNK))
463 NPCPhrase (PKUNK_ABSORBED_ROYALIST);
464 else
465 NPCPhrase (HATE_PKUNK_ROYALIST);
466
467 SET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK, 1);
468 }
469
470 // SET_FUNCPTR (&PtrDesc, YehatSpace);
471 if (PHRASE_ENABLED (whats_up_space_1))
472 {
473 switch (GET_GAME_STATE (YEHAT_REBEL_INFO))
474 {
475 case 0:
476 pStr[0] = whats_up_space_1;
477 break;
478 case 1:
479 pStr[0] = whats_up_space_2;
480 break;
481 case 2:
482 pStr[0] = whats_up_space_3;
483 break;
484 case 3:
485 pStr[0] = whats_up_space_4;
486 break;
487 }
488 }
489 switch (GET_GAME_STATE (NO_YEHAT_HELP_SPACE))
490 {
491 case 0:
492 pStr[1] = at_least_help_us_space;
493 break;
494 case 1:
495 pStr[1] = dishonor;
496 break;
497 }
498 switch (GET_GAME_STATE (NO_YEHAT_ALLY_SPACE))
499 {
500 case 0:
501 {
502 UNICODE buf[ALLIANCE_NAME_BUFSIZE];
503
504 GetAllianceName (buf, name_1);
505 construct_response (
506 shared_phrase_buf,
507 i_demand_you_ally_space0,
508 GLOBAL_SIS (CommanderName),
509 i_demand_you_ally_space1,
510 GLOBAL_SIS (ShipName),
511 i_demand_you_ally_space2,
512 buf,
513 i_demand_you_ally_space3,
514 (UNICODE*)NULL);
515 pStr[2] = i_demand_you_ally_space0;
516 break;
517 }
518 case 1:
519 pStr[2] = obligation;
520 break;
521 }
522
523 if (pStr[LastStack])
524 {
525 if (pStr[LastStack] != i_demand_you_ally_space0)
526 Response (pStr[LastStack], YehatSpace);
527 else
528 DoResponsePhrase (pStr[LastStack], YehatSpace, shared_phrase_buf);
529 }
530 for (i = 0; i < 3; ++i)
531 {
532 if (i != LastStack && pStr[i])
533 {
534 if (pStr[i] != i_demand_you_ally_space0)
535 Response (pStr[i], YehatSpace);
536 else
537 DoResponsePhrase (pStr[i], YehatSpace, shared_phrase_buf);
538 }
539 }
540 if (!GET_GAME_STATE (YEHAT_ROYALIST_TOLD_PKUNK)
541 && GET_GAME_STATE (PKUNK_VISITS)
542 && GET_GAME_STATE (PKUNK_HOME_VISITS))
543 Response (what_about_pkunk_royalist, YehatSpace);
544 if (GET_GAME_STATE (SHOFIXTI_VISITS))
545 {
546 switch (GET_GAME_STATE (YEHAT_REBEL_TOLD_PKUNK))
547 {
548 case 0:
549 Response (shofixti_alive_1, StartRevolt);
550 break;
551 case 1:
552 Response (shofixti_alive_2, StartRevolt);
553 break;
554 }
555 }
556 Response (bye_space, ExitConversation);
557 }
558
559 static void
Intro(void)560 Intro (void)
561 {
562 BYTE NumVisits;
563
564 if (LOBYTE (GLOBAL (CurrentActivity)) == WON_LAST_BATTLE)
565 {
566 NPCPhrase (OUT_TAKES);
567
568 setSegue (Segue_peace);
569 return;
570 }
571
572 if (GET_GAME_STATE (YEHAT_CIVIL_WAR))
573 {
574 if (GET_GAME_STATE (GLOBAL_FLAGS_AND_DATA) & (1 << 7))
575 {
576 NumVisits = GET_GAME_STATE (YEHAT_HOME_VISITS);
577 switch (NumVisits++)
578 {
579 case 0:
580 NPCPhrase (ROYALIST_HOMEWORLD_HELLO_1);
581 break;
582 case 1:
583 NPCPhrase (ROYALIST_HOMEWORLD_HELLO_2);
584 --NumVisits;
585 break;
586 }
587 SET_GAME_STATE (YEHAT_HOME_VISITS, NumVisits);
588 }
589 else
590 {
591 NumVisits = GET_GAME_STATE (YEHAT_VISITS);
592 switch (NumVisits++)
593 {
594 case 0:
595 NPCPhrase (ROYALIST_SPACE_HELLO_1);
596 break;
597 case 1:
598 NPCPhrase (ROYALIST_SPACE_HELLO_2);
599 --NumVisits;
600 break;
601 }
602 SET_GAME_STATE (YEHAT_VISITS, NumVisits);
603 }
604
605 Royalists ((RESPONSE_REF)0);
606 }
607 else if (GET_GAME_STATE (GLOBAL_FLAGS_AND_DATA) & (1 << 7))
608 {
609 NumVisits = GET_GAME_STATE (YEHAT_HOME_VISITS);
610 switch (NumVisits++)
611 {
612 case 0:
613 NPCPhrase (HOMEWORLD_HELLO_1);
614 break;
615 case 1:
616 NPCPhrase (HOMEWORLD_HELLO_2);
617 --NumVisits;
618 break;
619 }
620 SET_GAME_STATE (YEHAT_HOME_VISITS, NumVisits);
621
622 YehatHome ((RESPONSE_REF)0);
623 }
624 else
625 {
626 NumVisits = GET_GAME_STATE (YEHAT_VISITS);
627 switch (NumVisits++)
628 {
629 case 0:
630 NPCPhrase (SPACE_HELLO_1);
631 break;
632 case 1:
633 NPCPhrase (SPACE_HELLO_2);
634 break;
635 case 2:
636 NPCPhrase (SPACE_HELLO_3);
637 break;
638 case 3:
639 NPCPhrase (SPACE_HELLO_4);
640 --NumVisits;
641 break;
642 }
643 SET_GAME_STATE (YEHAT_VISITS, NumVisits);
644
645 YehatSpace ((RESPONSE_REF)0);
646 }
647 }
648
649 static COUNT
uninit_yehat(void)650 uninit_yehat (void)
651 {
652 return (0);
653 }
654
655 static void
post_yehat_enc(void)656 post_yehat_enc (void)
657 {
658 // nothing defined so far
659 }
660
661 LOCDATA*
init_yehat_comm(void)662 init_yehat_comm (void)
663 {
664 LOCDATA *retval;
665
666 yehat_desc.init_encounter_func = Intro;
667 yehat_desc.post_encounter_func = post_yehat_enc;
668 yehat_desc.uninit_encounter_func = uninit_yehat;
669
670 yehat_desc.AlienTextBaseline.x = SIS_SCREEN_WIDTH * 2 / 3;
671 yehat_desc.AlienTextBaseline.y = 60;
672 yehat_desc.AlienTextWidth = (SIS_TEXT_WIDTH - 16) * 2 / 3;
673
674 if (LOBYTE (GLOBAL (CurrentActivity)) != WON_LAST_BATTLE)
675 {
676 setSegue (Segue_hostile);
677 }
678 else
679 {
680 setSegue (Segue_peace);
681 }
682 retval = &yehat_desc;
683
684 return (retval);
685 }
686