• We are currently performing site maintenance, parts of civfanatics are currently offline, but will come back online in the coming days. For more updates please see here.

Advanced Civ

ofc,
i check your updates and forum and fanatics, everyday :)

edit
ok, read it through, this is a massive update huh.
about BULL, i remember, long ago, that BULL parts, wasnt multiplayer compatible.
you did say you have done some auto ai tests in multiplayer game, did you see any issues?
 
Last edited:
about BULL, i remember, long ago, that BULL parts, wasnt multiplayer compatible.
you did say you have done some auto ai tests in multiplayer game, did you see any issues?
BULL's pre-chop option is probably not multiplayer-safe, but my implementation (hold Ctrl while clicking the chop button) should be fine; I've tested that it bit. I wasn't sure if deal cancellation through the "Resources" tab would work in multiplayer, but that also worked fine in my tests. I've really only merged a couple of things from BULL (so far), and extra hover text doesn't easily to lead to OOS issues. If you're really going to try a multiplayer match, I would be interested to know whether the CPUs involved were Intel or AMD and if it worked at all – and I hope you and your opponent won't be too vexed if it doesn't.

There is at least one serious bug that I've only found and fixed yesterday, incidentally in my code for the pre-chop option: Automated units ignore orders until explicitly de-automated. Not serious enough for a hotfix I think; I'm going to wait and see if more issues crop up. But here is a DLL that should fix this problem: 18 civs / 48 civs

Unrelated to the above: I've updated my collection of easily merged bugfixes on page 1. Mainly just the broken "Simple Unit Selection" option in K-Mod this time.
 
Last edited:
Changing the topic a bit again :crazyeye:, but I just had to mention that I'm amazed by the level of detail (and your audacity!) in your proposals concerning "future gameplay changes".
That's very kind of you to say.
In fact, you've inspired me to collect my own thoughts on how BTS could be improved and make them available through google docs (need to edit it before making it public though). I've mentioned before that I have my own private overhaul (K-mod based) mod and I was preparing to rebase it on top of AdvCiv. However, after seeing your proposals, I now realize that our work would overlap quite a bit so it would make sense for us to thrash out some ideas together so that we could share some of the effort and hopefully avoid silly mistakes.
Working title "koddy", I remember now. I don't see myself implementing a lot of balance/historicity changes, say, this year (also) for lack of time, but I'd gladly read and discuss whatever documentation you have.
 
hi,
oh yeah i now remember the pre chop . ok great to know you took care of it.

where can i see the fix that is inside the 18/48 dll? maybe ill merge it .

also the collection of bugdixes - are they implemented on your code already?
edit: oh silly qeustion

its great that you keep developing on kmod and improving it! thank you.
 
Last edited:
Here's the commit. It's just one boolean that I had somehow toggled accidentally. The DLL I posted also contains a couple of other recent changes (commit history), but these are complex enough to contain new errors.
 
Just found and fixed another noteworthy error in v0.95: Python crash when entering the Settings tab (Victory screen) – always. I've introduced that bug when I made a pretty pointless change shortly before the release. :cringe: Will have to upload a v0.95b tomorrow.
 
what does the g stands for?
I've set g = gc.getGame() to make the code more compact. That showGameSettingsScreen function calls a lot of CvGame functions. Like I said: pretty pointless. Though, now that I've started a game with the release version, it seems that the error is barely noticeable. The active tab on the Victory screen just isn't properly highlighted. (I thought the whole screen would be unreadable.) So I'll wait for a bit longer to see if more errors need to be fixed.
 
ok, thanks for the info.

ill share some of my thoughts.
my doto mod, includes Kekmod for now.
i merged it a while back. but i really like your work also.
now, im puzzled with which build to go :)
yours or keks.
maybe i can mix and match some parts.

anyway ill wait on your fix , if you plan to upload it soon.
 
ill share some of my thoughts.
my doto mod, includes Kekmod for now.
i merged it a while back. but i really like your work also.
now, im puzzled with which build to go :)
yours or keks.
AdvCiv has the changes to AI war and diplomacy, which you said you like, and surely a larger volume of quality-of-life changes than Kek-Mod. However, if multiplayer or team games are important to you, then Kek-Mod has the benefit of an active group of players (= testers) and improvements for PitBoss and PBEM, which I've never even tried with AdvCiv. Whether AdvCiv supports regular multiplayer is uncertain, but you could test that before merging with DotO. Of course, for multiplayer, my AI changes aren't going to be very valuable either.

