Jump to content
The Dark Mod Forums


Active Developer
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by OrbWeaver

  1. They do. There are SavePerspective() and LoadPerspective() methods on the AUI manager which can import/export the configuration to strings, which can then be saved in the registry. I haven't got it to work yet, but I assume it's just something I'm doing wrong and needs more debugging. If this can be made to work well I'm definitely in favour of getting rid of the old-style hard-coded layouts as well as the wonky position/size-saving code which has always been unreliable on my Linux system.
  2. I added an experimental AUI-based layout. The API seems promising; the dock panels can be moved around as you wish, and can be floated as separate windows, meaning that the layout @peter_spy wants (with just the properties panel floating) could be achieved very easily. The major annoyance at the moment is that the dock panels start out really small at the left and right edges of the window, almost like toolbars, and have to be manually dragged to fill the window. I guess there is something weird going on with size hints.
  3. It would be interesting to see if the wxWidgets AUI functionality is suitable https://wiki.wxwidgets.org/WxAUI Apparently it is supposed to provide the sort of customisable dock-based interfaces that you get in certain modern applications, but I haven't done any testing to see if it is suitable or would work with DR.
  4. Oh yeah, I forgot about that. It was awful. Rather than just raising your blackjack, you'd actually dive forward out of your hiding spot, right into the light where the guard was standing, and then stand there through a 3-second "muffle the guard's mouth and lower the body" animation. At which point every other guard in the area was coming straight for you. Do I remember correctly that some of the "blackjack" animations actually involved kicking the guard in the balls, or am I just imagining the game to be even more cheesy than it was?
  5. That is not correct. You are mixing up different concepts which are not in fact the same thing. Whether an app is proprietary or open source is dependent on the license. This has nothing to do with price. There is no difference in legal terms between "freeware" and "licensed paid apps". Both are proprietary apps, with the only difference being whether the copyright owner demands money for a license (licensed paid app) or offers a license for no cost (freeware). Whether an app allows the distribution of files it creates, and under what terms, depends again on the license, and has noth
  6. That was one of my biggest annoyances too. There is literally no reason why those one-way valves needed to exist in the middle of a level, they contribute nothing to gameplay, and they interfere with the loot objectives as you say. I also took issue with the pointless "console waggling" to traverse piles of debris, and the parts of the game where you are forced into the open or placed in the middle of already-alerted enemies. But I agree with chakkman that the game wasn't crap. It was beautiful to look at and very atmospheric, with just a few gameplay flaws which got in the way (and
  7. Well that seems pretty conclusive. The documentation clearly specified a behaviour which the library code wasn't actually implementing. Perhaps the fact that it was fixed in a more recent version of wxWidgets means that the defect didn't affect as many users as I first assumed.
  8. It turns out your intuition was right. Removing the static instance fixes the problem with the empty dialog appearing on the second showing, but there is still a problem with the search box. No matter what I type in the search box (even just a single letter), the tree immediately empties of all content, and nothing returns the tree to its previous state even if I delete the search box contents entirely. Fortunately since it is no longer static, I can at least close the dialog and open another one which shows the expected content. I'll go ahead and commit this partial fix in any case since
  9. I agree with this general approach. I'm already running into sporadic "Debug/Breakpoint trap" dialogs on shutdown because of some weirdness with the singleton ModelChooser's destruction (something to do with wxWidgets and DecRef() but the problem happens deep within wx/GTK code so it's basically impossible to debug), so getting rid of these static singletons sounds like a step in the right direction. In cases where there is still a performance concern with population, we could probably cache just the data rather than the whole widget and get a performance boost without having to worry abo
  10. All I've done so far is confirm that the bug appears in the released 2.11 build rather than just something local to my working copy. If you're set up to reproduce it I imagine you will make faster progress since you're more familiar with that part of the code (especially the search system), but I'm happy to investigate it if it's awkward for you to reproduce a GTK-specific issue.
  11. Unfortunately I have discovered a serious bug in the Linux version which affects the released 2.11 build — the second time you use the Create Entity function, regardless of what (if anything) you created the first time, the tree view is completely empty. I assume this doesn't happen on Windows because loads of people would be complaining about it already. Probably some interaction between the search function and the GTK implementation of wxWidgets tree controls which needs investigation.
  12. Your misconception here is that there is something special about loops which means that the compiler will optimise constant expressions used within the loop, but it will only perform this optimisation for the first usage of the expression within the loop body. This is not how C or C++ compilers work. There is nothing special about loops, and no limit on the number of compile time optimisations that can be made. If you have a numeric expression which can be evaluated at compile time, e.g. int x = 4 / 2; then that compile time calculation will be performed every single time. So you c
  13. The location may not be exposed directly to the user, who does not need to care about which PK4 a particular image is in, but the underlying filesystem definitely has to keep track of this information, otherwise it would have no idea how to load resource files. It's not enough for the engine to know that textures/darkmod/blah.tga is "somewhere in the PK4 structure". It has to know exactly which PK4 and exactly which byte offsets to use when extracting the image data from the ZIP. Maybe not a full parser, but you would need some kind of parsing at least, even if it's just keeping t
  14. The logical place for this would be either DR or the game itself, since both of these are already parsing the asset tree and know what they are loading or not loading in a particular map. Doing it in a standalone script is of course possible, but then you have to start from scratch with parsing entity defs, MTR files and the like.
  15. I think I got most of the way through this mission, but it seems to be stuck and uncompleteable.
  16. Yes, I see that. I guess each different test fixture becomes a top-level node, with its tests underneath it, so it's possible to group things which share a test fixture but if you need a different fixture for a particular group of tests you automatically get a new node. Perhaps there are more explicit ways to group the tests but I haven't looked into it yet. At my work we use QtTest from the Qt library (and a horrific in-house build system based on QMake which is possibly one of the worst build tools ever written), and some of our tests take 10 minutes or more to run, so honestly this
  17. @greeboThanks for getting the tests working in CMake. I had got as far as compiling and installing the binary but it always hung after the first few tests, and without being an expert on GTest I had no idea how to solve this. I only noticed yesterday that you had fixed the test resources directory and now all of the tests succeed. I must say I really like this new test mechanism. It is so much easier to use and more comprehensive than the old approach that could only test standalone classes. Being able to create a new test fixture in a couple of lines and immediately start calling GlobalE
  18. Conversation editor restored in Git commit 72c6c52bdf0b6fa1f1ae76ede51ae5bf971258ab
  19. Oops, that's my fault. It seems I missed out the conversation plugin when setting up the CMake build.
  20. If you pull my master branch you'll get some tweaks to the Connection menu items (replace separate enable/disable options with a standard menu toggle) and two new icons in the camera window toolbar which correspond to the camera sync connection options. There is also better error handling, so if the connection cannot be made an error dialog will appear instead of nothing happening. I didn't create a bugtracker entry so far since these sort of GUI tweaks are something of an ongoing process, but I'm happy to create an item to cover these specific changes so it can appear in the changelog.
  21. @Zerg Rush Thanks, grayman sent me a PM giving me some helpful hints, so I'm on my way to completing the missio now.
  22. OK, I'm going to have to admit defeat on this one. I must have wandered around this map for hours, but I still have no idea where I'm even trying to go, much less how to get there. I've found the theater, which seems important and suspicious but despite looking in every room and reading the two or three readables, I couldn't find anything which advanced any of my objectives. I've also been inside a hotel, a couple of workshops, a builder chapel and a lighthouse but still, nothing.
  23. It may be that he is not referring so much to the capabilities of the engine, or even the resolution of the textures and models (which is not all that easy to notice if you are not specifically looking for it), but to the style of map creation. I have noticed that some missions tend to use design techniques which were common in the simpler Thief games but look less realistic compared to the level of detail in modern games, e.g.: Truncated slivers of bricks around and above a doorway rather than a realistic supporting beam or lintel, making it appear that the door or window is just cut
  • Create New...