Page MenuHomeWildfire Games

Allow resistance to StatusEffects.
ClosedPublic

Authored by Freagarach on Jun 11 2020, 5:54 PM.

Details

Reviewers
wraitii
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Commits
rP24162: Allow resistances to StatusEffects.
Summary

This allows resistance to status effects. Currently implemented:

  • Chance to block one.
  • Reduction (or multiplication) of the duration.
Test Plan

Try to play with some values.

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Design wise, we must figure out if it is preferable to put this here on in IID_Resistance, and then we ought to apply it as a universal maxim :p
I have to say I'm unsure for now. The design of attack effects is rather decentralised, so it seems to make sense that the design of resistance would be too... However the "chance" design might be re-usable for other armour type, so there is a logic in making it generic.

"How" the resistance is applied is definitely up to the receiver, so it seems GetTotalAttackEffects should be moved to Health. What resistance is applied however, seems more a concern for a resistance component of sort.

I'm wondering if you could set up a schema like so, which would also work nicely with D2229

<Resistance>
  <Armour type="Damage">
    <Hack>...</Hack>
  </Armour>
  <StatusResistance type="StatusEffects">
  	<chance>...</chance>
  </StatusResistance>
  <strongwill type="capture">5</strongwill>
</Resistance>

what do you think?

The thing is, without a StatusEffectsReceiver component it doesn't make any sense to have resistance against those. (Just like it makes little sense to have hack/pierce/crush armour when one has no health.) Therefore I'd say, put the resistances of a particular component therein.
That being said, I do not know whether this is feasible and I like the schema you proposed :)
It would mean, however, that one entry can only have one type of resistance. E.g. one cannot have a "magic" shield that protects against both health damage and status effects. But I guess without directional damage and/or hitboxes that does not make much sense (yet) ^^'.

The thing is, without a StatusEffectsReceiver component it doesn't make any sense to have resistance against those. (Just like it makes little sense to have hack/pierce/crush armour when one has no health.) Therefore I'd say, put the resistances of a particular component therein.

True. I guess I'll have to dig into the reason why armor and health were originally separate, but it seems it might be a relic of times past.

It would mean, however, that one entry can only have one type of resistance. E.g. one cannot have a "magic" shield that protects against both health damage and status effects. But I guess without directional damage and/or hitboxes that does not make much sense (yet) ^^'.

Ah, yes, that is annoying :p . Then I suppose your elaborate armour diff is better... But then I probably prefer moving the resistance in the component.
Needs more digging.

Initially there was only Health, rP1302 seems to have introduced Armour.

Freagarach planned changes to this revision.Jun 16 2020, 7:22 PM

Resistance in cmpResistance.

bb added a subscriber: bb.Jun 22 2020, 4:24 PM

Health and Armour have always been split ever since they are implementing. Browsing the forums doesn't yield any old discussion whether it should be one component or two. So I guess we should argue ourselfs:
The argument for not having a resistance component seems to be: Armour for an attackEffect makes only sense if we have the receiver component. And (very related) the Armour for an attackEffect on works on 1 receiver only. Using some checkrefs could save the vanilla from the useless lines, but mods might end up carrying useless template data around.
An argument for having a resistance component is that two AttackEffect can work on the same receiver, but with a different way of handling resistance. Ofcourse one can fix this in the receiver components too, however this would hardocde the receivercomponents of damagetypes.

IMO the latter argument outweighs the first, I would go for moving all resistances to cmpResistance.

Stan added a subscriber: Stan.Jun 22 2020, 4:29 PM
Stan added inline comments.
binaries/data/mods/public/simulation/components/StatusEffectsReceiver.js
36

Typo StatusEffectsReceiver here and below

Freagarach updated this revision to Diff 13313.Aug 27 2020, 4:24 PM
Freagarach marked an inline comment as done.
  • Rebased.
  • Add test.
Freagarach updated this revision to Diff 13314.Aug 27 2020, 5:40 PM