How did you go about merging DotO and Kek-Mod I wonder? That sounds like a big effort already. With AdvCiv, you'd certainly have to merge the DotO DLL changes (e.g. the new tags) into AdvCiv and not vice versa, and there will probably be some conflicts; e.g. I don't imagine that the UI changes in AdvCiv will simply work in a mod based on PlatyUI. Keeping the merged DLL up to date with AdvCiv could also be difficult (though of course not necessary). E.g. a few days ago, I've changed #include statements (partly based on Nightinggale's guide) in more than a hundred files. You'd have to use Git or whatever tool to merge something like that. Well, I probably won't do a lot of these noisy refactoring changes anymore.
maybe i can mix and match some parts.
You could always browse through my changelog (manual) and merge changes selectively (by searching the AdvCiv codebase for all occurrences of the respective change id). Perhaps even the UWAI component, which is mostly contained in new classes.
anyway ill wait on your fix , if you plan to upload it soon.
Hopefully it'll be just the DLL and CvVictoryScreen.py that I've already posted. (Hopefully ...)
 
haya,

thanks for the answer back first of all.

well, my doto code, is kmod + various additions, when i merged in kek, it wansnt that hard, since, all is based on kmod.
the mods i added over the years, are mostly tags additions and some new mechanics, that does not interfere with kmod.
here and there, there are some conflicts, which i solved to my needs as far as i can tell.

merging adv should be tough also, would be easier indeed to merge to advciv, i havnt made a merge trial just yet, maybe long ago in one of your earlier versions.
im very interested in the AI and bug stuff.

i know, i was lazy git/svn through the years, only recently i started to git at my work place.

as for the UI, i switched back to kmod's with a mix and match from platy.
the changes in adv to ui and even game-play, i need to examine.

strange i havent touched civ for a long time, seeing you and kek's keep going, makes me wanna merge :)
keep being a civfanatic my friend.
 
may i ask you for some help in some conflicts ? i didnt see mush just a few rows.
Sure, please do. A relatively minor issue that comes to mind is that the AI could become confused about areas cordoned off by peaks because AdvCiv treats such areas as separate continents and I understand that DotO allows certain (military) units to traverse peaks.
as for the UI, i switched back to kmod's with a mix and match from platy.
I'd like to do that too – integrate Platy's Religion and Corporation Advisors as BUG options and adopt some layout changes here and there (e.g. widescreen). But as I'm not so good with Python, that's on the backburner.
 
cool.

peaks, yeah theres a mountain mod integrated, i havnt seen any code conflict on that matter yet,
but i merge in first the files with the least differences .
after that ill do the more heavy files (cvcity, cvgame, cvglobals, cvcityai and such).
it will take me a while i think.

im learning python so, easier for me, i think...

:)

edit:
ok im going for this like you suggested, merging in adv and not the other way around.

ill drop issues i need you help as i go (i hope your fine with that , i dont want to burden you).

heres problem #1:
Spoiler :

cvcity.cpp line16251
you moved the initial pop to the bottom,
i have a component that limits city growth.

so -
this is the code line that i merged in -
Code:
int CvCity::initialPopulation() {

    return GC.getDefineINT("INITIAL_CITY_POPULATION") +
            GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation();
            GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation();
            /* Population Limit ModComp - Beginning : The new cities can't have a population level higher than the authorized limit */
            /changePopulation(GC.getDefineINT("INITIAL_CITY_POPULATION") + GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation());
            changePopulation(std::min((GC.getDefineINT("INITIAL_CITY_POPULATION") + GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation()), getPopulationLimit()));
            /* Population Limit ModComp - End */
}

the line :
changePopulation(std::min((GC.getDefineINT("INITIAL_CITY_POPULATION") + GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation()), getPopulationLimit()));
was changed from
changePopulation(GC.getDefineINT("INITIAL_CITY_POPULATION") + GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation());
and yours is :
GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation();

what would be the proper syntax with yours?
will this work:
Code:
// <advc.004b> See CvCity.h
int CvCity::initialPopulation() {
/* Population Limit ModComp - Beginning : The new cities can't have a population level higher than the authorized limit */        
    return std::min((GC.getDefineINT("INITIAL_CITY_POPULATION") +
            GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation()), getPopulationLimit()));
/* Population Limit ModComp - End */
}




bug?

why did you remove - GAMEOPTION_COMPLETE_KILLS? was this intended?

hi again,
i did a first draft of a merge, just a few things to check,
i wanted to check the compile but i got an error - do you know why?
 

Attachments

  • kk.jpeg
    kk.jpeg
    66.2 KB · Views: 161
Last edited:
well,
i gave up,
although i merged in all of the code segments into advciv,
i dont have the knowledge to adjust the various codes to your new mechanics.
i was able to adjust some, but , got stuck.
at the moment - on widgetdata, with pmissionplot .

if you want i can upload the sdk files...
i sure do wanna use you mod as a basis permanently :)
 
ill drop issues i need you help as i go (i hope your fine with that , i dont want to burden you).
I've only seen your edits (all from yesterday?) now that you've bumped the thread.
if you want i can upload the sdk files...
i sure do wanna use you mod as a basis permanently :)
I probably can't just sort everything out, but I'd certainly take a look. The issues you've listed so far might be easy to resolve:
Spoiler :
CvCity::initialPopulation – Your code looks good assuming that CvCity::getPopulationLimit is a function that you've merged. (And there's one closing parenthesis too many.)

