This is a "mini Mod-Pack" for Civilization: Call to Power
I wrote this one because I was getting SO annoyed by CtP telling me all the time my production queue was empty but NOT what has been built in that city!
So, after installing this Mod, you will finally GET this essential piece of information (wonder why the "cracks over at Activision couldn't fix that themselves...).
What is changed?
You will still get that hammer symbol informing you that the production queue is empty - I could have erased that, but it's quite useful, really, if you happen to forget setting production in a city (this icon keeps reappearing each turn).
Additionally, you will see another icon, a blue box with a question mark (normally used in the tutorial only). When clicking this box, you are informed on WHAT has been built WHERE, and exactly as with the normal hammer icon, you have the option to directly go to that city's production.
Furthermore, a direct link to the Great Library is in this message box (just in case you forgot what that thing you just built is for).
Version 1.01:
Replaced the capital letters of the building name by color coded versions (thx, Mr Ogre)
After testing, I found that I normally don't use the hammer symbol any more at all, because the new one is simply better for keeping track of one's cities' development.
How to install:
First, make backups of the following two files (you never know!):
YOUR_PATH_TO_CTP/ctp_data/default/gamedata/script.slc
and
YOUR_PATH_TO_CTP/ctp_data/english/gamedata/info_str.txt
It should be noted, too, that you might get error messages (although the game keeps on running) if you continue games which were saved before applying this mod.
Now, copy the following lines to the clipboard:
Code:
// ---------------- start copying here ---------------- // trigger 'DOM_T_Building_Built' when (IsHumanPlayer(g.player) && (building.built >= 0) && (city.owner == g.player)) { Message(g.player, 'DOM_M_Building_Built'); } messagebox 'DOM_M_Building_Built' { Title(ID_DOM_TITLE_CITY_BUILDING_BUILT); if (building.built == 0) {Text(ID_DOM_BUILDING_BUILT_Granary);} if (building.built == 1) {Text(ID_DOM_BUILDING_BUILT_Capitol);} if (building.built == 2) {Text(ID_DOM_BUILDING_BUILT_City_Wall);} if (building.built == 3) {Text(ID_DOM_BUILDING_BUILT_Temple);} if (building.built == 4) {Text(ID_DOM_BUILDING_BUILT_Courthouse);} if (building.built == 5) {Text(ID_DOM_BUILDING_BUILT_Publishing_House);} if (building.built == 6) {Text(ID_DOM_BUILDING_BUILT_Marketplace);} if (building.built == 7) {Text(ID_DOM_BUILDING_BUILT_Academy);} if (building.built == 8) {Text(ID_DOM_BUILDING_BUILT_Theatre);} if (building.built == 9) {Text(ID_DOM_BUILDING_BUILT_Aqueduct);} if (building.built == 10) {Text(ID_DOM_BUILDING_BUILT_Coliseum);} if (building.built == 11) {Text(ID_DOM_BUILDING_BUILT_Bank);} if (building.built == 12) {Text(ID_DOM_BUILDING_BUILT_University);} if (building.built == 13) {Text(ID_DOM_BUILDING_BUILT_Hospital);} if (building.built == 14) {Text(ID_DOM_BUILDING_BUILT_Mill);} if (building.built == 15) {Text(ID_DOM_BUILDING_BUILT_Cathedral);} if (building.built == 16) {Text(ID_DOM_BUILDING_BUILT_City_Clock);} if (building.built == 17) {Text(ID_DOM_BUILDING_BUILT_Factory);} if (building.built == 18) {Text(ID_DOM_BUILDING_BUILT_Oil_Refinery);} if (building.built == 19) {Text(ID_DOM_BUILDING_BUILT_Movie_Theatre);} if (building.built == 20) {Text(ID_DOM_BUILDING_BUILT_Airport);} if (building.built == 21) {Text(ID_DOM_BUILDING_BUILT_Drug_Store);} if (building.built == 22) {Text(ID_DOM_BUILDING_BUILT_Nuclear_Plant);} if (building.built == 23) {Text(ID_DOM_BUILDING_BUILT_Recycling_Plant);} if (building.built == 24) {Text(ID_DOM_BUILDING_BUILT_Television);} if (building.built == 25) {Text(ID_DOM_BUILDING_BUILT_Computer_Centre);} if (building.built == 26) {Text(ID_DOM_BUILDING_BUILT_SDI);} if (building.built == 27) {Text(ID_DOM_BUILDING_BUILT_Robotic_Plant );} if (building.built == 28) {Text(ID_DOM_BUILDING_BUILT_Security_Monitor);} if (building.built == 29) {Text(ID_DOM_BUILDING_BUILT_Micro_Defense);} if (building.built == 30) {Text(ID_DOM_BUILDING_BUILT_Aqua_Filter);} if (building.built == 31) {Text(ID_DOM_BUILDING_BUILT_Eco_Transit);} if (building.built == 32) {Text(ID_DOM_BUILDING_BUILT_Incubation_Center);} if (building.built == 33) {Text(ID_DOM_BUILDING_BUILT_Rail_Launcher);} if (building.built == 34) {Text(ID_DOM_BUILDING_BUILT_Arcologies);} if (building.built == 35) {Text(ID_DOM_BUILDING_BUILT_Beef_Vat);} if (building.built == 36) {Text(ID_DOM_BUILDING_BUILT_House_of_Freezing);} if (building.built == 37) {Text(ID_DOM_BUILDING_BUILT_Mind_Controller);} if (building.built == 38) {Text(ID_DOM_BUILDING_BUILT_Forcefield);} if (building.built == 39) {Text(ID_DOM_BUILDING_BUILT_Nanite_Factory);} if (building.built == 40) {Text(ID_DOM_BUILDING_BUILT_Fusion_Plant);} if (building.built == 41) {Text(ID_DOM_BUILDING_BUILT_Bio_Memory_Chip);} if (building.built == 42) {Text(ID_DOM_BUILDING_BUILT_Body_Exchange);} Button(ID_BUTTON_LIBRARY) { LibraryBuilding(building.built); } MessageType("TUTORIAL"); EyePoint(city.1.location, city.owner, 'OpenProductionCallback'); } // ----------------- stop copying here ---------------- //
and paste the text from the clipboard below the last line. Save - done.
Last step: Copy the following lines to the clipboard, too:
Code:
// ---------------- start copying here ---------------- // DOM_TITLE_CITY_BUILDING_BUILT "Building completed" DOM_BUILDING_BUILT_CITY "???"
DOM_BUILDING_BUILT_Granary "We have built a <c:255,0,0>granary<e> in [city.1.name]!" DOM_BUILDING_BUILT_Capitol "The capital has now moved to [city.1.name]!" DOM_BUILDING_BUILT_City_Wall "[city.1.name] is now protected by <c:255,0,0>city walls<e>!" DOM_BUILDING_BUILT_Temple "[city.1.name] now has it's own <c:255,0,0>temple<e>!" DOM_BUILDING_BUILT_Courthouse "A <c:255,0,0>courthouse<e> was built in [city.1.name]!" DOM_BUILDING_BUILT_Publishing_House "A <c:255,0,0>publishing house<e> was built in [city.1.name] !" DOM_BUILDING_BUILT_Marketplace "[city.1.name]'s traders meet in it's new <c:255,0,0>marketplace<e>!" DOM_BUILDING_BUILT_Academy "We built an <c:255,0,0>academy<e> in [city.1.name] for our scientists!" DOM_BUILDING_BUILT_Theatre "Splendid leader, we thank you for the newly built <c:255,0,0>theatre<e> in [city.1.name]!" DOM_BUILDING_BUILT_Aqueduct "[city.1.name] just completed it's <c:255,0,0>aqueduct<e>!" DOM_BUILDING_BUILT_Coliseum "[city.1.name] celebrates the completion of it's <c:255,0,0>coliseum<e>!" DOM_BUILDING_BUILT_Bank "The new <c:255,0,0>bank<e> in [city.1.name] lets business flourish!" DOM_BUILDING_BUILT_University "[city.1.name]'s new <c:255,0,0>university<e> will add to your fame!" DOM_BUILDING_BUILT_Hospital "Thanks to the new <c:255,0,0>hospital<e>, the citizens of [city.1.name] rejoice!" DOM_BUILDING_BUILT_Mill "Due to the new <c:255,0,0>mill<e>, [city.1.name]'s production keeps growing!" DOM_BUILDING_BUILT_Cathedral "Pilgrims from everywhere gape in awe at [city.1.name]'s new <c:255,0,0>cathedral<e>!" DOM_BUILDING_BUILT_City_Clock "Business is good in [city.1.name] thanks to the new <c:255,0,0>city clock<e>!" DOM_BUILDING_BUILT_Factory "Increased productivity in [city.1.name] due to the newly built <c:255,0,0>factory<e>!" DOM_BUILDING_BUILT_Oil_Refinery "More production - and more pollution - in [city.1.name] thanks to the new <c:255,0,0>oil refinery<e>!" DOM_BUILDING_BUILT_Movie_Theatre "The new <c:255,0,0>movie theatre<e> in [city.1.name] attracts lots of viewers!" DOM_BUILDING_BUILT_Airport "[city.1.name] has a new <c:255,0,0>airport<e>!" DOM_BUILDING_BUILT_Drug_Store "In [city.1.name], a <c:255,0,0>drugstore<e> has been built!" DOM_BUILDING_BUILT_Nuclear_Plant "The power of the atom is utilized in [city.1.name]'s new <c:255,0,0>nuclear plant<e>!" DOM_BUILDING_BUILT_Recycling_Plant "The new <c:255,0,0>recycling plant<e> in [city.1.name] helps keeping the environment clean!" DOM_BUILDING_BUILT_Television "On the new <c:255,0,0>television<e> in [city.1.name], most people watch 'Sid Meier's Civilization'!" DOM_BUILDING_BUILT_Computer_Centre "Our scientists in [city.1.name] gain much knowledge using the new <c:255,0,0>computer centre<e>!" DOM_BUILDING_BUILT_SDI "Star Wars becomes reality in [city.1.name] with the completion of <c:255,0,0>SDI<e>!" DOM_BUILDING_BUILT_Robotic_Plant "Fantastic production in [city.1.name] - <c:255,0,0>robotic plant<e> built!" DOM_BUILDING_BUILT_Security_Monitor "1984 in [city.1.name] - a <c:255,0,0>security monitor<e> has been built!" DOM_BUILDING_BUILT_Micro_Defense "The citizens in [city.1.name] are now protected by <c:255,0,0>micro defense<e>!" DOM_BUILDING_BUILT_Aqua_Filter "The freshly built <c:255,0,0>aqua-filter<e> in [city.1.name] eases the growth of the city!" DOM_BUILDING_BUILT_Eco_Transit "Pollution is reduced in [city.1.name] by the new <c:255,0,0>eco-transit<e>!" DOM_BUILDING_BUILT_Incubation_Center "The new <c:255,0,0>incubation centre<e> in [city.1.name] leaves women their freedom!" DOM_BUILDING_BUILT_Rail_Launcher "In [city.1.name], a <c:255,0,0>rail launcher<e> has been built!" DOM_BUILDING_BUILT_Arcologies "More space available in [city.1.name] due to the new <c:255,0,0>arcologies<e>!" DOM_BUILDING_BUILT_Beef_Vat "Food for everyone - in [city.1.name], the new <c:255,0,0>beef vats<e> make this reality!" DOM_BUILDING_BUILT_House_of_Freezing "Gold, gold, gold! The <c:255,0,0>house of freezing<e> in [city.1.name] is completed!" DOM_BUILDING_BUILT_Mind_Controller "Unhappiness is no more in [city.1.name], where a <c:255,0,0>mind controller<e> has been completed!" DOM_BUILDING_BUILT_Forcefield "[city.1.name] is now protected by a <c:255,0,0>force field<e>!" DOM_BUILDING_BUILT_Nanite_Factory "Hey, rushbuyers - wanna invest some $$$ in [city.1.name]'s new <c:255,0,0>nanite factory<e>?" DOM_BUILDING_BUILT_Fusion_Plant "The <c:255,0,0>fusion plant<e> in [city.1.name] is completed!" DOM_BUILDING_BUILT_Bio_Memory_Chip "Knowledge and CIV 47 - all available in [city.1.name]'s new <c:255,0,0>bio memory chip<e>!" DOM_BUILDING_BUILT_Body_Exchange "Come to [city.1.name] and get your body done by the new <c:255,0,0>body exchange<e>!" // ----------------- stop copying here ---------------- //
A word of warning, though: I have tested this for quite a while, but NOT with every single building - the worst thing that might happen, however, is some garbled text.
A bit more of a problem is what happens if any OTHER mod pack is installed - thanks to Activision's GREAT (?!?) concept of SLIC, there is NO WAY of having pointers to the strings other than directly addressing them, so if someone changes e.g. the name of a building in his mod, the old name would still be used in this new message box. Thank you, Activision!
For questions, comments and (hopefully!) improvements, please send an email to me,
Dominique Toussaint
toussaint [at] qed [dot] de
P.S.: The usual disclaimer, you know, no warranty and all that.
P.P.S.: This is for use with the US version of CtP - for other versions, look for the file info_str.txt in your language folder (e.g. "german/gamedata") and paste it there - happy translating!
A note by Joe Rumsey(CTP Programmer)
When adding strings, you should probably make a brand new file rather than adding to info_str.txt, and import it from strings.txt. Any number of files can be imported, so if you do it that way you only risk losing one line from strings.txt if the user overwrites it later. You can also use #include in .slc files the same way. (Note that you can use a #include in any .slc file, but can only import string files from strings.txt itself)
We do intend to make "mod-packs" somewhat easier for the next patch. (E.G. you will certainly be able to install CD's mod-pack without overwriting the standard data files.) I'm not certain what, if anything, we're going to do for global mods like this though. (global meaning you'd want them to apply to all scenarios and mods) But I'll think about it some more.