Some ugly tooltips.

Owners added a subscriber: Restricted Owners Package.Aug 27 2020, 5:40 PM
Freagarach edited the summary of this revision. (Show Details)Aug 28 2020, 12:27 PM
Freagarach planned changes to this revision.Sep 11 2020, 4:15 PM

Properly internationalise tooltips. (The rest accepts review.)

Freagarach added inline comments.Sep 23 2020, 6:53 PM
binaries/data/mods/public/globalscripts/StatusEffects.js
72

StatusName

bb added a comment.Sep 27 2020, 11:51 PM

What gives me a bit of a stomachache is the fact the codes of the statuseffects can be completely arbitrary, but still need to match for resistances to apply. 1 typo in the resistance and the resistance will silently not work. Imho all statusEffects should have an json and give a big fat error otherwise.

binaries/data/mods/public/globalscripts/StatusEffects.js
41

I guess we can get away with triggering the error here.

binaries/data/mods/public/gui/common/tooltips.js
260

The mathematician in me screams overly load: a chance is a value in [0,1] NOT a percentage. One can say that in x% of the cases something happens, but not that the chance is x%.
So either Block Chance: resistanceTypeTemplate[statusEffect].blockChance or Blocks: resistanceTypeTemplate[statusEffect].blockChance * 100 %

binaries/data/mods/public/simulation/components/Resistance.js
35
binaries/data/mods/public/simulation/components/tests/test_Resistance.js
30–33

Should be alphabetical

199–206

Shouldn't we spy too?

That is also the case for damage types, right?
If you would require SE to have JSONs the templates could be simplified as well (no need for the translatable names in there I guess?).

That is also the case for damage types, right?

It is.
I somewhat disagree with @bb -> we have people looking at our templates quite closely, and we're supposed to test things, and it's really just not that hard to make sure there are no typos. Will it still happen at some point? Probably, but it's not a difficult thing to fix, and it's unlikely to be a day-to-day issue.

Forcing template writers to make JSON files isn't an improvement to me.

bb added a comment.Sep 28 2020, 12:05 PM

I somewhat disagree with @bb -> we have people looking at our templates quite closely,

Currently maybe, but we can't know if that is sustainable.

and we're supposed to test things,

I really fail to see how you want to find a typo in a name automically. It is more that plausible that the codes defer by 1 character and such and not all templates need to define everything.

and it's really just not that hard to make sure there are no typos.

It actually is, since the codes can be almost identical (1 character difference is enough, say a Cap vs lower case), so getting it from the template will be hard. And ingame one would need to look extremely closely too see if the resistance is applied (see the hero garrison aura not being applied for a long time, before we found out).

Forcing template writers to make JSON files isn't an improvement to me.

We already do for Auras and technologies.

I really fail to see how you want to find a typo in a name automically.

There's automatically and then there's "easily". We could detect close-names (such as capitalized/uncapitalized versions of the same string) quite easily with a script, and likewise typos aren't too complicated. Simply outputting all "known" status effect node-names would make it obvious if there are duplicates, and that's not extremely difficult to do.

Forcing template writers to make JSON files isn't an improvement to me.

We already do for Auras and technologies.

Not much of an argument imo.

That being said, I don't mind much for status effects themselves since their description take up space and having JSON files likely makes sense.
I don't think it's really worth doing for damage types though, and those have the same issue as status effects, as pointed out by Freagarach.

My 2 cents anyways.

To me it seems logical to define the whole SE in a JSON, just like auras. That way one can easily apply them also beyond attacking (refs rotting carcasses).

Freagarach marked 5 inline comments as done.

Translations in JSON.

Successful build - Chance fights ever on the side of the prudent.