GAMEOPTION_COMPLETE_KILLS: Removed intentionally. I don't think the BtS AI can really handle situations when a civ has a large army but no cities left. I didn't want to have to worry about that when writing my own AI code. And that option seems like a bit of a gimmick to me anyway (as far as I can tell, civs with Spies can't be killed at all). I could've just set the option to hidden instead of removing it, but I also wanted to add a new option, which is tricky to do without breaking savegame compatibility, and replacing COMPLETE_KILLS made things easier.

nmake error: "cannot find the path specified... \bin\cl.exe"
That sounds like the TOOLKIT variable isn't set correctly. I'm setting it to
TOOLKIT=C:\Program Files (x86)\Microsoft Visual C++ Toolkit 2003
in Makefile.settings for example.

pMissionPlot: That must be in CvDLLWidgetData:: parseActionHelp_Mission. That's code I've cut from CvDLLWidgetData:: parseActionHelp. I've changed the variable type from a CvPlot pointer to a reference called kMissionPlot.
 
hi,

yes, ive had some tome to work in the past two days...

thanks for the answers.

kMissionPlot -yes i saw it, but it gave me an error upon a pointer - kMissionPlot. >
i thought if i can use the kMissionPlot.blabla instead?

ill upload the files, you'll be able to see all my merges quite easily ( i use the excellent comparing merging tool - winmerge).

here are the list of components i have added,
most of them have very little code and very easy to merge,
the ones i had trouble with merging are marked with //normal or //hard below

Spoiler :

-Civic Infos - some more tags to civics
-building bonus yield - building that consumes bonus and outputs another
-sECRET TECHNOLOG - free tesh from tech
-Population Limit - limit population - changes from buildings and more (civ2 style) //hard
-cultural_golder age - golden age from excess culture
-UnbuildableBuildingDeletion - building that its preq (resources ) are gone - the building is deleted
-Terrain Health Modifiers - health from terrain and damage
-Specialists Enhancements - some civic tags and health and happiness from great people
-Maintenace Modifiers - extra maintenance tags //normal
-INFLUENCE_DRIVEN_WAR - culture spread from war
-JImprovementLimit - various tags for improvements //hard
-JCultureControl - culture range from improvements
-flag hover info - hover on civ banner/fkag
-BLOCADE_UNIT - zone of control
-larger fonts - extra size font files
-movable mountains - nuff said..
-requiresFlatlands - need flat terrain
-religion forbidden to civilization - as said
-Vicinity Bonus - need bonus in the vicinity of a city
-Unit Civic Prereq - preq for units of a civic
-City Size Prerequisite - preq size from units and buildings
-Project Help Tag - added info
-Tech Bonus - bonus from tech
-MaxStartEra - unit tags
-ObsoleteTech - tech obsolete units
-StateReligion - preq unit
-PrereqGameOption - preq game option for buildings and units
-NotGameOption - preq game option for buildings and units same as the above but opposite
-hated civs - attitude chane for specific civs
-FreshWater - fesh water from improvements-
-project civilization and free unit - unit from project and another thing

last bug i gave up on was on :

if (isCoastal(GC.getMIN_WATER_SIZE_FOR_OCEAN()))
{
iTempMaintenance *= std::max(0, (GET_PLAYER(eOwner).getCoastalDistanceMaintenanceModifier() + 100));
iTempMaintenance /= 100;

in cvcity.cpp - in this func -
int CvCity::calculateDistanceMaintenanceTimes100(CvPlot const& kCityPlot,
PlayerTypes eOwner, int iPopulation)


i really hope you can assist :)
 

Attachments

Last edited:
kMissionPlot -yes i saw it, but it gave me an error upon a pointer - kMissionPlot. >
i thought if i can use the kMissionPlot.blabla instead?
Yes, that's the idea. E.g. kMissionPlot.getTeam() instead of pMissionPlot->getTeam().
ill upload the files, you'll be able to see all my merges quite easily ( i use the excellent comparing merging tool - winmerge).
I'll take a look and see what the compiler says.
here are the list of components i have added,
most of them have very little code and very easy to merge,
the ones i had trouble with merging are marked with //normal or //hard below
So only the Maintenace Modifiers (normal), Population Limit (hard) and ImprovementLimit (hard) are troublesome – that sounds encouraging.
 
i have 0 c++ knowledge,
i know python and jscript...
so i dont know what everything means.

kMissionPlot.getTeam(), ok, so no need for a pointer you say, ok.


yes, i hope these are the only problematic,
all of them, do have plenty of parts, the problems i saw were in small precent of the total code for that competent ,
the compile will say.
the pop limit, theres a whole part - avoid growth that kmod removed, i brought that part back i dont know if its bad or good or neither.


anyway, know that i deeply appreciate and of your assistance :)
 
Back
Top Bottom