Today on Apolyton POLYCAST #57 CIVCON '09 ANNOUNCED: AUGUST 7-9, 2009 TRI-LEAGUE #25 & #26 MODCAST #22 BTS TEAM D.G.: ENGAGE NOW
Apolyton Civilization Site Forums
main | civ4 | col | civrev | galciv2 | alt | civ3 | civ2 | ctp2 | smac | about | polycast
- Order Civilization IV: Colonization (Amazon US)/(UK) -
- Order Civilization: Revolution [360] (Amazon US)/(UK) | [PS3] (US)/(UK) | [DS] (US)/(UK) -
ApolytonPLUS | register | new posts | pm (-/-) | members
faq | news | civgroups (news) | hall of fame | downloads | upload | plus | store | search
Apolyton Civilization Site Forums : Powered by vBulletin version 2.0.3 Apolyton Civilization Site Forums > Call To Power > CtP2 Source Code Project > DESIGN/PROJECT: GovernmentsModified complete
Page: Print | Email | Subscribe | Report News       0 votes -  average
16.Nov: POLYCAST EPISODE 57: `GEEKING OUT`
11.Nov: MODCAST #22: `ADULT DIAPERS`
01.Nov: POLYCAST EPISODE 56: `RECORDING FOR POSTERITY`
CivGroups
CTP2 Source Code Project (77): Not a Member - Join

bottom of page
  GALACTIC CIVILIZATIONS $19.99 - CIV3 CONQUESTS $29.99 - CIV3 from $9.99 - SMAC+SMAX $19.99
Author
Thread   
Pages (2): [ 1   2   ]
< Last Thread     Next Thread > Post New Thread     Post A Reply
MrBaggins
CTP2 Source Code Project
King
May 1999
time: 09:09
04-02-2004 19:50
edit | quote
#1 | report |
DESIGN/PROJECT: GovernmentsModified complete Support Apolyton, buy GURPS/ Alpha Centauri


Intro

The GovernmentsModified concept was an idea to allow for flexibility in the structure of the text file databases (for units, buildings, etc.)

Specifically it was an idea that the syntax of these be extended to allow for modifications to the individual records, based on government... so for a particular City Improvement, say a Granary, you might have another modified record (of the same improvement) for the Tyranny government... maybe making it cheaper, perhaps.

Using this system, you could make Factories more productive, but more polluting under Communism, or Tanks more powerful under Fascism, all without any SLIC, additional identifiers, or code.

I altered the db creation code, lexer definitions, and the base template class to achieve this.

Caveat... one small issue remains... I was having issues with dynamic resizing (growth) of a pointerlist array, using an optimized algorithm. I used a workaround, since I was so close to completion, but it needs to be sorted to avoid a limited memory leak. Fixed.

Tracing code also needs to be removed. Fixed.

---

What is the syntax?

The following would be the standard defintion of the courthouse.

code:
IMPROVE_COURTHOUSE { DefaultIcon ICON_IMPROVE_COURTHOUSE Description DESCRIPTION_IMPROVE_COURTHOUSE EnableAdvance ADVANCE_JURISPRUDENCE ProductionCost 330 Upkeep 1 LowerCrime -0.1 }


If you wished to have a courthouse that operated slightly differently under monarchy you'd do the following:

code:
IMPROVE_COURTHOUSE { DefaultIcon ICON_IMPROVE_COURTHOUSE Description DESCRIPTION_IMPROVE_COURTHOUSE EnableAdvance ADVANCE_JURISPRUDENCE ProductionCost 330 Upkeep 1 LowerCrime -0.1 } IMPROVE_COURTHOUSE > GOVERNMENT_MONARCHY { DefaultIcon ICON_IMPROVE_COURTHOUSE Description DESCRIPTION_IMPROVE_COURTHOUSE EnableAdvance ADVANCE_JURISPRUDENCE ProductionCost 330 Upkeep 3 LowerCrime -0.3 HappyInc -1 }


You should note that this is a modification to an existing record. There must be an record with the same name to allow for a modified record.

The syntax using the '>' character allows for multiple government types, separated by commas.