builderr-release-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libnetwork.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libtinygettext.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libtinygettext.a(tinygettext.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/liblobby.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libglooxwrapper.a(precompiled.o) has no symbols
../../../source/simulation2/scripting/JSInterface_Simulation.cpp:155:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        CFixedVector2D(-halfSize.X, -halfSize.Y),
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libsimulation2.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libscriptinterface.a(precompiled.o) has no symbols
../../../source/third_party/fmt/format.cpp:145:7: warning: '_POSIX_C_SOURCE' is not defined, evaluates to 0 [-Wundef]
#if ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE) || (defined(__ANDROID__) && __ANDROID__)
      ^
../../../source/third_party/fmt/format.cpp:145:37: warning: '_XOPEN_SOURCE' is not defined, evaluates to 0 [-Wundef]
#if ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE) || (defined(__ANDROID__) && __ANDROID__)
                                    ^
2 warnings generated.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libengine.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgraphics.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libatlas.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgui.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/liblowlevel.a(dbghelp.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/liblowlevel.a(file_stats.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/liblowlevel.a(vfs_path.o) has no symbols
In file included from ../../../source/tools/atlas/AtlasObject/AtlasObjectJS.cpp:21:
In file included from ../../../source/tools/atlas/AtlasObject/JSONSpiritInclude.h:32:
../../../source/third_party/jsonspirit/json_spirit_writer_template.h:37:50: warning: unused typedef 'Char_type' [-Wunused-local-typedef]
        typedef typename String_type::value_type Char_type;
                                                 ^
1 warning generated.
../../../source/tools/atlas/AtlasUI/ActorEditor/ActorEditor.cpp:45:2: warning: 'GetCurrentProcess' is deprecated: first deprecated in macOS 10.9 [-Wdeprecated-declarations]
        GetCurrentProcess(&PSN);
        ^
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:415:1: note: 'GetCurrentProcess' has been explicitly marked deprecated here
MacGetCurrentProcess(ProcessSerialNumber * PSN)               AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9;
^
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/HIServices.framework/Headers/Processes.h:412:34: note: expanded from macro 'MacGetCurrentProcess'
    #define MacGetCurrentProcess GetCurrentProcess
                                 ^
1 warning generated.
In file included from ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:23:
In file included from ../../../source/tools/atlas/AtlasObject/JSONSpiritInclude.h:32:
In file included from ../../../source/third_party/jsonspirit/json_spirit_writer_template.h:13:
../../../source/third_party/jsonspirit/json_spirit_value.h:586:24: warning: 'static' function 'value_type_to_string' declared in header file should be declared 'static inline' [-Wunneeded-internal-declaration]
    static std::string value_type_to_string( const Value_type vtype )
                       ^
In file included from ../../../source/tools/atlas/AtlasUI/ScenarioEditor/Sections/Map/Map.cpp:23:
In file included from ../../../source/tools/atlas/AtlasObject/JSONSpiritInclude.h:32:
../../../source/third_party/jsonspirit/json_spirit_writer_template.h:37:50: warning: unused typedef 'Char_type' [-Wunused-local-typedef]
        typedef typename String_type::value_type Char_type;
                                                 ^
2 warnings generated.
ld: warning: direct access in function 'wxLogger::~wxLogger()' from file 'obj/AtlasUI_Release/ActorEditor.o' to global weak symbol 'wxStringToNumHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLogger::~wxLogger()' from file 'obj/AtlasUI_Release/ActorEditor.o' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxNavigationEnabled<wxWindow>::wxNavigationEnabled()' from file 'obj/AtlasUI_Release/ActorEditor.o' to global weak symbol 'wxNavigationEnabled<wxWindow>::OnChildFocus(wxChildFocusEvent&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_filedlg.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxNavigationEnabled<wxWindow>::wxNavigationEnabled()' from file 'obj/AtlasUI_Release/ActorEditor.o' to global weak symbol 'wxNavigationEnabled<wxWindow>::OnFocus(wxFocusEvent&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_filedlg.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxNavigationEnabled<wxWindow>::wxNavigationEnabled()' from file 'obj/AtlasUI_Release/ActorEditor.o' to global weak symbol 'wxNavigationEnabled<wxWindow>::OnNavigationKey(wxNavigationKeyEvent&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_filedlg.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxAnyButton::DoSetBitmap(wxBitmap const&, wxAnyButtonBase::State)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_anybutton_osx.o)' to global weak symbol 'typeinfo for wxButtonImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_button.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::DoInsertItems(wxArrayStringsAdapter const&, unsigned int, void**, wxClientDataType)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::GetComboPeer() const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::GetCount() const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxComboBox::GetCount() const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::DoDeleteOneItem(unsigned int)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxComboBox::DoDeleteOneItem(unsigned int)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::DoClear()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxComboBox::DoClear()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::GetSelection() const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxComboBox::GetSelection() const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::SetSelection(int)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxComboBox::SetSelection(int)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::FindString(wxString const&, bool) const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::GetString(unsigned int) const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::SetString(unsigned int, wxString const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxComboBox::SetString(unsigned int, wxString const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::Popup()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxComboBox::Popup()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxComboBox::Dismiss()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxComboBox::Dismiss()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_combobox_osx.o)' to global weak symbol 'typeinfo for wxComboWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_combobox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::Create(wxWindow*, int, wxPoint const&, wxSize const&, int, wxString const*, long, wxValidator const&, wxString const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::GetListPeer() const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::~wxListBox()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::FreeData()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::DoSetFirstItem(int)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::EnsureVisible(int)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::DoDeleteOneItem(unsigned int)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::DoClear()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxListBox::DoClear()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::DoSetSelection(int, bool)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::IsSelected(int) const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::GetSelections(wxArrayInt&) const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::GetSelection() const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'non-virtual thunk to wxListBox::GetSelection() const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::DoListHitTest(wxPoint const&) const' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::DoInsertItems(wxArrayStringsAdapter const&, unsigned int, void**, wxClientDataType)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::DoInsertItems(wxArrayStringsAdapter const&, unsigned int, void**, wxClientDataType)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxListBox::SetString(unsigned int, wxString const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_listbox_osx.o)' to global weak symbol 'typeinfo for wxListWidgetImpl' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_listbox.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxStringToStringHashMap::~wxStringToStringHashMap()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_carbon_font.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxStringToStringHashMap_wxImplementation_HashTable::CreateNode(wxStringToStringHashMap_wxImplementation_Pair const&, unsigned long)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_containr.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::GetBucketForNode(wxStringToStringHashMap_wxImplementation_HashTable*, wxStringToStringHashMap_wxImplementation_HashTable::Node*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLogRecordInfo::ExtraData::ExtraData()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_filefn.o)' to global weak symbol 'wxStringToNumHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLogRecordInfo::~wxLogRecordInfo()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_log.o)' to global weak symbol 'wxStringToNumHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLogRecordInfo::~wxLogRecordInfo()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_log.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLog::CallDoLogNow(unsigned long, wxString const&, wxLogRecordInfo const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_log.o)' to global weak symbol 'wxStringToNumHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLog::CallDoLogNow(unsigned long, wxString const&, wxLogRecordInfo const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_log.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxStringToNumHashMap::~wxStringToNumHashMap()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_log.o)' to global weak symbol 'wxStringToNumHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLogRecordInfo::Copy(wxLogRecordInfo const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_log.o)' to global weak symbol 'wxStringToNumHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLogRecordInfo::Copy(wxLogRecordInfo const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_log.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::GetBucketForNode(wxStringToStringHashMap_wxImplementation_HashTable*, wxStringToStringHashMap_wxImplementation_HashTable::Node*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxLogRecordInfo::Copy(wxLogRecordInfo const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_log.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::GetBucketForNode(wxStringToStringHashMap_wxImplementation_HashTable*, wxStringToStringHashMap_wxImplementation_HashTable::Node*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxScopedPtr<wxMsgCatalog>::~wxScopedPtr()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_translation.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxTranslations::~wxTranslations()' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_translation.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxTranslations::GetBestTranslation(wxString const&, wxString const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_translation.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxTranslations::GetBestTranslation(wxString const&, wxString const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_translation.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxMsgCatalog::wxMsgCatalog(wxString const&)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_translation.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxExecute(char**, int, wxProcess*, wxExecuteEnv const*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_utilsunx.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
ld: warning: direct access in function 'wxExecute(char**, int, wxProcess*, wxExecuteEnv const*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_baseu-3.0.a(baselib_utilsunx.o)' to global weak symbol 'wxStringToStringHashMap_wxImplementation_HashTable::DeleteNode(_wxHashTable_NodeBase*)' from file '/Users/wfg/Jenkins/workspace/macos-differential/libraries/osx/wxwidgets/lib/libwx_osx_cocoau_core-3.0.a(corelib_osx_cocoa_window.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
In file included from ../../../source/graphics/tests/test_Camera.cpp:17:
/Users/wfg/Jenkins/workspace/macos-differential/source/graphics/tests/test_Camera.h:168:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        CVector3D(-101.0f, -101.0f, 101.0f),
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
In file included from ../../../source/simulation2/tests/test_SerializeTemplates.cpp:17:
/Users/wfg/Jenkins/workspace/macos-differential/source/simulation2/tests/test_SerializeTemplates.h:39:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        3, 0, 1, 4, 1, 5
                        ^~~~~~~~~~~~~~~~
                        {               }
1 warning generated.

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/1615/display/redirect

Freagarach added inline comments.Oct 1 2020, 8:03 AM
binaries/data/mods/public/globalscripts/StatusEffects.js
36–37

To be changed.

binaries/data/mods/public/simulation/components/Resistance.js
35

-is

binaries/data/mods/public/simulation/components/StatusEffectsReceiver.js
39

-resistance

47

name -> code

138

name -> code

binaries/data/mods/public/simulation/data/template_helpers/status_effects/anotherBogus.json
5 ↗(On Diff #13582)

We could also store the icon here?

Freagarach updated this revision to Diff 13586.Oct 1 2020, 8:21 AM

Comment changes.

wraitii added inline comments.Oct 4 2020, 9:42 AM
binaries/data/mods/public/simulation/data/template_helpers/status_effects/anotherBogus.json
5 ↗(On Diff #13582)

If you're moving to JSON you should make it so that everything is in JSON, and move these from "template_helpers" to regular "data" folder imo.

The damage types json might be put in their own folder after that, dunno.

bb added inline comments.Oct 13 2020, 9:15 PM
binaries/data/mods/public/globalscripts/StatusEffects.js
50–51

either the data check is redundant or the above function should return something when not finding the code

binaries/data/mods/public/gui/common/tooltips.js
466

instead of calling the globalscript 3 times, and checking for existence again, one could consider calling getData and pull the stuff from there

binaries/data/mods/public/simulation/data/template_helpers/status_effects/anotherBogus.json
5 ↗(On Diff #13582)

^, only thing we need to worry about is that some info still does need to find its way into entStates and template parameters in the gui, since they can be changed by the sim (techs on statuseffects should be allowed). One could think of making a function in the globalscript returning only all the fixed stuff for the gui, so noone would think of using other data directly from the JS.

binaries/data/mods/public/simulation/helpers/Attacking.js
26

Didn't test, but I expect these strings not being required to pass through the guiinterface anymore, which is nice. Piping translatable strings through guiinterface can be argued to be bad (elexis), and when not really needed (as here) beter avoided. refs D2995. They probably also don't need to be loaded in the Templates.js

187–190

One could argue it is more esthetic to have an early return

Freagarach updated this revision to Diff 13649.Oct 21 2020, 5:44 PM
Freagarach marked 2 inline comments as done.
  • Icon in JSON.
  • Refactoring of the globalscript.
binaries/data/mods/public/gui/common/tooltips.js
466

It is actually only called twice and the getName is convenient to have separately. So using getData.property would be not necessary IMHO.

binaries/data/mods/public/simulation/data/template_helpers/status_effects/anotherBogus.json
5 ↗(On Diff #13582)

I've moved the icon here too, but indeed, modifiable data should not be stored in JSON, unless we can apply modifications to JSON.

binaries/data/mods/public/simulation/helpers/Attacking.js
187–190

Or not ^^'

Freagarach edited the summary of this revision. (Show Details)Oct 21 2020, 5:44 PM

Successful build - Chance fights ever on the side of the prudent.

builderr-release-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgraphics.a(precompiled.o) has no symbols

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/1664/display/redirect

wraitii accepted this revision.Wed, Nov 4, 5:17 PM

I don't really have much to complain about here, seems to work and it's a required, relatively obvious change imo. I like the duration and chance to block changes.

From my end it's good to go.
(Ideally you'd want to update the wiki for modifiers)

binaries/data/mods/public/gui/common/tooltips.js
475

I feel like it would be better to put the description after the actual info. First, it avoids an awkward case with multiple sentences (you currently ought not end with a dot), and it makes more sense game-play wise.
Arguably, the actual description might be skipped in tooltips.

(I realise you're just changing this here).

binaries/data/mods/public/simulation/data/template_helpers/status_effects/anotherBogus.json
4 ↗(On Diff #13649)

Move out of template_helpers , directly in data/status_effects

binaries/data/mods/public/simulation/helpers/Attacking.js
23

You might add that it must match a JSON file's name.

This revision is now accepted and ready to land.Wed, Nov 4, 5:17 PM
bb added inline comments.Wed, Nov 4, 9:01 PM
binaries/data/mods/public/gui/common/tooltips.js
488

still under the hood we are calling g_StatusEffectsMetadata.getData twice, whatever parameters are passed. Why not add the defaults in the constructor and call getData once to replace all 4 appearances?

Freagarach updated this revision to Diff 13739.Thu, Nov 5, 4:06 PM
Freagarach marked 5 inline comments as done.
  • Use getData in tooltips.
  • Move JSON from template_helpers to data, add comment.
  • Move description after other data.
binaries/data/mods/public/gui/common/tooltips.js
488

Because I like to be explicit.

Freagarach updated this revision to Diff 13740.Thu, Nov 5, 4:09 PM

Move also folder in translations.

Vulcan added a comment.Thu, Nov 5, 4:15 PM

Successful build - Chance fights ever on the side of the prudent.

builderr-debug-macos.txt
../../../source/simulation2/scripting/JSInterface_Simulation.cpp:155:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        CFixedVector2D(-halfSize.X, -halfSize.Y),
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
builderr-release-macos.txt
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libnetwork.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/liblobby.a(precompiled.o) has no symbols
../../../source/simulation2/scripting/JSInterface_Simulation.cpp:155:4: warning: suggest braces around initialization of subobject [-Wmissing-braces]
                        CFixedVector2D(-halfSize.X, -halfSize.Y),
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libsimulation2.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libengine.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgraphics.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libatlas.a(precompiled.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: ../../../binaries/system/libgui.a(precompiled.o) has no symbols

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/1738/display/redirect

Stan added inline comments.Tue, Nov 10, 6:36 PM
binaries/data/mods/public/globalscripts/StatusEffects.js
7

Can we make this back to a prototype?

binaries/data/mods/public/gui/session/selection_details.js
105

I always wonder if it loads the dds, when in archive mode

Freagarach marked an inline comment as done.Wed, Nov 11, 8:12 PM
Freagarach added inline comments.
binaries/data/mods/public/globalscripts/StatusEffects.js
7

Could, but this is loaded merely once, so not much gain in that.

Freagarach closed this revision.Wed, Nov 11, 9:15 PM
Freagarach marked an inline comment as done.

Typo in commit message: closed by rP24162.