From: <av...@us...> - 2011-05-15 20:45:14
|
Revision: 3610 http://sc2.svn.sourceforge.net/sc2/?rev=3610&view=rev Author: avolkov Date: 2011-05-15 20:45:07 +0000 (Sun, 15 May 2011) Log Message: ----------- Added spoken Slylandro probe coordinates; bug #732 Modified Paths: -------------- trunk/sc2/ChangeLog trunk/sc2/content/addons/3dovoice/probe/probe-019.ogg trunk/sc2/content/addons/3dovoice/probe/probe-030.ogg trunk/sc2/content/addons/3dovoice/probe/probe.ts trunk/sc2/content/base/comm/probe/probe.txt trunk/sc2/src/uqm/comm/druuge/druugec.c trunk/sc2/src/uqm/comm/melnorm/melnorm.c trunk/sc2/src/uqm/comm/slyland/slyland.c trunk/sc2/src/uqm/comm/slyland/strings.h trunk/sc2/src/uqm/commglue.c trunk/sc2/src/uqm/commglue.h trunk/sc2/src/uqm/globdata.h Added Paths: ----------- trunk/sc2/content/addons/3dovoice/probe/probe-031.ogg trunk/sc2/content/addons/3dovoice/probe/probe-032.ogg trunk/sc2/content/addons/3dovoice/probe/probe-033.ogg trunk/sc2/content/addons/3dovoice/probe/probe-034.ogg trunk/sc2/content/addons/3dovoice/probe/probe-035.ogg trunk/sc2/content/addons/3dovoice/probe/probe-036.ogg trunk/sc2/content/addons/3dovoice/probe/probe-037.ogg trunk/sc2/content/addons/3dovoice/probe/probe-038.ogg trunk/sc2/content/addons/3dovoice/probe/probe-039.ogg trunk/sc2/content/addons/3dovoice/probe/probe-040.ogg trunk/sc2/content/addons/3dovoice/probe/probe-041.ogg trunk/sc2/content/addons/3dovoice/probe/probe-042.ogg trunk/sc2/content/addons/3dovoice/probe/probe-043.ogg trunk/sc2/content/addons/3dovoice/probe/probe-044.ogg trunk/sc2/content/addons/3dovoice/probe/probe-045.ogg trunk/sc2/content/addons/3dovoice/probe/probe-046.ogg trunk/sc2/content/addons/3dovoice/probe/probe-047.ogg trunk/sc2/content/addons/3dovoice/probe/probe-048.ogg trunk/sc2/content/addons/3dovoice/probe/probe-049.ogg trunk/sc2/content/addons/3dovoice/probe/probe-050.ogg trunk/sc2/content/addons/3dovoice/probe/probe-051.ogg trunk/sc2/content/addons/3dovoice/probe/probe-052.ogg trunk/sc2/content/addons/3dovoice/probe/probe-053.ogg trunk/sc2/content/addons/3dovoice/probe/probe-054.ogg trunk/sc2/content/addons/3dovoice/probe/probe-055.ogg trunk/sc2/content/addons/3dovoice/probe/probe-056.ogg trunk/sc2/content/addons/3dovoice/probe/probe-057.ogg trunk/sc2/content/addons/3dovoice/probe/probe-058.ogg trunk/sc2/content/addons/3dovoice/probe/probe-059.ogg trunk/sc2/content/addons/3dovoice/probe/probe-060.ogg trunk/sc2/content/addons/3dovoice/probe/probe-061.ogg trunk/sc2/content/addons/3dovoice/probe/probe-062.ogg trunk/sc2/content/addons/3dovoice/probe/probe-063.ogg trunk/sc2/content/addons/3dovoice/probe/probe-064.ogg Modified: trunk/sc2/ChangeLog =================================================================== --- trunk/sc2/ChangeLog 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/ChangeLog 2011-05-15 20:45:07 UTC (rev 3610) @@ -1,4 +1,5 @@ Changes towards version 0.7: +- Added spoken Slylandro probe coordinates (bug #732) - Nic, Alex - Added the missing bits to the no-voice versions of Mycon, Syreen and Utwig dialogue (bug #327) - Alex - Syreen dialog tree no longer resets after visiting the Syreen Vault Modified: trunk/sc2/content/addons/3dovoice/probe/probe-019.ogg =================================================================== (Binary files differ) Modified: trunk/sc2/content/addons/3dovoice/probe/probe-030.ogg =================================================================== (Binary files differ) Added: trunk/sc2/content/addons/3dovoice/probe/probe-031.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-031.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-032.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-032.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-033.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-033.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-034.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-034.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-035.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-035.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-036.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-036.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-037.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-037.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-038.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-038.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-039.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-039.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-040.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-040.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-041.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-041.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-042.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-042.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-043.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-043.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-044.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-044.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-045.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-045.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-046.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-046.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-047.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-047.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-048.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-048.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-049.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-049.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-050.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-050.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-051.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-051.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-052.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-052.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-053.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-053.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-054.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-054.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-055.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-055.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-056.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-056.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-057.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-057.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-058.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-058.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-059.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-059.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-060.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-060.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-061.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-061.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-062.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-062.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-063.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-063.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Added: trunk/sc2/content/addons/3dovoice/probe/probe-064.ogg =================================================================== (Binary files differ) Property changes on: trunk/sc2/content/addons/3dovoice/probe/probe-064.ogg ___________________________________________________________________ Added: svn:mime-type + application/ogg Modified: trunk/sc2/content/addons/3dovoice/probe/probe.ts =================================================================== --- trunk/sc2/content/addons/3dovoice/probe/probe.ts 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/content/addons/3dovoice/probe/probe.ts 2011-05-15 20:45:07 UTC (rev 3610) @@ -51,3 +51,36 @@ #(HOSTILE) 3785 #(DESTRUCT_SEQUENCE) #(destruct_code) +#(COORD_PLUS) +#(COORD_MINUS) +#(COORD_POINT) +#(ENUMERATE_HUNDRED) +#(ENUMERATE_THOUSAND) +#(ENUMERATE_ZERO) +#(ENUMERATE_ONE) +#(ENUMERATE_TWO) +#(ENUMERATE_THREE) +#(ENUMERATE_FOUR) +#(ENUMERATE_FIVE) +#(ENUMERATE_SIX) +#(ENUMERATE_SEVEN) +#(ENUMERATE_EIGHT) +#(ENUMERATE_NINE) +#(ENUMERATE_TEN) +#(ENUMERATE_ELEVEN) +#(ENUMERATE_TWELVE) +#(ENUMERATE_THIRTEEN) +#(ENUMERATE_FOURTEEN) +#(ENUMERATE_FIFTEEN) +#(ENUMERATE_SIXTEEN) +#(ENUMERATE_SEVENTEEN) +#(ENUMERATE_EIGHTEEN) +#(ENUMERATE_NINETEEN) +#(ENUMERATE_TWENTY) +#(ENUMERATE_THIRTY) +#(ENUMERATE_FOURTY) +#(ENUMERATE_FIFTY) +#(ENUMERATE_SIXTY) +#(ENUMERATE_SEVENTY) +#(ENUMERATE_EIGHTY) +#(ENUMERATE_NINETY) Modified: trunk/sc2/content/base/comm/probe/probe.txt =================================================================== --- trunk/sc2/content/base/comm/probe/probe.txt 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/content/base/comm/probe/probe.txt 2011-05-15 20:45:07 UTC (rev 3610) @@ -94,12 +94,12 @@ THIS IS PROBE 2418-B. WE REPLICATE SO THAT WE MAY EXPAND THE SCOPE OF MISSION. #(THIS_IS_PROBE_40) probe-019.ogg -THIS IS PROBE 2418-B. +THIS IS PROBE 2418-B. COORDINATES ARE: #(THIS_IS_PROBE_41) probe-030.ogg -COORDINATES ARE: +, -#(THIS_IS_PROBE_42) +#(THIS_IS_PROBE_42) probe-031.ogg . #(why_attack_1) @@ -177,3 +177,102 @@ #(destruct_code) Transmit destruct sequence! + +#(COORD_PLUS) probe-032.ogg ++ + +#(COORD_MINUS) probe-033.ogg +- + +#(COORD_POINT) probe-034.ogg +. + +#(ENUMERATE_HUNDRED) probe-035.ogg +hundred + +#(ENUMERATE_THOUSAND) probe-036.ogg +thousand + +#(ENUMERATE_ZERO) probe-037.ogg +zero + +#(ENUMERATE_ONE) probe-038.ogg +one + +#(ENUMERATE_TWO) probe-039.ogg +two + +#(ENUMERATE_THREE) probe-040.ogg +three + +#(ENUMERATE_FOUR) probe-041.ogg +four + +#(ENUMERATE_FIVE) probe-042.ogg +five + +#(ENUMERATE_SIX) probe-043.ogg +six + +#(ENUMERATE_SEVEN) probe-044.ogg +seven + +#(ENUMERATE_EIGHT) probe-045.ogg +eight + +#(ENUMERATE_NINE) probe-046.ogg +nine + +#(ENUMERATE_TEN) probe-047.ogg +ten + +#(ENUMERATE_ELEVEN) probe-048.ogg +eleven + +#(ENUMERATE_TWELVE) probe-049.ogg +twelve + +#(ENUMERATE_THIRTEEN) probe-050.ogg +thirteen + +#(ENUMERATE_FOURTEEN) probe-051.ogg +fourteen + +#(ENUMERATE_FIFTEEN) probe-052.ogg +fifteen + +#(ENUMERATE_SIXTEEN) probe-053.ogg +sixteen + +#(ENUMERATE_SEVENTEEN) probe-054.ogg +seventeen + +#(ENUMERATE_EIGHTEEN) probe-055.ogg +eighteen + +#(ENUMERATE_NINETEEN) probe-056.ogg +nineteen + +#(ENUMERATE_TWENTY) probe-057.ogg +twenty + +#(ENUMERATE_THIRTY) probe-058.ogg +thirty + +#(ENUMERATE_FOURTY) probe-059.ogg +fourty + +#(ENUMERATE_FIFTY) probe-060.ogg +fifty + +#(ENUMERATE_SIXTY) probe-061.ogg +sixty + +#(ENUMERATE_SEVENTY) probe-062.ogg +seventy + +#(ENUMERATE_EIGHTY) probe-063.ogg +eighty + +#(ENUMERATE_NINETY) probe-064.ogg +ninety Modified: trunk/sc2/src/uqm/comm/druuge/druugec.c =================================================================== --- trunk/sc2/src/uqm/comm/druuge/druugec.c 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/src/uqm/comm/druuge/druugec.c 2011-05-15 20:45:07 UTC (rev 3610) @@ -476,7 +476,7 @@ UnlockMutex (GraphicsLock); NPCPhrase (FUEL0); - NPCPhrase (-(int)f); + NPCNumber (f, NULL); NPCPhrase (FUEL1); if (f >= 250) Modified: trunk/sc2/src/uqm/comm/melnorm/melnorm.c =================================================================== --- trunk/sc2/src/uqm/comm/melnorm/melnorm.c 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/src/uqm/comm/melnorm/melnorm.c 2011-05-15 20:45:07 UTC (rev 3610) @@ -39,7 +39,7 @@ #define NUM_ALIEN_RACE_ITEMS 16 #define NUM_TECH_ITEMS 13 -static NUMBER_SPEECH_DESC melnorme_numbers_english; +static const NUMBER_SPEECH_DESC melnorme_numbers_english; static LOCDATA melnorme_desc = { @@ -159,7 +159,7 @@ ENUMERATE_NINETY }; -static NUMBER_SPEECH_DESC melnorme_numbers_english = +static const NUMBER_SPEECH_DESC melnorme_numbers_english = { 5, /* NumDigits */ { @@ -1183,9 +1183,9 @@ added_credit = GLOBAL_SIS (TotalBioMass) * BIO_CREDIT_VALUE; NPCPhrase (SOLD_LIFE_DATA1); - NPCPhrase (-(int)GLOBAL_SIS (TotalBioMass)); + NPCNumber (GLOBAL_SIS (TotalBioMass), NULL); NPCPhrase (SOLD_LIFE_DATA2); - NPCPhrase (-(int)added_credit); + NPCNumber (added_credit, NULL); NPCPhrase (SOLD_LIFE_DATA3); // queue WHAT_TO_SELL before talk-segue if (num_new_rainbows) @@ -1231,9 +1231,9 @@ added_credit = num_new_rainbows * (250 * BIO_CREDIT_VALUE); NPCPhrase (SOLD_RAINBOW_LOCATIONS1); - NPCPhrase (-(int)num_new_rainbows); + NPCNumber (num_new_rainbows, NULL); NPCPhrase (SOLD_RAINBOW_LOCATIONS2); - NPCPhrase (-(int)added_credit); + NPCNumber (added_credit, NULL); NPCPhrase (SOLD_RAINBOW_LOCATIONS3); num_new_rainbows += GET_GAME_STATE (MELNORME_RAINBOW_COUNT); Modified: trunk/sc2/src/uqm/comm/slyland/slyland.c =================================================================== --- trunk/sc2/src/uqm/comm/slyland/slyland.c 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/src/uqm/comm/slyland/slyland.c 2011-05-15 20:45:07 UTC (rev 3610) @@ -17,6 +17,7 @@ */ #include "../commall.h" +#include <math.h> #include "resinst.h" #include "strings.h" @@ -25,6 +26,8 @@ #include "uqm/setup.h" +static const NUMBER_SPEECH_DESC probe_numbers_english; + static LOCDATA slylandro_desc = { NULL, /* init_encounter_func */ @@ -110,13 +113,97 @@ 0, 0, /* RestartRate */ 0, /* BlockMask */ }, - NULL, /* AlienNumberSpeech - none */ + &probe_numbers_english, /* AlienNumberSpeech - default */ /* Filler for loaded resources */ NULL, NULL, NULL, NULL, NULL, }; +static COUNT probe_digit_names[] = +{ + ENUMERATE_ZERO, + ENUMERATE_ONE, + ENUMERATE_TWO, + ENUMERATE_THREE, + ENUMERATE_FOUR, + ENUMERATE_FIVE, + ENUMERATE_SIX, + ENUMERATE_SEVEN, + ENUMERATE_EIGHT, + ENUMERATE_NINE, +}; + +static COUNT probe_teen_names[] = +{ + ENUMERATE_TEN, + ENUMERATE_ELEVEN, + ENUMERATE_TWELVE, + ENUMERATE_THIRTEEN, + ENUMERATE_FOURTEEN, + ENUMERATE_FIFTEEN, + ENUMERATE_SIXTEEN, + ENUMERATE_SEVENTEEN, + ENUMERATE_EIGHTEEN, + ENUMERATE_NINETEEN, +}; + +static COUNT probe_tens_names[] = +{ + 0, /* invalid */ + 0, /* skip digit */ + ENUMERATE_TWENTY, + ENUMERATE_THIRTY, + ENUMERATE_FOURTY, + ENUMERATE_FIFTY, + ENUMERATE_SIXTY, + ENUMERATE_SEVENTY, + ENUMERATE_EIGHTY, + ENUMERATE_NINETY, +}; + +static const NUMBER_SPEECH_DESC probe_numbers_english = +{ + 5, /* NumDigits */ + { + { /* 1000-999999 */ + 1000, /* Divider */ + 0, /* Subtrahend */ + NULL, /* StrDigits - recurse */ + NULL, /* Names - not used */ + ENUMERATE_THOUSAND /* CommonIndex */ + }, + { /* 100-999 */ + 100, /* Divider */ + 0, /* Subtrahend */ + probe_digit_names, /* StrDigits */ + NULL, /* Names - not used */ + ENUMERATE_HUNDRED /* CommonIndex */ + }, + { /* 20-99 */ + 10, /* Divider */ + 0, /* Subtrahend */ + probe_tens_names, /* StrDigits */ + NULL, /* Names - not used */ + 0 /* CommonIndex - not used */ + }, + { /* 10-19 */ + 1, /* Divider */ + 10, /* Subtrahend */ + probe_teen_names, /* StrDigits */ + NULL, /* Names - not used */ + 0 /* CommonIndex - not used */ + }, + { /* 0-9 */ + 1, /* Divider */ + 0, /* Subtrahend */ + probe_digit_names, /* StrDigits */ + NULL, /* Names - not used */ + 0 /* CommonIndex - not used */ + } + } +}; + static RESPONSE_REF threat, something_wrong, we_are_us, @@ -124,6 +211,19 @@ bye; static void +sayCoord (int coord) +{ + int ac; + + ac = abs (coord); + + NPCPhrase_splice (coord < 0 ? COORD_MINUS : COORD_PLUS); + NPCNumber (ac / 10, "%03d"); + NPCPhrase_splice (COORD_POINT); + NPCNumber (ac % 10, NULL); +} + +static void CombatIsInevitable (RESPONSE_REF R) { if (R == 0) @@ -266,13 +366,6 @@ else if (PLAYER_SAID (R, we_are_us)) { NumVisits = GET_GAME_STATE (SLYLANDRO_PROBE_ID); - if (NumVisits == 3 && !optSubtitles) - { - /* If playing without subtitles, don't use the - * last item in the conversation tree, which mentions - * coordinates which can't be spoken. */ - NumVisits--; - } switch (NumVisits++) { case 0: @@ -286,9 +379,16 @@ break; case 3: { + SIZE dx, dy; + + // Probe's coordinate system is {-Y,X} relative to B Corvi + dx = LOGX_TO_UNIVERSE (GLOBAL_SIS (log_x)) - 333; + dy = 9812 - LOGY_TO_UNIVERSE (GLOBAL_SIS (log_y)); + NPCPhrase (THIS_IS_PROBE_40); - NPCPhrase (THIS_IS_PROBE_41); - NPCPhrase (GLOBAL_PLAYER_LOCATION); + sayCoord (dy); + NPCPhrase_splice (THIS_IS_PROBE_41); + sayCoord (dx); NPCPhrase (THIS_IS_PROBE_42); --NumVisits; Modified: trunk/sc2/src/uqm/comm/slyland/strings.h =================================================================== --- trunk/sc2/src/uqm/comm/slyland/strings.h 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/src/uqm/comm/slyland/strings.h 2011-05-15 20:45:07 UTC (rev 3610) @@ -75,6 +75,39 @@ HOSTILE, DESTRUCT_SEQUENCE, destruct_code, + COORD_PLUS, + COORD_MINUS, + COORD_POINT, + ENUMERATE_HUNDRED, + ENUMERATE_THOUSAND, + ENUMERATE_ZERO, + ENUMERATE_ONE, + ENUMERATE_TWO, + ENUMERATE_THREE, + ENUMERATE_FOUR, + ENUMERATE_FIVE, + ENUMERATE_SIX, + ENUMERATE_SEVEN, + ENUMERATE_EIGHT, + ENUMERATE_NINE, + ENUMERATE_TEN, + ENUMERATE_ELEVEN, + ENUMERATE_TWELVE, + ENUMERATE_THIRTEEN, + ENUMERATE_FOURTEEN, + ENUMERATE_FIFTEEN, + ENUMERATE_SIXTEEN, + ENUMERATE_SEVENTEEN, + ENUMERATE_EIGHTEEN, + ENUMERATE_NINETEEN, + ENUMERATE_TWENTY, + ENUMERATE_THIRTY, + ENUMERATE_FOURTY, + ENUMERATE_FIFTY, + ENUMERATE_SIXTY, + ENUMERATE_SEVENTY, + ENUMERATE_EIGHTY, + ENUMERATE_NINETY, }; #endif /* _STRINGS_H */ Modified: trunk/sc2/src/uqm/commglue.c =================================================================== --- trunk/sc2/src/uqm/commglue.c 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/src/uqm/commglue.c 2011-05-15 20:45:07 UTC (rev 3610) @@ -26,12 +26,12 @@ #include <assert.h> #include "libs/log.h" -int NPCNumberPhrase (int number, UNICODE **ptrack); +static int NPCNumberPhrase (int number, const char *fmt, UNICODE **ptrack); void NPCPhrase_cb (int index, TFB_TrackCB cb) { - UNICODE *pStr, numbuf[400]; + UNICODE *pStr, buf[400]; void *pClip, *pTimeStamp; switch (index) @@ -46,54 +46,25 @@ pClip = 0; pTimeStamp = 0; break; - case GLOBAL_PLAYER_LOCATION: - { - SIZE dx, dy; - COUNT adx, ady; - - dx = LOGX_TO_UNIVERSE (GLOBAL_SIS (log_x)) - 333; - adx = dx >= 0 ? dx : -dx; - dy = 9812 - LOGY_TO_UNIVERSE (GLOBAL_SIS (log_y)); - ady = dy >= 0 ? dy : -dy; - sprintf (numbuf, - "%+04d.%01u,%+04d.%01u", - (SIZE)(dy / 10), (COUNT)(ady % 10), - (SIZE)(dx / 10), (COUNT)(adx % 10)); - pStr = numbuf; - pClip = 0; - pTimeStamp = 0; - break; - } case 0: { return; } default: if (index < 0) - { - if (index > UNREASONABLE_NUMBER) - { - if (CommData.AlienNumberSpeech) - { - NPCNumberPhrase (-index, NULL); - return; - } - sprintf (numbuf, "%d", -index); - } - else - { - COUNT i; - STRING S; + { // One of the alliance name variants + COUNT i; + STRING S; - index -= GLOBAL_ALLIANCE_NAME; + index -= GLOBAL_ALLIANCE_NAME; - i = GET_GAME_STATE (NEW_ALLIANCE_NAME); - S = SetAbsStringTableIndex (CommData.ConversationPhrases, (index - 1) + i); - strcpy (numbuf, (UNICODE *)GetStringAddress (S)); - if (i == 3) - strcat (numbuf, GLOBAL_SIS (CommanderName)); - } - pStr = numbuf; + i = GET_GAME_STATE (NEW_ALLIANCE_NAME); + S = SetAbsStringTableIndex (CommData.ConversationPhrases, (index - 1) + i); + strcpy (buf, (UNICODE *)GetStringAddress (S)); + if (i == 3) + strcat (buf, GLOBAL_SIS (CommanderName)); + + pStr = buf; pClip = 0; pTimeStamp = 0; } @@ -115,9 +86,57 @@ SpliceTrack (pClip, pStr, pTimeStamp, cb); } -int -NPCNumberPhrase (int number, UNICODE **ptrack) +// Special case variant: prevents page breaks. +void +NPCPhrase_splice (int index) { + UNICODE *pStr; + void *pClip; + + assert (index >= 0); + if (index == 0) + return; + + pStr = (UNICODE *)GetStringAddress ( + SetAbsStringTableIndex (CommData.ConversationPhrases, index - 1)); + pClip = GetStringSoundClip ( + SetAbsStringTableIndex (CommData.ConversationPhrases, index - 1)); + + if (!pClip) + { // Just appending some text + SpliceTrack (NULL, pStr, NULL, NULL); + } + else + { // Splicing in some voice + UNICODE *tracks[] = {NULL, NULL}; + + tracks[0] = pClip; + SpliceMultiTrack (tracks, pStr); + } +} + +void +NPCNumber (int number, const char *fmt) +{ + UNICODE buf[32]; + + if (!fmt) + fmt = "%d"; + + if (CommData.AlienNumberSpeech) + { + NPCNumberPhrase (number, fmt, NULL); + return; + } + + // just splice in the subtitle text + snprintf (buf, sizeof buf, fmt, number); + SpliceTrack (NULL, buf, NULL, NULL); +} + +static int +NPCNumberPhrase (int number, const char *fmt, UNICODE **ptrack) +{ #define MAX_NUMBER_TRACKS 20 NUMBER_SPEECH speech = CommData.AlienNumberSpeech; COUNT i; @@ -125,6 +144,7 @@ int toplevel = 0; UNICODE *TrackNames[MAX_NUMBER_TRACKS]; UNICODE numbuf[60]; + const SPEECH_DIGIT* dig = NULL; if (!speech) return 0; @@ -132,15 +152,17 @@ if (!ptrack) { toplevel = 1; - sprintf (numbuf, "%d", number); + if (!fmt) + fmt = "%d"; + sprintf (numbuf, fmt, number); ptrack = TrackNames; } for (i = 0; i < speech->NumDigits; ++i) { - SPEECH_DIGIT* dig = speech->Digits + i; int quot; + dig = speech->Digits + i; quot = number / dig->Divider; if (quot == 0) @@ -166,7 +188,7 @@ } else { - int ctracks = NPCNumberPhrase (quot, ptrack); + int ctracks = NPCNumberPhrase (quot, NULL, ptrack); ptrack += ctracks; queued += ctracks; } @@ -181,9 +203,7 @@ { *ptrack++ = GetStringSoundClip ( SetAbsStringTableIndex ( - CommData.ConversationPhrases, - (COUNT) (name->StrIndex - 1) - )); + CommData.ConversationPhrases, name->StrIndex - 1)); queued++; break; } @@ -192,9 +212,7 @@ else if (dig->CommonNameIndex != 0) { *ptrack++ = GetStringSoundClip (SetAbsStringTableIndex ( - CommData.ConversationPhrases, - (COUNT) (dig->CommonNameIndex - 1) - )); + CommData.ConversationPhrases, dig->CommonNameIndex - 1)); queued++; } @@ -205,11 +223,9 @@ { if (queued == 0) { // nothing queued, say "zero" + assert (number == 0); *ptrack++ = GetStringSoundClip (SetAbsStringTableIndex ( - CommData.ConversationPhrases, - speech->Digits[speech->NumDigits - 1].StrDigits[0] - )); - + CommData.ConversationPhrases, dig->StrDigits[number] - 1)); } *ptrack++ = NULL; // term Modified: trunk/sc2/src/uqm/commglue.h =================================================================== --- trunk/sc2/src/uqm/commglue.h 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/src/uqm/commglue.h 2011-05-15 20:45:07 UTC (rev 3610) @@ -74,10 +74,7 @@ { GLOBAL_PLAYER_NAME = -1000000, GLOBAL_SHIP_NAME, - GLOBAL_PLAYER_LOCATION, - GLOBAL_ALLIANCE_NAME, - UNREASONABLE_NUMBER = GLOBAL_ALLIANCE_NAME + 1000, }; typedef COUNT RESPONSE_REF; @@ -90,6 +87,8 @@ extern void NPCPhrase_cb (int index, TFB_TrackCB cb); #define NPCPhrase(index) NPCPhrase_cb ((index), NULL) +extern void NPCPhrase_splice (int index); +extern void NPCNumber (int number, const char *fmt); #define ALLIANCE_NAME_BUFSIZE 256 extern void GetAllianceName (UNICODE *buf, RESPONSE_REF name_1); Modified: trunk/sc2/src/uqm/globdata.h =================================================================== --- trunk/sc2/src/uqm/globdata.h 2011-05-14 17:27:36 UTC (rev 3609) +++ trunk/sc2/src/uqm/globdata.h 2011-05-15 20:45:07 UTC (rev 3610) @@ -82,7 +82,7 @@ // 0-9, 10-19, ..20-90, ..100-900, etc. SPEECH_DIGIT Digits[MAX_SPEECH_DIGITS]; } NUMBER_SPEECH_DESC; -typedef NUMBER_SPEECH_DESC *NUMBER_SPEECH; +typedef const NUMBER_SPEECH_DESC *NUMBER_SPEECH; typedef DWORD LDAS_FLAGS; #define LDASF_NONE ((LDAS_FLAGS) 0 ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |