Page MenuHomeWildfire Games

elexis (Alexander H)
User

Projects

User Details

User Since
Dec 21 2016, 3:52 PM (113 w, 2 h)

Recent Activity

Yesterday

elexis added inline comments to D1718: Decay/regenerate option for resources when not being gathered from.
Tue, Feb 19, 3:52 PM

Mon, Feb 18

elexis added a comment to D1745: Allow loading Icons at runtime.

It's not good that they aren't declarated in XML. That's why it's harder for us to find unused or wrong named textures.

Well, the only thing that this unused references script can find are unused reference, not unused images. It means if someone removes the use of a sprite, the script doesn't complain about it and 2 things instead of 1 unused.
For example there were many styles and theme parts from the previous UI design and even the one before that (from 2003 or something), one can find the commits in the commit history.

Mon, Feb 18, 5:26 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Okay I'll add both then and make this a monster patch with 6 features in one.

Monsters = spooky, spooky = bad? Just fix up what we have in such a way that the changes for future adventures can be added without rewriting this one?
Adding Min/Max to the "changes", using SetTimeout instead of SetDelay to avoid restarting the timer upon interval change
The only downside is that one could add a useless Minimum value to a change that increases the resource count.
But being able to change the limits per change seems definitely useful, so I'd propose to implement it there.
Another reason to move the limit to the change effects is that it seems, at least in the code state after this commit, wrong to be able to specify a Max value but no <change>.

Mon, Feb 18, 4:22 PM

Sun, Feb 17

elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Your call

I don't take calls currently, but I can post some things that I can see in this webpage

Sun, Feb 17, 9:49 PM
elexis added a comment to D1746: Network Dialog / Troll removal device.

(done, will upload some day)

Sun, Feb 17, 3:44 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

can't differentiate Growth from Fattening from spawning

The question is whether we want the possibility to have multiple resourcesupply effects simultaneously or whether one effect at a time covers all use cases realistically imagineable.

Sun, Feb 17, 3:05 PM
elexis added a comment to D1745: Allow loading Icons at runtime.

Notice that this isn't the first place where textures definitions are not present when the GUI page is loaded:

Sun, Feb 17, 1:36 PM
elexis added a comment to D1745: Allow loading Icons at runtime.

So you're asking for AddIcons instead of AddIcon.

Sun, Feb 17, 11:30 AM

Sat, Feb 16

elexis added a comment to D1703: Map browser for gamesetup.

Code looks much better than what I remember from last revision. (I only did a superficial glance however and didn't pay the patch the attention that it deserves.)

Sat, Feb 16, 9:58 PM
elexis added a comment to D1777: Move map data to settings.js.
  • MapFilter: Wondering if this should remain in gamesetup/, since the purpose of settings.js to contain data that is used by multiple GUI pages. But it seems to pass that test, because similarly to the other data in settings.js, this could be used for example in the replay menu or lobby to filter games by maps too (at least if the map exists on the local computer). As mentioned in D1703, it would be better to specify the mapfilters JSON (using MatchClasses syntax) rather than JS. But I have a patch for that somewhere, and it could be considered independent.
  • MapType: Good idea, it never occured to me!
Sat, Feb 16, 9:32 PM
elexis added a comment to D1745: Allow loading Icons at runtime.

Now some numbers
I added 247 flags (16x11 PNG) through the iconTag

So the numbers show us that displaying 250 new textures means that 250 more textures are processed, but that's not surprising, is it?

Sat, Feb 16, 9:03 PM

Sat, Feb 9

elexis retitled D1746: Network Dialog / Troll removal device from Network Dialog to Network Dialog / Troll removal device.
Sat, Feb 9, 2:31 PM

Fri, Feb 8

elexis added a comment to D1042: rename maps/ file names to use underscores (instead of spaces and capitalization).

I think 2) should be kept: it's nice, for skirmishes, to be able to choose depending on the number of players, instead of saying that Azure Coast is only for two players.

The problem with that is that this
(a) it means it needs a copy of the terrain file for each instance (we have the file three times). For Azure Coast this case it's only 1.5mb, but other maps use 10mb
(b) if we already have the copy, why not add so much art to it, that the maps become an actually unique experience. For Azure Coast, one can say that the map terrain is so amazing and unique that one wants to play it in multiple scenarios. Notice that the entities are really unique (players start at the shore with a dock and a tower).
(c) if the argument is true in general, then it would apply to the other maps as well. So then we would be inviting to copy around many maps and just differ the playercount. But we don't want so many copied files, and we don't want to get the same map multiple times when we browse through the mapselection list (but rather get a map variant choice after having selected a map, if it's essentially the same map). Also there are random maps that can load *pmp files since a23, so I would encourage future devs to implement such map variants using that.
I'd be ok with it being a exemption though.

Fri, Feb 8, 8:24 PM
elexis added a comment to D1703: Map browser for gamesetup.

I noticed from the screenshot that you use different button styles. They should be the same theme on the entire page. I favored the Stone buttons too (replay menu), but they are considered deprecated and should be superseded by the Red ones, and we should aim at making the GUI theme globally consistent. The Stone buttons on the other pages except for the menu buttons will probably be replaced. At least that was the plan few years ago.

Fri, Feb 8, 8:03 PM
elexis added a comment to D1775: Delete unused technologies.

(refs "treasure" and "design documents" / "design document repository")

Fri, Feb 8, 7:32 PM
elexis added inline comments to D1776: Cleanup Timer.js and update documentation.
Fri, Feb 8, 7:29 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

About the naming dilemma:
The idea of the auras refering to custom, userspecified names of effects is unsettling me a bit.
With the approach in this version, all techs and auras would refer to ResourceSupply/CivRelatedName/Rate or ResourceSupply/CustomName/Rate.
With Nescios approach, all techs and auras would refer to ResourceSupply/Alive/Rate or ResourceSupply/Dead/Rate, which seems much more clear when comparing many templates/auras/techs.
So the question is how realistic are mods/vanilla specifying a ResourceSupply effect that applies to the entity in both alive or dead state.
(Perhaps in a fantasy mod, a rock that is alive and moves around and provides a replenishing mineral resource supply regardless, even after the point in the storyline where the rock dies. https://en.wikipedia.org/wiki/List_of_The_Neverending_Story_characters#Pyornkrachzark)
Such a mod would not only have to duplicate the "change" item, but also all effects of auras and techs refering to that resource supply would have to be duplicated (effect ResourceSupply/Alive/Rate or ResourceSupply/Dead/Rate).
But if that's the worst that's the worst that can happen from Nescios approach, I think that's still better than auras and techs refering to an <anyName/> rather than a fixed property name.
After all, having a separate ResourceSupply effects template per health state would likely end up in the mod creator actuallly picking different numbers for the two states and making the entity more interesting.
Also, one could provide the three way choice <Alive>,<Dead>,<Always> that was already hinted at in the code if one really wants to use the same value for both helathstates.

Fri, Feb 8, 7:24 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Add option to change the interval and restart the timers

If you want to implement it, why not, but notice that this can yield unintended consequences:
For example if flesh decays and a hero has a local aura that doubles the decay interval (smart man to use salt) but the decay of flesh starts only 5 seconds after the death,
woudln't the hero moving in and out of the range of the carcass (patrol command) entirely prevent the decay, because the timer is stopped and the delay never runs out until the timer is started again?

Fri, Feb 8, 3:58 PM

Thu, Feb 7

elexis added inline comments to D1703: Map browser for gamesetup.
Thu, Feb 7, 3:52 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

(The naming is still a dilemma until we have a new idea)

Thu, Feb 7, 1:27 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

I guess we keep the timer interval and delay unmodifiable by auras/techs (otherwise the timer would have to be restarted, which in the case of local auras might be considerable to problematic performance-wise)

Thu, Feb 7, 1:18 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Please don't add all the template changes in this diff, as they really change the gameplay idea and balancing.
This patch should only be about the code, and maybe one trivial example everybody agrees on of how the code can be used.
The gameplay changes should go to a separate patch where we don't have to discuss technicalities of implementation but can solely discuss the gameplay changes.

Thu, Feb 7, 11:41 AM
elexis added a comment to D1703: Map browser for gamesetup.

Thanks for the update

Thu, Feb 7, 11:31 AM

Wed, Feb 6

elexis added a comment to rP22081: Rome Testudo & Anti-Cavalry formations animations:.

Reviewed by Stan

If there's a forum link, would be useful to add it to the commit message.

Wed, Feb 6, 6:12 PM

Tue, Feb 5

elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.
In D1718#71714, @Stan wrote:
In D1718#71707, @elexis wrote:

(Wondering if it would be nice to make a civbonus or teambonus for that.)

For what ?

In the sense of some civs being good at preserving food. I guess it can only be a symbolic interpretation. It's not realistic that rotting huntable animals become less food, but they become unhealthy the longer they are not processed.
But perhaps some civ knew a trick (like salt) that would stop the decay even before the carcass was moved to the storehouse.

Tue, Feb 5, 7:20 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

The way it was implemented before is that if it lost all its gatherers it would have re-added the timers, and that only happens if

The resourcesupply entity also has gathercount = 0 if all gatherers are currently returning the resource.

Tue, Feb 5, 4:22 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

(Wondering if it would be nice to make a civbonus or teambonus for that.)

Tue, Feb 5, 4:10 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

If you want the decay to start few seconds after the last gatherer took something form it, then would it also have to stop decaying if a new gatherer takes something from it?
It seems just always decaying would at be most clear as to when what happens.
(Perhaps you can discuss the feature design with Michael or Nescio or whomever, I'm just here for the code form.)

Tue, Feb 5, 10:54 AM
elexis added a comment to D1773: Move unit stances to a separate file.

It'd already be in this.template. Didn't think it through, but if possible, might be nice.

Tue, Feb 5, 9:52 AM

Mon, Feb 4

elexis added a comment to D1773: Move unit stances to a separate file.

No, mods don't have to overwrite the file to change it, but they can change it in a UnitAI_mymod.js that just sets foo.bar.stance = { ... } in load. See D1756.

Mon, Feb 4, 10:13 PM
elexis added inline comments to D1460: Add an experience status bar.
Mon, Feb 4, 10:02 PM
elexis added a comment to D932: Acoustic notification when people join hosted game.

(The sound file was actually created by Samulis and not downloaded from elsewhere / licensed accordingly?)

Mon, Feb 4, 9:41 PM · Contributors
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Would be considerable to display this property in the tooltips, but would add a lot of code to this patch, so maybe later.
Should remember to check that mirages work correctly.

Mon, Feb 4, 1:26 AM

Sun, Feb 3

elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

When the ResourceSupply entity is destroyed, then the Timer system component should stop looping over and updating these timers.
Reading tha component, cmpTimer should probably just have been cmp, because it misleads the reader to assume that it's about the timer component, and not the subscribing component of the entity. Anyhow, out of scope.
Entities destruction can be processed in OnOwnershipChange, and I think there was another destroy event.

Sun, Feb 3, 9:59 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.
In D1718#71617, @Stan wrote:

Canceltimer was removed because you didn't want units to prevent the decaying, hence no reason to disable it.

Sun, Feb 3, 9:33 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Code looks goodish syntactically and pattern-wise, but the semantics need to be reviewed as well.
Why was CancelTimer removed?

Sun, Feb 3, 7:24 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.
In D1718#71594, @Stan wrote:

With the current implementation you could have FoodDecaying and apply a modification on only templates that have it.

You are right, I didn't see the anyName. That would work. Nescios approach too. Just not my N times <Generation> thing.

Sun, Feb 3, 5:50 PM
elexis added a comment to D1768: Formations: GetClosestMember passes wrong entity to filter function.
In D1768#71585, @Yves wrote:

In general, I wouldn't want to start changing the formation code in SVN before we have a working prototype of a new formation system.

Sun, Feb 3, 2:40 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Nescios proposal could also be implemented without schema, timer,... duplication too btw, so the duplication avoidance doesn't really influence the schema design.

Sun, Feb 3, 2:21 PM
elexis added a comment to rP21847: Rewrite the prelobby pages and add the Terms of Service, Terms of Use and the….

rP20053
Can you raise a concern, so that we don't forget about it?

Sun, Feb 3, 1:43 AM

Sat, Feb 2

elexis added a comment to rP21847: Rewrite the prelobby pages and add the Terms of Service, Terms of Use and the….

Can just do let msg = too I suppose.

(In the while condition? Is that even legal? I'm currently stuck in c++ bytestream hell otherwise I'd have tested or looked up.)

Sat, Feb 2, 3:05 PM
elexis added a comment to rP21847: Rewrite the prelobby pages and add the Terms of Service, Terms of Use and the….

That let outside of the loop scope is a disadvantage though unless we want to use that variable outside of the loop.

Sat, Feb 2, 1:52 PM
elexis added a comment to D1746: Network Dialog / Troll removal device.

Update:
Added VFS::GetFileStream(const VfsPath& pathname, shared_ptr<std::istream>& stream) that returns

  • a std::ifstream from RealDirectory::GetStream(const OsPath& name, shared_ptr<std::istream>& stream) and
  • an ArchiveFile_Zip::GetStream(const OsPath& name, shared_ptr<std::istream>& stream) for files in uncompressed or deflate compressed zip archives.
Sat, Feb 2, 1:42 PM
elexis added a comment to rP21847: Rewrite the prelobby pages and add the Terms of Service, Terms of Use and the….

Press continue, click and accept any of the prelobby docs, see that the continue button is enabled again and press it.

Sat, Feb 2, 12:24 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Doesn't seem so complex, looks good to me.
I would suggest to not use this timerID + "Timer"] but this.fooTimers = [], then accessing this.fooTimers[i] which ought to come out as undefined without warnings if i >= length.
Perhaps one could avoid setting (thus serializing) the timers array if the generative resourcesupply is not enaled. (Thinking about the 10k trees)

Sat, Feb 2, 12:20 PM

Fri, Feb 1

elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Cumulative auras? Not sure what you mean, but one should be able to identify the different items by the numeric index i when looping over them, this.generationTimers[i] for example.

Fri, Feb 1, 5:27 PM
elexis added inline comments to D1676: Embed zpl-c's version of enet library.
Fri, Feb 1, 5:23 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

Instead of GetCurrentAmount one can use this.amount, making it slightly quicker unless the JIT is smart enough to optimize that out.

Fri, Feb 1, 8:34 AM
elexis added inline comments to D1676: Embed zpl-c's version of enet library.
Fri, Feb 1, 8:24 AM
elexis added inline comments to rP22075: Health.js cleanup. Fixes Vulkan complaints.
Fri, Feb 1, 7:24 AM

Thu, Jan 31

elexis added a comment to D1676: Embed zpl-c's version of enet library.

Re connection compatibility UI side/OTissue:
(I think symbols like 4, 6, S might not be understood by many players.
Either these indicators give some circumstancial evidence, or they indicate clear causal relationships.
In the first case, it doesn't really inform the user.
In the second case, it could be used to to disable / grayout games that are unjoinable (like we do with games that have incompatible mods) without introducing custom symbols or abbreviations.
If there was a failed connection attempt, the messagebox that already pops up could inform the user which types of connection issues it could be to begin with (as it knows whether the host has IPv4/6, whether it uses STUN, whether someone else was able to join.).
The difference between informing before connecting and after connecting is that in the latter case, we know for sure whether the client can connect, in the former case we don't. So we can conclude a little bit more about the possible connection issues after an attempt.
It could be similar to getDisconnectReason in network.js, it'd just be an set of conditions and strings.)

Thu, Jan 31, 2:57 PM
elexis added a comment to D1769: Do not mark unit as injured when receives 0 damage.

If we do a big refactoring in the same patch, then the >= 0 > 0 change will be hidden therein. So perhaps better to do that separately?

Thu, Jan 31, 11:27 AM
elexis added inline comments to D1718: Decay/regenerate option for resources when not being gathered from.
Thu, Jan 31, 11:25 AM
elexis added a comment to D1770: Fix Vulkan warnings in Health.js.

(Get it over with, you replaced the var/let correctly, the rest is accepted by me, and ask Vulcan for the rest. There are no changes that can break anything.)

Thu, Jan 31, 11:20 AM

Wed, Jan 30

elexis added inline comments to D1718: Decay/regenerate option for resources when not being gathered from.
Wed, Jan 30, 9:43 PM

Tue, Jan 29

elexis added a comment to D1472: Grouped civ bonuses into a single folder.

Grouping autoresearched techs into a separate folder (and not introducing civ specific folders) would allow someone to look at all autoresearched techs without doing a filecontent search, but by opening that folder. So that's a small use case for adding that directory if not introducing civ folders.
If introducing civ folders, we'd have 12 to 13 new directory that contain only one or two autoresearched techs? That doesn't sound like a balanced filetree, so in that case the directory could be argued to be avoided.
There are techs that apply to multiple civs, which would break the sorting pattern when using civ folders. One could copy the tech per civ, but that would imply the redundancy problems if they are meant to be logically the same tech.
(So I guess one could argue multiple ways.)

Tue, Jan 29, 6:38 PM
elexis added inline comments to D1718: Decay/regenerate option for resources when not being gathered from.
Tue, Jan 29, 3:13 PM
elexis added a comment to D1756: #loadingordermatters.

I think returning paths in a deterministic sorted order always is best. IO is a known slow thing, so losing a few microseconds (even a few hunderds) on that seems completely irrelevant and _should_ be completely irrelevant.
So my advice is sorting always, structurally, and if that's slow you need custom caching, and that's it.

Tue, Jan 29, 1:43 PM
elexis added a comment to D1769: Do not mark unit as injured when receives 0 damage.

Was there a reason for the == case?

Tue, Jan 29, 1:21 PM
elexis accepted D1770: Fix Vulkan warnings in Health.js.

Fix Vulkan warnings in Health.js

Vulcan should accept then.

Tue, Jan 29, 1:21 PM
elexis added inline comments to D1718: Decay/regenerate option for resources when not being gathered from.
Tue, Jan 29, 1:15 PM

Mon, Jan 28

elexis added a comment to D1756: #loadingordermatters.

I think the time taken sorting some files by C++ code is irrelevant.

#metoo, but that doesn't make it true.
How many JS files do we load, < 100? That should be done within microseconds or something. The one place where > 100 could be loaded is the ColladaManager.cpp and that already does sort. *.po files are very few too, if they were sorted.

Mon, Jan 28, 1:30 PM
elexis added a comment to D1755: Fix line misaligment in gamesetup settings..

From the original diff I gather that the size of this object is computed by JS? (Then it could be cleaner to not duplicate that information and remove the size from XML altogether and compute it once upon start. Then there aren't two places in the code that have to be kep in sync with people having to do math and comparisons.)

Mon, Jan 28, 1:16 PM
elexis added a comment to D1718: Decay/regenerate option for resources when not being gathered from.

The property names should relate to the component in general, not to sheep. (Ever saw a metal mine, tree or some space resource fattening?)

Mon, Jan 28, 1:14 PM
elexis updated subscribers of D1768: Formations: GetClosestMember passes wrong entity to filter function.

The last time someone has worked on formations, it was @temple.

Mon, Jan 28, 12:54 PM
elexis added a comment to D1764: Dynamically sizes the dataCounter overlay.

(I guess *.exe and *.dll files changed because you compiled. Notice that you don't need to do this as long as you only change .xml / .js)

Mon, Jan 28, 12:45 PM

Sun, Jan 27

elexis added inline comments to D1764: Dynamically sizes the dataCounter overlay.
Sun, Jan 27, 3:56 PM
elexis added a comment to D1766: Buildings shortcuts / hotkeys.

leaves the least used or civilization specific buildings without hotkeys

Unless one wouldn't.

Sun, Jan 27, 1:29 PM

Sat, Jan 26

elexis added a comment to D1766: Buildings shortcuts / hotkeys.

Ticket somewhere. fpre has a similar patch too if Im not mistaken. The problem with this enumerating approach is that the player has to learn which number corresponds to which building, and that this is different for every civilization. My idea was to introduce more specific mappings, one key for the fortress, one for the house. To accomplish that, one could add a hotkey identifier to the template, or one could reuse the identity classes.

Sat, Jan 26, 9:01 PM

Fri, Jan 25

elexis added a comment to D1764: Dynamically sizes the dataCounter overlay.

So the updateCounters function that smiley mentioned uses a fixed width, but the width should change dynamically. I thought this was already the case. Also as he correctly pointed out, Engine.GetTextWidth can be used for that, like getNetworkWarnings() in binaries/data/mods/public/gui/common/network.js does. If you want you can try to download the code and try to implement that (JavaScript changes only, no need to compile). BuildInstructions.

Fri, Jan 25, 8:46 PM
elexis added a comment to D1764: Dynamically sizes the dataCounter overlay.

This is a code problem, not a string problem. It can happen with other languages too. I think the same problem exists with some playernames in the lag-warnings area too.
The *.po files are downloaded from transifex, so they would be edited there ifanything. But I would recommend to not change it that way.

Fri, Jan 25, 6:49 PM
elexis added inline comments to D1763: Removes duplication of Clamp function.
Fri, Jan 25, 2:53 PM
elexis added a comment to D1762: Give Fortress a territory root.
In D1762#70938, @Nescio wrote:
  • historical realism: a city was only conquered when all of its fortresses were taken; control of the city centre mattered, but wasn't decisive

Until all garrisoned fortresses are taken that is?
That would be the case with the current system already.
The question is what should happen to the civic, economic and military buildings if the enemy has taken over the city center, whether it would be good or bad gameplaywise and historically realistically to have the player "pop-blocked" and the economic nearby buildings unusable after losing a CC. The military ones (barracks) probably would still be in effect in history in the situation of a conquered CC I suppose.
(Also, the argument that the city has not been taken over yet until all defenses have been destroyed could be applied to towers and wall towers. But I guess these fortifications logically differ due to the garrison limit and people in the towers had given up if all fortresses were conquered? I can't speak on the history side.)

Fri, Jan 25, 2:48 PM

Thu, Jan 24

elexis added a comment to D1760: Remove template_unit_mechanical.xml.

(refs D490 for ships)

Thu, Jan 24, 6:14 PM
elexis updated subscribers of D1761: Enable workshops.

@Feldfeld @borg- were working on a mod to enable these buildings and to add counters. https://wildfiregames.com/forum/index.php?/topic/25281-expansion-pack-mod-release/
I suspect counters could make gameplay much more diverse (less spamming of one unit), and these buildings would be a dependency of said counters patch. D1707 also along the road.
When a23 was developed, it was also planned to make workshops and ranges etc. accessible. At least to have the templates present (whether or not all buildings were buildable for every civ by the units.)
So perhaps you are interested to mutually check each others proposal and come up with a common or agreed one.

Thu, Jan 24, 6:12 PM
elexis added a comment to D1762: Give Fortress a territory root.

Giving root territory to more buildings had not rarely been proposed. D1164, also the proposal to remove territory entirely optionally.
But the more buildings receive root territory, the more it deincentivizes building, defending, destroying capturing, rebuilding the buildings that do have root territory.
As a defender this may be more comfort (but so would be removing the Health component of buildings).
Root territory being only a property of few rare buildings makes the gameplay more distinct from other RTS, gives more choices for defensive and offensive, stratgic or tactical moves and adds to the presentation of a city state. (Civic centers define an area as a small independent citystate. A fortress is a place to defend, but doesn't fulfil the same role as a civic center.)
So: Why? (And why not post the reasons for a diff in the summary or test plan when uploading a patch that isn't trivially correct?)
That some special buildings have root territory might have been an unconscious decision for some buildings (inherited form the parent without consideration), but I didn't research.
I'd rather go the opposite way and remove it from some buildings where it doesn't fit. I don't know whether it makes sense for the theatron gymnaseon or iberian monument. The latter was a unique gimmick so far. Perhaps one could create some relation to the historic realities of the embodied structures (and that historic reasoning could be manifested in the history string description, which would be displayed in the template info dialog from a23).

Thu, Jan 24, 6:06 PM
elexis added a comment to D1472: Grouped civ bonuses into a single folder.
In D1472#70810, @Stan wrote:

will break delenda_est and probably terra_magna and milleniumad.

Thu, Jan 24, 2:21 AM
elexis added a comment to D1473: Add SelectionGroupNames for siege engines.

Packed / unpacked entities have different templates, so they can have custom selectiongroupnames, no?

Thu, Jan 24, 2:06 AM
elexis added a comment to rP17041: Highlight all player names in the lobby chat. Patch by stanislas69, fixes #3281..

A guideline isn't a rule, you don't have to work on it. Just formalized the defect.

Thu, Jan 24, 1:52 AM
elexis added a comment to D1746: Network Dialog / Troll removal device.

memory size / load time / stream

Thu, Jan 24, 1:48 AM

Wed, Jan 23

elexis raised a concern with rP17041: Highlight all player names in the lobby chat. Patch by stanislas69, fixes #3281..

This should have taken word boundaries into account: #4343, #3281#comment:8.

Wed, Jan 23, 9:27 PM

Tue, Jan 22

elexis added a comment to D1676: Embed zpl-c's version of enet library.
In D1676#70775, @Lefo wrote:

Seems you don't understand the point. Some users can't host

The point I was making was not about the problem where someone hosts a game that noone can join, but the problem where 9/10 users can join but the 10th cannot.
That issue is, from the number of complaints on the lobby, much more frequent, and it's in particular more frustrating to that player;
(because the player who can't host at all will give up and find another host, while the 10th client now is unable to participate in the game where all his buddies are in).
A testclient can't yield any information about this situation, but only inform the users who can't host that they can't host (which they usually find out quickly, that I'm not sure that it would be worth writing such a testclient as opposed to just displaying a short sentence hint in the dialog box, but if someone wants to implement it, maybe).

Tue, Jan 22, 6:40 PM
elexis added a comment to D1676: Embed zpl-c's version of enet library.

Server should connect via STUN just as any other joining player would if host has STUN enabled.

(As far as I know, the missing STUN connectivity for some clients is a clientside problem, not a serverside one (we can observe something like 90% of the people can join STUN games and something like 10% can't); what information does it yield to test with one client?
I suppose it could detect a serverside firewall issue, but the problem is to explain to the user why all the other players could join but he individually could not. Whether a host uses STUN or not, whether it's an IPv4 or IPv6, whether anyone else could join before should be known already at the point of displaying it in the lobby gamelist at least.)

Tue, Jan 22, 4:50 PM
elexis added a comment to D1676: Embed zpl-c's version of enet library.

lobby

The gamelist bot would already provide IPv6 addresses if we hadn't configured it to IPv4 (see lobby README.md).
Just keep it in mind that users should be informed why they can't connect.

Tue, Jan 22, 3:22 PM
elexis added a comment to D1746: Network Dialog / Troll removal device.

Which will be outdated to the next month.

I have posted some replies to that that would be nice to be taken into account, otherwise there is no new information.

Where? I only see your suggestion that users have to download this file. But the package will be still outdated, because you don't notify users the original package was changed or update period was changed.

ctrl+f currentness.
The argument that for country data, the data, at least so I expect, will not be so outdated to the point of being useless. I am not refering to the update the files are released but to the number of changes between the individual releases.
You can upload an update every day or every month, but that doesn't tell us how many changes there were in the meantime.
I couldn't find historic downloads of the database, otherwise we could easily tell how many entries changed in the timeframe of one release cycle and see whether the currentness is really a big problem or not.
Noone denied that there are the issues, but I'm not sure what your conclusion about them is. It's not automatically updated, therefore we shouldn't use it, or therefore we should inform the user, or therefore only the hackers should be able to use it? 100% or nothing?
The question is not what defects we face but how to remove them. At least the memory part seems solveable unless the deflate algorithm prevents that, and the currentness problem is (by me expected) to not be a dealbreaker.

Tue, Jan 22, 3:17 PM
elexis added a comment to D1746: Network Dialog / Troll removal device.

! In D1746#70734, @Stan wrote:
increase the size of the bundle like by 500MB

Then you misread, 500mb is the number of memory allocated to load all 3 files in the city-grade resolution, but 15mb memory use with only the country resolution database and no ASN/ISP database.

Tue, Jan 22, 12:45 PM
elexis added a comment to D1676: Embed zpl-c's version of enet library.

The program should inform the lobby player or IP-joiner if he can't join because of an IPv4 vs IPv6 issue and advise him what he would have to do in order to solve this problem.
(We also miss an explanation why players can't join the STUN game if their ISP prohibits that traffic. We find these questions being asked on a daily basis in the lobby and noone is willing to believe that it's not a configuration issue, or bug with pyrogenesis.)
Can be done in a separate revision proposal afterwards if it's more than one or two JS hunks.

Tue, Jan 22, 12:05 PM

Jan 21 2019

elexis added inline comments to D1746: Network Dialog / Troll removal device.
Jan 21 2019, 5:48 PM
elexis added a comment to D1746: Network Dialog / Troll removal device.
In D1746#70720, @Lefo wrote:

It must be the VFS because 0ad should be distributable with the game data files being stored in a possibly compressed zipfile.

I don't think it's a good idea to put this file in zip. It would be better outside so user can easily update it.

The user can update it easily already by downloading it to .local/share/0ad/mods/geolite2updates/geolite2/*.csv.

Jan 21 2019, 5:42 PM
elexis added a comment to D1755: Fix line misaligment in gamesetup settings..

Adding a single function call to update more than strictily necessary in the GUI is a common simplification to avoid complex logic checking which things have to be updated.
Should still check whether this is the best place to add the line and the smallest code tree to call necessary.
For example initGUIObjects would be less unspecific than init(. Many people wanted to and have added many things in int, perhaps we should add a comment that people should stop addng things there.)
initSettingsTabButtons() would even be more specific than initGUIObjects.
Perhaps instead of distributeSettings, one could call updateSettingsPanelPosition() (IIRC nani already asked about 0 vs. undefined, now I know why. The answer to that can be found in the JS documentation).

Jan 21 2019, 2:06 PM
elexis added a comment to D1746: Network Dialog / Troll removal device.

The problem with not storing only the parsed contents but keeping an open file handle (std::istream) and parsing only the entries that are requested is that the file contents will be in the virtual filesystem VFS, and that only supports reading an entire file at once.
It must be the VFS because 0ad should be distributable with the game data files being stored in a possibly compressed zipfile.
The same problem happened with the visual replay menu (that wants to read only the first and last few lines of the commands.txt, which increases the performance by something like an order of magnitude.

Jan 21 2019, 12:31 PM

Jan 20 2019

elexis updated the summary of D1756: #loadingordermatters.
Jan 20 2019, 8:40 PM
elexis added a comment to D1755: Fix line misaligment in gamesetup settings..

Was it really a wrong size and not just one of the panels being visible when it should be hidden? Which GUI object is that?

Jan 20 2019, 8:21 PM
elexis created D1756: #loadingordermatters.
Jan 20 2019, 8:16 PM
elexis added a comment to D1754: Pass an argument to GUI events / SendEventToAll, remove loading screen progess workaround.

Apparently the fork 0ad guys have a patch for this already, which makes me wonder why I'd be doing any further authorship on this diff.
Mostly I wanted to express in C++ code what I could not succeed to communicate in words in D1716 anyhow.

Jan 20 2019, 7:32 PM
elexis added a comment to D1460: Add an experience status bar.

I guess at most 400 units change experience simultaneously, unlikely all of them being selected simultaneously, which means it would be 400 non-global messages that in most cases would just hit the early return.
Perhaps it would be more efficient to just update the status bars once per GUI second rather than possibly multiple times per turn.
Perhaps it's not necessary, perhaps it is and we won't find out until years later when the feature is extended or is used in a new context.
I suppose the AI is not receiving this message because IIRC it only receives those that it explicitly copies.
Conclusively, I talk empty phrases, you decide.

Jan 20 2019, 4:43 PM
elexis added inline comments to rP21378: Allow units to be positioned with freehand placement.
Jan 20 2019, 4:27 PM
elexis updated subscribers of D1746: Network Dialog / Troll removal device.
In D1746#70616, @smiley wrote:

Yes, that's what we are talking about.

Jan 20 2019, 4:22 PM
elexis added a comment to D1746: Network Dialog / Troll removal device.

Yes, it has to iterate once through the map, because the subnets have different bitmasks, but the other std::map's can lookup directly.
Anyhow, the lookup time is kind of irrelevant, there is also a cache for the few IPs looked up, the memory footprint is the dealbreaker.

Jan 20 2019, 1:13 AM
elexis created D1754: Pass an argument to GUI events / SendEventToAll, remove loading screen progess workaround.
Jan 20 2019, 12:20 AM