Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Krycztij

  1. Your previous video had many annotations – That’s Las Vegas in the distance, We’ll pick the right runway, Here’s crosswind, etc. They made it accessible to non-DCS players like me, and I’m missing them. I find myself thinking What’s that beep?, I’m sure you’re doing it wrong, but how is it supposed to be done right?, Is this normal?, and so on. Of course I could just ask those things here but still that makes it less fun to watch compared to the last one. Not meaning to complain, though. I did watch and enjoy it, after all!
  2. It was the preferred way of creating windows for several years because you have a graphical editor and a preview – no way to do this for CreateWindow() calls you can pass these dialog resources to your localization department to translate them along with the other localized resources. Most native windows in Windows ’95–7 were designed and localized that way – e.g the File Properties dialog and various Control Panel windows – but they don’t have problems because they are fixed-size dialogs or don’t rely on 0x80000000 to compute the dimensions for them. I was ne
  3. That’s too kind of you! It’s pretty cumbersome to pack ZIPs and hand them around, so I just created a git repository for TFXplorer. It’s read-only and represents the “stable” branch, meaning as little as “it compiles and the EXE opens without crashing right away”. But it means that you can always get the latest version, or browse old versions (I included ~300 revisions reaching back to 2011, but of course I can’t guarantee that any of them still compiles). You’re a Linux guy, so you will know your way around git’s command line. If you want to use the repo fr
  4. That’s about the same size as TFXplorer and all my other programs normally start. It’s the placement I’d expect from CW_USEDEFAULT. If this fails to display in a similar fashion in Wine, I’d say you have a pretty good isolated test case they should check out! This feature may not be well-known or well-documented, they may say, but you obviously know at least three programs that rely on it and break with Wine
  5. How big on windows? Actually 32768² units (~100k² pixels)? Or fitting to the screen?
  6. Could you please try changing WS_POPUP to WS_OVERLAPPED in line 74? Pop-up-Windows have some special properties, and CW_USEDEFAULT does not work for them. (I forgot the specific specialities and need to read up on it again when I do proper message boxes!) Edit: This reads like WS_POPUP triggers some technical debt from 1991 And this does not sound better: That’s the thing with Win32: There’s so much legacy APIs that you get lost really fast. On the other hand, this legacy code, when used correctly, is incredibly fast, stable, and memory-friend
  7. Correct. First, you’d create a dialog box according to https://docs.microsoft.com/en-us/cpp/windows/creating-a-new-dialog-box That looks a bit dry without pictures, so I suppose you start at 1:41 here: Skip all that button placement, I guess you don’t need anything besides an OK button. Also skip the Event Handler code etc. In your main, you call DialogBoxParamW() with hInstance = NULL, lpTemplateName = MAKEINTRESOURCE(IDD_DIALOG1), parent=NULL, lpDialogFunc = &DefDlgProcW, dwInitParam = 0. IDD_DIALOG1 is the name the resource
  8. Because I mixed up CW_USEDEFAULT and CW_USEDEFAULT16 🙄 Sorry! So CW_USEDEFAULT16 is 0x8000 and CW_USEDEFAULT is 0x80000000. Dialog Templates use CW_USEDEFAULT16 because they are restricted to 16-bit numbers. The Wine code actually translates CW_USEDEFAULT16 to CW_USEDEFAULT, but only for x/y and not for cx/cy.
  9. Neither on Windows 7. MS seems to have made a fully Unicode-compatible font not before Windows 10 … That’s really the standard Win32 controls (“Win32 Common Controls”); I didn’t change a single thing I must admit that this doesn’t have to be Wine’s fault (or your setup’s); there are problems on Windows as well. Rarely, but still too many. That’s a reason I decided against the Common Controls in TFXplorer – I wouldn’t mind the classic look if they worked perfectly, but they don’t … This tutorial looks like it could work: https://docs.microsoft.com/en-us/cp
  10. Krycztij

    spoiler test

    I just quoted long text and it was automatically cut to a moderate size with an “extend” button at the bottom. Trying it again: Maybe that’s sufficient?!
  11. Okay, here’s my analysis of Wine’s code: DialogBoxIndirectParamW() is defined at https://github.com/wine-mirror/wine/blob/master/dlls/user32/dialog.c#L898 (This is the right place, as the Win32 DialogBoxIndirectParamW() is also located in User32.dll) it redirects to DialogBoxIndirectParamAorW() (line 876) this, in turn, redirects dialog creation to DIALOG_CreateIndirect() (line 443) line 532 looks very promising: if (template.x == (SHORT)0x8000 /*CW_USEDEFAULT16*/) pos.x = pos.y = CW_USEDEFAULT; This conforms to the documentation I quoted abo
  12. Cool! I’m using the Windows standard mechanism for dialog creation: A dialog template. These are normally created via resource files (.rc) in Visual Studio, but I hate to depend on Microsoft’s toolchain, so I wrote a few C++ templates which generate the exact same data. The dialog template starts with a DLGTEMPLATE structure. This is defined in TFXplorer.cpp, as the global variable frameDialogTemplate. You only see an instance of OS::Win32::ClassicUI::DialogTemplateHeader there, but what this template does, is it generates the DLGTEMPLATE structure. In gener
  13. Exactly. You could basically run search-and-replace, but having a consistent build chain seems more desireable. (That’s why I had been talking about adding the compiler to source control in the other thread – we could just check out a specific version of TFXplorer with the according build chain. If only the dependencies weren’t such a mess.) Wow, that’s fantastic news! I know that D3D 10/11/12 has a software renderer (it’s called WARP and I use it e.g. for Lean Viewer to run on low-end systems), but I never knew about D3D 9 having one. Maybe your VM comes with basic GPU emulation? I’ve
  14. “not” was introduced with the C++20 standard, so the compiler is too old. Your snapshot says Developer Command Prompt v16.5.0, but mine is v16.10.0. In the environment file, did you point vcvarsall.bat to the wrong location (to an older version of Visual Studio)? Make sure it points to the 2019 version. Edit: Duh, didn’t read it all! Your path already points to VS 2019. Interesting … in the TFXplorer project properties > C/C++ > Language > C++ Language Standard, does it say Preview? It should. Also, try updating your Visual C++ by searching the Star
  15. Not using windows.h because it includes ~80k lines of code and needs a few #defines to work properly. When I need a WinAPI function, it is declared privately in a cpp that provides a wrapper (almost all of which are named OS Win32 ….cpp). E.g. look at OS Win32 File.cpp (172) for an example of why and how to wrap WinAPI calls.
  16. I’m confused as well – your files are placed correctly and the keys seem correct, too. Could it be that the TFX to UAW.dll plugin is placed at the wrong path, or you mixed 32- and 64-bit versions, or debug and release builds? It could also be a path problem. The chain of casuality is: TFXplorer loads all DLLs from plugins x64 or plugins x86, according to architecture. There should be at least TFX3 F22 x64.dll in there. TFX3 F22 x64.dll, during initialization, loads TFX to UAW x64.dll. (This is an attempt to make TFX planes extensions which can be de
  17. I think they introduced thread-safe initialization of static variables some time ago, and that didn’t exist in 2016 when the code was written. The new compiler requires functions for that initialization, and they are missing in the runtime included with the source. If you don’t mind upgrading, here’s the source code from late November (before I screwed up the input management): http://krishty.com/taw/tfxplorer/2020-11-22/tfxplorer source.7z For manual builds: open the Visual Studio solution TFX/TFX.sln For automated builds: open TFX/_auto_environment.b
  18. Interesting. Try: place before said line: #pragma function(memmove) If that doesn’t work, just delete the whole memmove() block. There is one built into the compiler and it’s fine, just a little bloated. 1. works for me and is checked in since before I used git (2019-ish), so I can’t find the exact reason right now.
  19. Krycztij


    I’ve been thinking about checking in the compiler and associated tools into the repository. For one, it means that you don’t need Visual Studio (as long as you just want to compile) – just get the current version and it builds. It also means that we can check out any historical version later and don’t have to work around compiler/language changes. Anyway; I share your thoughts on Windows 10 and Visual Studio, but there’s not a lot I can do. I noticed that even though TFXplorer compiles with Clang, you still need to have Visual Studio installed because Clang for Windows is a pure co
  20. Krycztij


    I did make it compile with Clang at one point. Haven’t tested it for some time now, but my other projects (which share the source base) compile with Clang, so I’ll put it on my agenda for the next release!
  21. Krycztij


    Your sacrifice is highly appreciated! Great to see that format again. When I have finally finished moving the TFX stuff to its own DLL, I’d love to get carried away for a few weeks making all these levels accessible with modern rendering
  22. I’m on mikew’s side here. Neither DOS nor Windows 98 supported case-sensitive filenames. It would have been impossible to have two directories q:\projects\tfx3\sh\ENV\RIVER\valfor\S\1\ as well as q:\projects\tfx3\sh\ENV\RIVER\VALfor\S\1\; these are identical from the file system’s point of view. Seems like a style decision of the individual artist.
  23. I hesitated to anwer because I could not see an issue with your code. The memory cleanup explains it pretty well.
  24. False detection. (!ml after virus name indicates Machine Learning, i. e. an educated guess.) Someone should upload the EXE to https://docs.microsoft.com/en-us/windows/security/threat-protection/intelligence/submission-guide in order to fix that.
  25. You’re welcome! Yep, I’ve donated to the Internet Archive because it really is invaluable. Thinking about copying the remaining threads to my site to make them easily searchable … I’m looking forward to write about the other great things you did with TAW, like your 1200-tile wide world!
  • Create New...