It also allows for alpha-numeric (no space) descriptions, which are ignored for purposes of parsing... so
code:
IMPROVE_COURTHOUSE > DecreasedCrime_and_Happy_HarshGovs , GOVERNMENT_MONARCHY, GOVERNMENT_THEOCRACY {

is perfectly valid, and modifies the courthouse record, for the Monarchy and Theocracy govs. Invalid Governments are also ignored, at parsing.

There is an additional syntax that can be used within the record structure, that can be used instead of, or as well as, the above syntax...
code:
IMPROVE_COURTHOUSE { DefaultIcon ICON_IMPROVE_COURTHOUSE Description DESCRIPTION_IMPROVE_COURTHOUSE EnableAdvance ADVANCE_JURISPRUDENCE ProductionCost 330 Upkeep 1 LowerCrime -0.1 } IMPROVE_COURTHOUSE > Monarchy { DefaultIcon ICON_IMPROVE_COURTHOUSE Description DESCRIPTION_IMPROVE_COURTHOUSE EnableAdvance ADVANCE_JURISPRUDENCE GovernmentsModified GOVERNMENT_MONARCHY ProductionCost 330 Upkeep 3 LowerCrime -0.3 HappyInc -1 }

It has been mentioned that there are only 64 buildings and 64 wonders. This is actually unrelated to the parser, and has to do with their storage and use within the city data.

The GovernmentsModified system ignores this limitation for the modified records. You can still only have 65 buildings, but each of those buildings can have as many modified governments as you need. Essentially the system increases the number of buildings available.


There was a suggestion for another syntax suggested a while back, but from my investigations, its impossible given the current lex definitions, would require a pretty thorough rewrite of the parser, plus would be much more costly in terms of access... something I wanted to avoid... however if a bison/flex pro would like to take a shot...

---

Code access

This whole system is only half the issue. The database records are accessed via 2 member functions... Get and Access. Get returns a const record, Access the record.

While it would be nice to just rewrite the existing Get and Access functions to access the government subrecords, we don't have the context of what government is applicable to do that.

I therefore made two overloaded functions...

code:
template const T *CTPDatabase::Get(sint32 index,sint32 govIndex) and template T *CTPDatabase::Access(sint32 index,sint32 govIndex)


which work alongside the existing

code:
template const T *CTPDatabase::Get(sint32 index) and template T *CTPDatabase::Access(sint32 index)


Notice the extra govIndex parameter. These are overloaded functions, so the existing functions can still be used.

Work we (or maybe just I ) need to do

None of the existing record access in the code (1700 hundred instances of ->Get( and ->Access(, not all of which are applicable,) use the new method... so they need to be changed...

This, however, isn't complicated... just a lot of repetition.

Here's an example of a couple of changes, that I used to test that the system was working fine...

code:
Original (from CityData::CanBuildBuilding): const BuildingRecord* irec = g_theBuildingDB->Get(type); New: const BuildingRecord* irec = g_theBuildingDB->Get(type,g_player[m_owner]->GetGovernmentType()); and, from CityData::CanBuildUnit const UnitRecord *rec = g_theUnitDB->Get(type); becomes const UnitRecord *rec = g_theUnitDB->Get(type,g_player[m_owner]->GetGovernmentType());

Last edited by MrBaggins on 06-02-2004 at 20:07

J Bytheway
Call to Power PBEMCall to Power II Democracy GameCTP2 Source Code Project
Emperor
England
Jul 2001
time: 09:09
07-02-2004 22:28 | www
edit | quote
#2 | report |
Support Apolyton, buy Alpha Centauri


Good work .

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
21-02-2004 17:49 | www
edit | quote
#3 | report |
Suffering from ads?


I found a problem with memory leaks with this, for brevity just the SoundRecord but in fact they leak all.

-Martin

quote:

1089 8 8712 0x00454061 [void * __cdecl DebugMemory_GuardedBlockAlloc(char const *,int,struct MemoryHeapDescriptor *,int,bool,unsigned char,bool)+0x121] / 0x00455954 [DebugMemory_GuardedMalloc+0x34] / 0x00455c92 [void * __cdecl operator new(unsigned int)+0x22] / 0x006ebcfc [public: void __thiscall CTPDatabase::Add(class SoundRecord *)+0x33c] / 0x006eb696 [public: long __thiscall CTPDatabase::Parse(class DBLexer *)+0xa6] / 0x0045f3cc [public: long __thiscall CivApp::InitializeAppDB(class CivArchive &)+0xe6c] / 0x00462bf4 [public: long __thiscall CivApp::InitializeApp(struct HINSTANCE__ *,int)+0x314] / 0x0045c51a [int __stdcall CivWinMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int)+0x3aa] / 0x0045bb64 [WinMain@16+0x74] / 0x00addf83 [WinMainCRTStartup+0x1b3] / 0xbff8b560 [(kernel)+0x0] / public: void __thiscall CTPDatabase::Add(class SoundRecord *)

MrBaggins
CTP2 Source Code Project
King
May 1999
time: 09:09
21-02-2004 19:55
edit | quote
#4 | report |
Support Apolyton, buy Call to Power 2


Since I'm destructing every object thats created in the same code, along side the existing destructor code... either theres a problem with the destructor method I used in CTPDatabase, or the code doesn't destruct created DB objects properly to begin with.

Last edited by MrBaggins on 21-02-2004 at 20:10

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
30-04-2004 22:30 | www
edit | quote
#5 | report |
Enter the AD-FREE zone


Well I wonder what these lines should do in CTPDatabase.h, I commented them out without any problems.

code:
/* sint32* m_recordsModifiedLink; sint32 m_numRecordsModifiedLink; sint32 m_allocatedRecordsModifiedLinkSize; sint32* m_modList; sint32 m_numModList; sint32 m_allocatedListSize;*/


-Martin

The Big Mc
CTP2 Source Code Project
King
Of the universe / England
Oct 2001
time: 09:09
01-05-2004 08:12 | www
edit | quote
#6 | report |
Support Apolyton, buy Galactic Civilizations


Can’t wait to get this in a play test.

Solver
Civilization IV CreatorsAge of Nations TeamApolytoners Hall of FamePolyCast TeamBtS Tri-LeagueC4WDG Team Apolyton
Co-Administrator
Latvia, Riga
Sep 2000
time: 11:09
01-05-2004 11:01 | www
edit | quote
#7 | report |
Suffering from ads?




A great addition for the playtest builds.

Tamerlin
Call to Power II Democracy GameCTP2 Source Code Project
King
Toulouse (South-western France)
Apr 2002
time: 10:09
01-05-2004 12:26
edit | quote
#8 | report |
Browse Apolyton AD-FREE


That offers many new possibilities... changing your government will not become a simple decision, though it will be difficult to predict the effects if there are too many changes under each government type.

Anyway...

J Bytheway
Call to Power PBEMCall to Power II Democracy GameCTP2 Source Code Project
Emperor
England
Jul 2001
time: 09:09
01-05-2004 12:58 | www
edit | quote
#9 | report |
Help yourself to an AD-FREE life


quote:
Originally posted by Martin Gühmann
Well I wonder what these lines should do in CTPDatabase.h, I commented them out without any problems.
[snip]


A leftover from CTP1, perhaps? They changed most of the database access code between CTP1 and 2, so I guess there's lots of useless old stuff lying around...

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
01-05-2004 15:23 | www
edit | quote
#10 | report |
Support Apolyton buy from Amazon


quote:
Originally posted by J Bytheway
A leftover from CTP1, perhaps? They changed most of the database access code between CTP1 and 2, so I guess there's lots of useless old stuff lying around...


Maybe I should have said that this piece of code was part of MrBaggins' GovernmentsModified modification, he added that part of code but didn't use it.

-Martin

E
Call to Power II Democracy GameCTP2 Source Code Project
Emperor
Proud member of the CTP2AE coding team :)
May 1999
time: 01:09
02-03-2005 21:52 | www
edit | quote
#11 | report |
Support Apolyton, buy Call to Power 2


I ran across the link to this in the code. Has anyone tried this? Have they made govt specific buildings and improvements? (I guess you could do it by making available for the normal building with subneural adds and then make it available at other techs for different governments)...

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
03-03-2005 16:05 | www
edit | quote
#12 | report |
Avatar Enlargement: We've got the solution


quote:
Originally posted by E
I ran across the link to this in the code. Has anyone tried this? Have they made govt specific buildings and improvements?


As far as I know noone has tried.

quote:
Originally posted by E
(I guess you could do it by making available for the normal building with subneural adds and then make it available at other techs for different governments)...


No, it doesn't work like this. MrBaggins posted the syntax here, nothing with different techs and so on, just a different government.

-Martin

Maquiladora
Call to Power II MultiplayerCTP2 Source Code Project
Emperor
Monterrey, Mexico
Jun 2001
time: 03:09

HOF entries: 5
03-08-2008 00:09 | www
edit | quote
#13 | report |
Support Apolyton buy from Amazon


quote:
Originally posted by Martin Gühmann

As far as I know noone has tried.


I just tried it and it doesn't work. It doesn't crash the game or give anything invalid, but it's not finished. Just like it (seems) MrBaggins says in the opening post.

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
03-08-2008 21:35 | www
edit | quote
#14 | report |
Increase Your PM Length


quote:
Originally posted by Maquiladora
I just tried it and it doesn't work. It doesn't crash the game or give anything invalid, but it's not finished. Just like it (seems) MrBaggins says in the opening post.


Well, that's what MrBaggins says about.

quote:
Originally posted by Maquiladora
None of the existing record access in the code (1700 hundred instances of ->Get( and ->Access(, not all of which are applicable,) use the new method... so they need to be changed...


So here you have the problem, so far I made it working or it least it should work with the UnitDB. Maybe there are also other databases but there is no guaranty.

-Martin

Maquiladora
Call to Power II MultiplayerCTP2 Source Code Project
Emperor
Monterrey, Mexico
Jun 2001
time: 03:09
03-08-2008 22:13 | www
edit | quote
#15 | report |
Put an end to popups!


quote:
Originally posted by Martin Gühmann

So here you have the problem, so far I made it working or it least it should work with the UnitDB.


Thanks

quote:
Maybe there are also other databases but there is no guaranty.


MrBaggins mentions some repetitious work, if I can help with that, to get it working for all databases, then tell me how.

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
04-08-2008 22:43 | www
edit | quote
#16 | report |
Full PM-box? Change here!


quote:
Originally posted by Maquiladora
MrBaggins mentions some repetitious work, if I can help with that, to get it working for all databases, then tell me how.


So you wanna become a coder? For that you need and account at our repository, you need TortoiseSVN or another SVN tool. A compiler like the Introductory Edition of VC6 or the Express Edition of VC2008, then the source code a version of Direct X maybe also the Windows SDK, depending on your Direct X version, and you have to find all those instances of DB->Get( in the code, for that the windows search is your friend or also the internal search of Visual Studio.

-Martin

Maquiladora
Call to Power II MultiplayerCTP2 Source Code Project
Emperor
Monterrey, Mexico
Jun 2001
time: 03:09
04-08-2008 22:58 | www
edit | quote
#17 | report |
Tired of ads?


quote:
Originally posted by Martin Gühmann

So you wanna become a coder?


Yes, but I doubt I can do more than copy and paste at the moment. But I'm good at repetitious tasks, so thought I could be useful.

quote:
For that you need and account at our repository, you need TortoiseSVN or another SVN tool. A compiler like the Introductory Edition of VC6 or the Express Edition of VC2008, then the source code a version of Direct X maybe also the Windows SDK, depending on your Direct X version, and you have to find all those instances of DB->Get( in the code, for that the windows search is your friend or also the internal search of Visual Studio.


Thanks Martin, I'll look into it.

BTW which is the best (least problems) VC6 or VC2008?

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
04-08-2008 23:05 | www
edit | quote
#18 | report |
Get a bigger avatar today!


quote:
Originally posted by Maquiladora
BTW which is the best (least problems) VC6 or VC2008?


Let's say if you want to release a playtest version then you have to use VC6, since VC2008 eats the army to goal assignment, so that the AI won't move any units. If you just want to do some coding and testing then you can use VC2008. One advantage of VC2008 or more precise of its integrated development environment Visual Studio 2008 is that it has a more user friendly interface and fewer bugs, so I really prefer VS2008 over VS6. Another advantage is that you should be able to download VS2008 Express Edition from Microsoft, directly. Whereas, I have no idea for VS6, but we can upgrade VS6 Introductory version to a full version with Microsoft's latest service pack, very easily.

-Martin

Maquiladora
Call to Power II MultiplayerCTP2 Source Code Project
Emperor
Monterrey, Mexico
Jun 2001
time: 03:09
04-08-2008 23:31 | www
edit | quote
#19 | report |
Put an end to popups!


I'll try VS2008 and see how I go. Expect a few questions coming though.

I think I had an account for the old repository but I've forgotten it. I assume I have to contact Darkdust eventually for the new one.

Maquiladora
Call to Power II MultiplayerCTP2 Source Code Project
Emperor
Monterrey, Mexico
Jun 2001
time: 03:09
11-08-2008 00:40 | www
edit | quote
#20 | report |
Lose 30 kilos (of popups)


quote:
Originally posted by Martin Gühmann

So here you have the problem, so far I made it working or it least it should work with the UnitDB. Maybe there are also other databases but there is no guaranty.


I just tested a warrior that cost 500 in Tyranny instead of 150 normally and I found some bugs.

For example the build time doesn't show correctly in the build manager before you add it to the build queue, it just shows the time expected for the original warrior. So I guess I'll start by trying to fix that.

I also got another freeze and crash when trying to move a tyranny warrior out of the city:

code:
Version 2008-06-18 0x004e0782 [?UDUnitTypeCanSettle@@YA_NHHABVMapPoint@@_N@Z + 0x32] 0x004e08b7 [?CanSettle@UnitData@@QBE_NABVMapPoint@@_N@Z + 0x27] 0x004d94ed [?CanSettle@Unit@@QBE_NABVMapPoint@@_N@Z + 0x2d] 0x0043dab7 [?RepaintLayerSprites@TiledMap@@QAEHPAUtagRECT@@H@Z + 0x417] 0x0043e3c5 [? RepaintSprites@TiledMap@@QAEHPAVaui_Surface@@PAUta gRECT@@_N@Z + 0x95] 0x006e58bf [?background_draw_handler@@YA?AW4AUI_ERRCODE@@PAX@Z + 0xaf] 0x00687a9d [?DrawThis@Background@@UAE?AW4AUI_ERRCODE@@PAVaui_Surface@@HH@Z + 0xd] 0x00678c9b [?Draw@aui_Window@@UAE?AW4AUI_ERRCODE@@PAVaui_Surface@@HH@Z + 0x2b] 0x0040be13 [?ProcessUI@CivApp@@AAEHIAAI@Z + 0x183] 0x0040c1cb [?Process@CivApp@@QAEHXZ + 0x11b] 0x00406f84 [?CivMain@@YGHPAUHINSTANCE__@@0PADH@Z + 0x394] 0x004069e5 [WinMain@16 + 0x65] 0x007ff0fc [WinMainCRTStartup + 0x134] 0x7c816fd7 [__onexitbegin + 0x7be50cdf]


I can imagine what is wrong here but I'll see how the debugger works.

Maquiladora
Call to Power II MultiplayerCTP2 Source Code Project
Emperor
Monterrey, Mexico
Jun 2001
time: 03:09
11-08-2008 03:30 | www
edit | quote
#21 | report |
Support Apolyton buy from Amazon


I ran the debugger and repeated the bug and got an assertion failure at this line from CTPDatabase.cpp in ...ctp2_code\gs\newdb:

code:
template T *CTPDatabase::Access(sint32 index) { Assert(index >= 0); Assert(index < m_numRecords); if((index < 0) || (index >= m_numRecords)) { DPRINTF(k_DBG_GAMESTATE, ("CTPDatabase::Access: index: %i, numRecords: %i\n", index, m_numRecords)); return NULL; } return m_records[index]; }


so the modified tyranny warrior index is not less than m_numRecords, but what do I do about it?

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
11-08-2008 13:46 | www
edit | quote
#22 | report |
Remove this text


quote:
Originally posted by Maquiladora
For example the build time doesn't show correctly in the build manager before you add it to the build queue, it just shows the time expected for the original warrior. So I guess I'll start by trying to fix that.


Looks like I only modified the game object files themselves and forgot the UI. The file you are looking for is called editqueue.cpp.

quote:
Originally posted by Maquiladora
so the modified tyranny warrior index is not less than m_numRecords, but what do I do about it?


It looks rather like that that isn't even a valid index for without government modified stuff. So what was its value? And what was the function call stack. Both can be figured out with the debugger. But you can find the stuff also in the log files you find in log directory.

-Martin

Maquiladora
Call to Power II MultiplayerCTP2 Source Code Project
Emperor
Monterrey, Mexico
Jun 2001
time: 03:09
11-08-2008 23:07 | www
edit | quote
#23 | report |
Support Apolyton, buy Galactic Civilizations


quote:
Originally posted by Martin Gühmann

Looks like I only modified the game object files themselves and forgot the UI. :D The file you are looking for is called editqueue.cpp.


There are many instances of ->Get( in that file, but I have no idea which to change or what to change it to, because I can't read the code yet.

quote:
It looks rather like that that isn't even a valid index for without government modified stuff. So what was its value? And what was the function call stack. Both can be figured out with the debugger. But you can find the stuff also in the log files you find in log directory.


I guess this is the important part from the debugger log:

code:
armydata.cpp@6228: Army 0xd0000005 Executing order ORDER_MOVE_TO @ (1,8), turn=6 wrlunit.cpp@93 : World::RemoveUnitReference: id: 0x10000007 armydata.cpp@6228: Army 0xd0000005 Executing order ORDER_MOVE_TO @ (0,10), turn=6 c3debug.cpp@315 : Assertion (index < m_numRecords) Failed in File:c:\ctp2\ctp2_code\gs\newdb\ctpdatabase.cpp, Line:356 c3debug.cpp@316 : Stack Trace: ' 0x008c460a [char * __cdecl c3debug_StackTrace(void) + 0x2a] 0x008beeed [void __cdecl c3debug_Assert(char const *,char const *,int) + 0x5d] 0x00bb5618 [public: class UnitRecord * __thiscall CTPDatabase::Access(int) + 0x48] 0x00bb5538 [public: class UnitRecord * __thiscall CTPDatabase::Access(int,int) + 0x18] 0x00bb550c [public: class UnitRecord const * __thiscall CTPDatabase::Get(int,int) + 0x1c] 0x00a3fcaa [bool __cdecl UDUnitTypeCanSettle(int,int,class MapPoint const &,bool) + 0x4a] 0x00a3ff06 [public: bool __thiscall UnitData::CanSettle(class MapPoint const &,bool)const + 0x36] 0x00a35c44 [public: bool __thiscall Unit::CanSettle(class MapPoint const &,bool)const + 0x24] 0x0091ec47 [public: int __thiscall TiledMap::RepaintLayerSprites(struct tagRECT *,int) + 0x477] 0x0091fb4f [public: int __thiscall TiledMap::RepaintSprites(class aui_Surface *,struct tagRECT *,bool) + 0x8f] 0x00e9a698 [enum AUI_ERRCODE __cdecl background_draw_handler(void *) + 0xf8] 0x00dfbe17 [public: virtual enum AUI_ERRCODE __thiscall Background::DrawThis(class aui_Surface *,int,int) + 0x27] 0x00da7058 [public: virtual enum AUI_ERRCODE __thiscall aui_Region::Draw(class aui_Surface *,int,int) + 0x38] 0x00dcdb58 [public: virtual enum AUI_ERRCODE __thiscall aui_Window::Draw(class aui_Surface *,int,int) + 0x28] 0x008a38c3 [private: int __thiscall CivApp::ProcessUI(unsigned int,unsigned int &) + 0x1f3] 0x008a3e9a [public: int __thiscall CivApp::Process(void) + 0xca] 0x0089959d [int __stdcall CivMain(struct HINSTANCE__ *,struct HINSTANCE__ *,char *,int) + 0x3ad] 0x00898bf7 [WinMain@16 + 0x87] 0x010d7968 [WinMainCRTStartup + 0x2a8] 0x010d76cf [WinMainCRTStartup + 0xf] 0x7c816fd7 [\177zlib1_NULL_THUNK_DATA + 0x7b41952f]


but I don't know which is the value of the warrior. There is mention of a "stack trace", but I would have no idea what to do with that either.

Martin Gühmann
Call to Power II Democracy GameCall to Power Democracy GameCTP2 Source Code Project
Moderator
Berlin, Germany
Mar 2001
time: 10:09
11-08-2008 23:43 | www
edit | quote
#24 | report |
Enter the AD-FREE zone


quote: