Jump to content

hyperion

WFG Programming Team
  • Posts

    936
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by hyperion

  1. In reality it's hard to spot fish. So job well done. Maybe a hotkey to select all gaia in a selection rectangle, like observers can is all that's needed. Wouldn't be limited to fish either. There are other things hard to spot which is a given if it has to be realistic and look beautiful. Anyway, any of the make ugly but functional visual changes for competitive play belong into mods.
  2. Goldfish, they are colourful, so you easily see them.
  3. Arguably yes, but it shouldn't crash with the integrated gpu either.
  4. There is but that's a poor man choice. Premake will reject --cc=icc (cc option used to set toolset analog to os option ), so will default to probably gcc. if cc == nil then filter { "toolset:clang" } cc = "clang" filter { "toolset:gcc" } cc = "gcc" filter { "option:icc" } cc = "icc" filter {} end So the above only works because we put icc last. Often that doesn't work, if we could use toolset:icc the premake5.lua could be written a lot cleaner.
  5. Agreed, just that premake terminology is rather awful. I pass in --os=windows --cc=mingw (for better or worse), so os.istarget("windows") and os.ishost("linux") become true. Then there is the premake command system { id } which I believe sets --os=id and results in os.istarget(id) to become true. Hard to not be confused at this point. Anyway I can't take the current os.istarget("windows") path here for cross-compilation. I could rename CHOST to target_triple thou that wont change the logic.
  6. And because we define it ourself I thought it's to test whether we use a doggy compiler or such
  7. Just because there is a coment doesn't mean the code does what is intended or meaningful. Isn't one of the points of intptr_t that the round-trip is guaranteed? So why check?
  8. Was wondering why my wdbg_stub didn't get picked up, turns out due to a bug I introduced into premake5.lua the windows-only cpp files got omitted during compilation So, some time later that stuff is fixed and builds as well. Came across a curious thing static_assert((void*)intptr_t(-1)) in wmman, gcc barfs on the reinterpret_cast here, but even if not I don't see the purpose of this assert. May someone enlighten me? So, more serious business, I started to look into how to properly implement the changes into premake5.lua. Some googling makes me feel I'm among the first to ever cross-compile with premake. Many issues to address. premake-core has no icc support (--cc=icc is invalid) (optional, highly desirable) premake-core does not respect RC respectively RESCOMP (required, some symlink with PATH hacking might work) So how to handle this? Patching the copy in tree seems beyond ugly. windres doesn't support -isystem, only -I for includes So no sysincludedirs permitted. Don't use them? Build rc as a standalone static project? Does VS have something like whole-archive? Simply drop the error_dialog? Below a patch to set cc and arch usable for cross-compilation, anyone sees a setup this might break? premake-cc-and-arch.patch
  9. wdbg is problematic too, sal.h /* FIXME: __in macro conflicts with argument names in libstdc++. For this reason, * we disable it for C++. This should be fixed in libstdc++ so we can uncomment * it in fixed version here. */ #if !defined(__cplusplus) || !defined(__GNUC__) #define __in #define __out #endif so I threw it away The ancient mongoose copy also needed a minor fixup, now the project compiled, with all extras still missing. Linking is the next step, but I guess lot of changes to premake files are needed. Not yet figured out how to go about it.
  10. CBUILD, CHOST, CTARGET correspond to the configure args --build --host --target which you might be more familiar with. So I cross compile from linux to windows with CBUILD=x86_64-pc-linux-gnu and CHOST=x86_64-w64-mingw32, and I use x86_64-w64-mingw32-g++, x86_64-w64-mingw32-ar etc as well as x86_64-w64-mingw32-pkg-config. Not really familiar with premake, so whether to respect CHOST, use PKG_CONFIG=, or a switch like --with-pkg-config= or all of them I'm not sure which is most inline with how premake does things. Pulled, thanks.
  11. As @Stan` quoted. I called it hack here because I patched in the value of CHOST I require to cross compile. No problem reading lua but doing things properly would take time looking up stuff and I'm fast approaching the original estimate of a couple hours, so I settled for the cheap solution for now to be revisited later I love hearing debundling. I'd even throw out the stuff in libraries/source/, cxxtest and valgrind should be easy, fcollada and nvtt are dead upstream so forking and putting up as fcolladaAD and nvttAD and treating them as external libs should be fine.
  12. Not in general, but as a project should stick to one way and the nominal lead immediately pinged you ... Btw. wseh is also broken (32bit only) and in wgl.h ... ... doesn't have enough exclamation marks. You only know after experiencing it.
  13. Simplification of history is often used in politics, as such I have some aversion to such practice. Not putting you into that same boat, just saying. The current situation is so far off that it's sort of fine. I mean citizen has another meaning in modern society so we can easily hide behind that meaning. There are actually places where historic accuracy is unproblematic, such as models and names, which are handled rather well in 0ad. But there are parts lacking which I think are more appropriate than trying to project some historic concepts into gameplay. For instance civ info having a few sentences at most an neither structures or units having any background texts. Campaigns, once we see more of them are another place where history can play a major role.
  14. So you prefer <cstdint> and not importing those types into global namespace? (well the implementation might still do it) As for avoiding the question, I guess you are qualified to dictate the answer It's indeed the source for this issue and also the cause for breaking the off_t family. The whole header might profit from spring cleaning. C++11 mandates C99 after all. Is that 32bit runtime and on windows? Thanks, fully support the effort, pulled it, still need the CHOST hack thou.
  15. It indeed isn't meant in a negative way. Can be called lore if that sounds better. It also means to create a mod is fairely easy technically, mostly just effort. Still there are quite a few question that come to mind which need be answered first: applicability across civs whether it doesn't distort truth as much or even more than citizen soldier (over simplification might be worse than omission) whether additional constraints on unit design have negative effects on "balancing" whether the possible added (even if only perceived) complexity is an issue (mostly for new players) or offsets the gain due to lore. I can't help much answering those questions, besides Rome I have only shallow knowledge of that time. As for the non history aspects I somewhat sceptical that you can break even, thou that's just a hunch based on personal priorities.
  16. So basically it's just decoration and not a game mechanic. So the only benefit is potentially better immersion. Do all current and possible future civs fit that scheme?
  17. The size is guaranteed, it's not guaranteed to exist thou. If the target doesn't have 8bit bytes, yes. The only examples I'm aware of is hardware in the 70' which for example had 36 bit words, so you end up with either 9,12,18,36 bit bytes. Conversely if you have a C99 compliant compiler without uint8_t you won't have a type that you can use for u8 either, so you are screwed anyway if you want to port it to such a target unless you make sure the code never makes use of the feature that u8 is actually 8 bit in which case u8 is a bad name anyway. Not for windows. There it redirects to wposix which apparently broke mingw for some odd reason . Indeed there are other ways to go about it. But this doesn't change the fact we include dozens of headers where one would suffice just to to create a new header that is potentially only ever useful for compilers supporting c++17 (required by 0ad) but for some obscure reason not C99 (not an explicit requirement for whatever reason). Right, just that I'm faced with to many errors to care for now. Porting might become a major project by itself .
  18. Long ago VS didn't support C99 I think Both are set to private? Sure, just as the only consumer (0ad) doesn't care either way I didn't bother thinking what could be an appropriate choice.
  19. So sm and fcollada compiled. Sm was a bit of a pain and is probably usable. For fcollada the attached patch was already sufficient. Building 0ad seems to be a major headache thou. Premake pkgconfig module should check for ${CHOST}-pkg-config first and only fall back to pkg-config if not found like autotools does. After a little hack for pkg-config I got tons of issues with undefined stuff. Probably caused by legacy hack after legacy hack. So a first simple suggestion attached as well. Best to get rid of the whole header thou and use the standard instead of custom types throughout the codebase. fcollada-no-msc.patch pyrogenesis-types-include-stdint.patch
  20. Then I didn't and won't read it. For me open source is open discussion. And what wasn't discussed in the open I treat as was never discussed. Sorry.
  21. I will admit that a mere name change is probably a hassle, but I doubt that it would cause mass outrage. Given that maybe an overhaul would be better. I'm not talking about some people complaining on the forums. That hyrule still is on a23 should ring an alarm bell. One of the major reasons I never considered modding is the attitude towards such changes. There is even a recent thread to rename gaia. After a well grounded answer as to why gaia is actually a good choice there comes a storm of alternative suggestions. As for Citizen, I admit is wasn't a perfect choice, just a reasonably good one. So once you have a complete concept about how to integrate social classes into gameplay witch is in line with the theme of the game (primary warfare with a bit of eco) and it conflicts with that term, then the fallout becomes worth it.
  22. Can we? And for what definition of better? Can you quantify OP civs? How many rating points can you compensate with the strongest vs the weakest civ currently? 10 50 500? Where does it start to be a problem? Can we realistically have different civs and different units if we want it to be within ±1 rating points? How about maps which favour some civs or strategies, or aren't perfectly symmetrical? Should they be banned? Last but not least, why can't people who are bothered by the slightest imbalance play mirror matchups? As for OP pikes, well, I still slightly prefer spears as they are more versatile.
  23. Does this approach have the same shortcomings as using homebrew for mac? If so I don't think it's a great solution but nonetheless a clear improvement over the status quo. Well, as said before, I only have most of the deps so far. As for rust, took me a bit of digging to patch it so it would build (bootstrap depends on sanity checks for dist target which I don't care about in the first place). As for the quirks so far, gcc 11 is to new for the mingw runtime so I had to use gcc 10 configured to use pthreads so I get <mutex> <thread> etc. Then I configured all deps with --enable-static (as intended) and --disable-shared to reduce issues (don't remember which package didn't want to build a shared lib of the top of my head) and --disable-log for boost. In case of miniupnpc I had to use Makefile.mingw and use the static lib as target. The rest can be called ebuild bugs like excess deps or defines which are Linux specific. I don't mind sharing the exact setup once I have it working but it's Gentoo specific, so except for a proof of concept might not have much value for you. Anyway, if you use mingw on windows I think you won't run into much issues up to where I am either. PS: had a quick first look at SM and Gentoo has a patch for fortify source, remembered you showing me the flags used by the the ubuntu maintainer which apparently caused issues.
×
×
  • Create New...