Development Thread

I apologize for the duplicate I put on the feature requests page. I didn't see it until the second time I scrolled down. Looks as if Alerum already had mentioned the kill list. Anyways, forgive my being over zealous :ack:
 
EF, what is your thinking on the DLL route? It will allow the game to be opened up alot more, but I worry about it not being easy to add to other mods.
 
As long as we don't make anything in the Python code depend on the DLL changes, people merging two mods with DLL changes could simply drop BUG's DLL. They wouldn't get our DLL changes, but everything should work fine.

Any mod makers that are also making DLL changes on their own should theoretically be able to merge BUG's C++ code changes into theirs to produce a new DLL.

Do you think we have enough DLL ideas to make it worth it. We could fix some of the current BTS bugs like no culture in building hovers, and we have a few ideas in the feature requests tracker.

The problem for me is that my machine crashes every time I try to compile the DLL. I suspect it's due to an overclocking issue, and the compiler is pressing the RAM too hard. This is just a guess given how it crashes. I'm looking to put together a new machine in the next month or two, though.
 
As for ideas, I'm sure we have enough at this point to warrant the addition of DLL. There are at least 10 things I can remember wanting to get in, and the reply was, "Part of the C++ code. Nothing to be done with Python."

The other issue is that changes can't be viewed like they can in python... it's a compiled file. If we do this, will we make the source code of the DLL available on the SVN?

I just got my new laptop, and it's fairly powerful. If you put the files you want to compile on SVN I'll see if I can compile any changes you make. Anyway, I think it's time. Most of the ideas in the feature request are either DLL dependent, or minor tweaks that wouldn't even be noticed by the end user.

Cam probably won't like it, but oh well.:p That brings up a question I've not wanted to ask... who's left? Ruff is Gone, NikNaks has started working on WoC intead of BAT. Is it down to us 3 now? If so, I need some help figuring out how come I can't make BAT unmodular... I've gotten to the point where I'm just going to keep it modular, and force the end user to load it on start up, and to throw in the mods they want... but that brings up another issue. What would we have in BAT that wasn't already in EDU/VD? Do we really need to support BAT, or should we just suggest another XML only mod for flavor? Cam, you can't add your 2-cents to this conversation, we already know your feelings on BAT.:p
 
update: Ok, nevermind that. Maybe new years, we'll see. I'm sure Firaxis will do right with the next one.
 
So big changes on the SVN. Please allow some time for everything to go through. I have a working version of BAT that I am posting up there now, but will take a while to upload it all. It only contains BUG and VD at this point, but it's a start. I gave up on trying to reverse all the Mods that have gone modular, so instead have made BAT modular, and it will have to be loaded form the Mods directory. Could ya folks download it, and let me know if you see any problems with it, before I start working on some of the other mods we're planning on adding?

@EF, since I'm going to be including BUG with BAT, is there any chance of you making the changes needed to get the GreatPersonMod working?

@Cam, doesn't seem like you had time to work on the help file. I'm just going to copy and paste it completely, and will just have one long section for them until you can do a more complete translation, if you still can.

@ludwig, would you be able to do the german translation, or should I just bulk that togeher as well?
 
As you were saying that now it is going modular. Because you had initially intended on maintaining it in the form it was, is it a bad thing or a good thing that it is now going to MOD? Or is this just what was to be expected? I'm not so much a programmer so I don't understand the pros and cons.

Thanks:)
 
I run civ in 1920x1200 resolution and wanted a bigger Custom Domestic Adviser

I had a look at the code and saw its simple to add auto sizing to the screen.

All my changes are tagged with #<WD>

First moved the position / size statements out of Init to createDictioneries() so I could call getXResolution() and getYResolution()

Everything is calculated from the screen size

Code:
	def createDictionaries(self):
		"""
		Creates Dictionaries we couldn't on init.
		"""

		if(self.runtimeInitDone):
			return

#<WD> ###########################################
#<WD> 			START Screen Defines 							#
#<WD>  		Moved Screen Defines from Init as want to call other functions	#
#<WD> 			To allow auto sizing								#
#<WD> ###########################################

		# Define Screen
		screen = self.getScreen()

		# Dimensions. Here is where you change sizes and lengths of general things
		# self.nScreenWidth = 1024
		# self.nScreenLength = 768
		self.nScreenWidth = screen.getXResolution()
		self.nScreenLength = screen.getYResolution()

		# Screen origin - Only (0,0) is working atm <WD>
		self.nScreenX = 0
		self.nScreenY = 0

		# Top and Bottom Borders Menu
		# Area not covered by panels
		self.nTopMenu = 50
		self.nBottomMenu = 166
		self.nLeftBorder = 5
		self.nRightBorder = 5
		self.nTableBorder = 12
		self.nShortTableAdujst = 150
		self.nBottomTableHeight = 100
		self.nTablePadding = 10

		# Location/Size of the Panel
		# self.nPanelX = 0
		# self.nPanelY = 29
		# self.nPanelLength = 562
		self.nPanelX = self.nLeftBorder
		self.nPanelY = self.nTopMenu
		self.nPanelWidth = self.nScreenWidth - self.nLeftBorder - self.nRightBorder
		self.nPanelLength = self.nScreenLength - self.nTopMenu - self.nBottomMenu

		# Dimension of the table
		#self.nTableX = 12
		#self.nTableY = 42
		# self.nTableWidth = 1000
		# self.nShortTableLength = 400
		self.nTableX = self.nPanelX + self.nTableBorder
		self.nTableY = self.nPanelY + self.nTableBorder
		self.nTableWidth = self.nPanelWidth - self.nTableBorder * 2
		self.nTableLength = self.nPanelLength - self.nTablePadding - self.nTableY
		self.nShortTableLength = self.nPanelLength - self.nTableBorder - self.nShortTableAdujst

		self.nSecondHalfTableX = self.nTableX + self.nTableWidth / 2 + self.nTablePadding
		self.nHalfTableWidth = self.nTableWidth / 2 - self.nTablePadding

		# top of bottom panel <WD>
		# self.nCustomizeControlY = 450
		self.nCustomizeControlY = self.nPanelLength - self.nBottomTableHeight + self.nTableBorder

		# Location of Text Buttons
		self.X_EXIT = self.nTableX + self.nTableWidth
		self.Y_EXIT = self.nPanelLength + self.nPanelY - 32
		self.Y_TEXT = self.nPanelLength + self.nPanelY - 27
		self.Z_TEXT = -0.1
		self.DX_TEXT = -200

# BUG - Colony Split - start

		# Location of Split Empire Button
		self.SPLIT_NAME = "DomesticSplit"
		self.X_SPLIT = self.X_EXIT - 100
		self.Y_SPLIT = self.Y_TEXT - 8

# BUG - Colony Split - end

		# Building Button Headers
		self.BUILDING_BUTTON_X_SIZE = 24
		self.BUILDING_BUTTON_Y_SIZE = 24

		# Location of Specialist Toggle Button
		self.X_SPECIAL = self.nTableX
		self.Y_SPECIAL = self.Y_TEXT - 10

		# Width of page dropdown
		self.PAGES_DD_W = 300

		# Location of Culture Threshold Info
		# self.nCultureLevelX = 670
		# self.nCultureLevelY = 450
		self.nCultureLevelX = self.nPanelWidth - 354
		self.nCultureLevelY = self.nCustomizeControlY
		self.nCultureLevelDistance = 15
		self.nCultureLevelTextOffset = 110

		# Location of next GP Threshold Info
		# self.nGPLevelX = 870
		# self.nGPLevelY = 450
		self.nGPLevelX = self.nPanelWidth - 154
		self.nGPLevelY = self.nCustomizeControlY
		self.nGPLevelDistance = 30
		self.nControlSize = 28

		# Location/Size of the Specialist Images
		# self.nFirstSpecialistX = 30
		# self.nSpecialistY = 450
		self.nFirstSpecialistX = 30
		self.nSpecialistY = self.nCustomizeControlY
		self.nSpecialistWidth = 32
		self.nSpecialistLength = 32
		self.nSpecialistDistance = 70

		# Offset from Specialist Image/Size for the Specialist Plus/Minus buttons
		self.nPlusOffsetX = -4
		self.nMinusOffsetX = 16
		self.nPlusOffsetY = self.nMinusOffsetY = 30
		self.nPlusWidth = self.nPlusHeight = self.nMinusWidth = self.nMinusHeight = 20

		# Offset from Specialist Image for the Specialist Text
		self.nSpecTextOffsetX = 0
		self.nSpecTextOffsetY = 50

#<WD>###########################################
#<WD>			END Screen Defines 								#
#<WD>###########################################


<cut>

I commented out createPositions() as its not used any more

Cleaned up a few duplicate references to use getScreen()

To customise the screen layout just change these variables

Code:
# Top and Bottom Borders Menu
# Area not covered by panels
self.nTopMenu = 50
self.nBottomMenu = 166
self.nLeftBorder = 5
self.nRightBorder = 5
self.nTableBorder = 12
self.nShortTableAdujst = 150
self.nBottomTableHeight = 100
self.nTablePadding = 10
 

Attachments

  • CvCustomizableDomesticAdvisor.zip
    22.1 KB · Views: 75
Greetings,
Looks like Ruff has been busy again, from the amount of emails I've been getting on the SVN emails... so my questions are:

1) Has wdog's cda auto-resizer been added yet?
2) What is being worked on now, if anything?
3) Are you ready for me to release an update?

As for the installer, I plan to add an uninstaller to it this time. The way the installer is set up, it should not matter if a person is using Civ Complete or standard BTS. The only information it pulls from the registry is the location of the users Documents. There are no issues pulling this information from Vista, as I've been using Vista almost since the start of the program, and the use of Install Creator.

Anyway, let me know the status, and I'll get a new release put out.

On a side note - I'm glad we didn't use CFC to host our releases. Can you imagine losing all that work?! Ouch! Anyway, everything we had was held on SourceForge, so nothing we put out was affected by the data loss.;)
 
I've been fixing bugs. A new patch is coming so I've also been looking at what we need to change to be patch compliant (not much).

Re your questions:

1) what? Edit: oh, just scroll up 1 post and there it is. Answer: No. Will put it in tonight. I will try to test it.
2) bugs
3) not yet - wait until after the new patch

Alerum - I really really want to post the install and zip in CFC's download section. I agree that it shouldn't be our source copy (use SVN for that) but it does keep track of download counts. I think that we should take the install off SVN and use CFC's services for official releases, etc.
 
Why? It's linked in the download area so anytime someone clicks and downloads it, it counts the same as if it was stored on CFC. It'll be much more work for releasing, and after the break down and loss of data that CFC suffered a few days ago, it seems foolish to do that. If it's just to keep track, then it's already done on CFC and SF the way it's set up now. SF even gives more details stats then CFC does. The only thing that would give us a better count on CFC would be to direct people there, instead of to the website.
 
sourcesave counts the downloads? where do you get the result? how many d/ls have we had?

Edit: never mind - found it. Looks like we average over 300 per month with a peak of 712 in Sept 2007. 3,300 in total - wow!
 
Ruff, EmperorFool said it would be possible to link a .chm help file directly within the BUG Options Screen, and have it open a Help window in your desktop. I'm also assuming we'd be able to assign it a hotkey? Anway you can figure that one out?

Good Night.
 
Ruff, the old BAT (for Civ 3.03) is no longer supported by us, isn't used in any way in the current bat, and is full of errors which led to those red blobs... Oh did I forget to mention it's taking up almost 650megs of HDD space? Anyway, I want to remove it from the SVN and just keep the version we have posted on the SF download page as our archive of it. To do this though, it would probably be easier to have each user of the SVN removed it from their local copy, instead of having to have it down through the server. What do you think about dropping it from the SVN, and reclaiming some of your own HDD space?
 
Fine by me. I only replicate BUG to my C drive.
 
Any chance we see the tradeable techs on the Civ4lerts trade alert ?
 
It could be done but that would really clutter up the alert with the combination of leader and tech. There is another mod (info or showinfo) that I am looking at that has all of this stuff.
 
Top Bottom