diff --git a/src/win32/CMakeLists.txt b/src/win32/CMakeLists.txt
deleted file mode 100644
index 71ce88d0..00000000
--- a/src/win32/CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-file(GLOB SRB2_WIN_SOURCES *.c *.h *.rc)
-
-add_executable(SRB2DD EXCLUDE_FROM_ALL WIN32
- ${SRB2_WIN_SOURCES}
-)
-
-target_compile_definitions(SRB2DD PRIVATE
- -D_WINDOWS
-)
-
-set_target_properties(SRB2DD PROPERTIES OUTPUT_NAME ${SRB2_WIN_EXE_NAME})
-
-target_link_libraries(SRB2DD PRIVATE SRB2Core)
diff --git a/src/win32/Srb2win-vc10.vcxproj b/src/win32/Srb2win-vc10.vcxproj
deleted file mode 100644
index 65500d9b..00000000
--- a/src/win32/Srb2win-vc10.vcxproj
+++ /dev/null
@@ -1,479 +0,0 @@
-
-
-
-
- Debug
- ARM
-
-
- Debug
- ARM64
-
-
- Debug
- Win32
-
-
- Release
- ARM
-
-
- Release
- ARM64
-
-
- Release
- Win32
-
-
- Debug
- x64
-
-
- Release
- x64
-
-
-
- Srb2DD
- {0F554F1D-ED49-4D65-A9A7-F63C57F277BE}
- Win32Proj
- Srb2win
- 10.0.17763.0
-
-
-
- v140
- true
-
-
- true
- true
- v141
-
-
- v140
- false
- true
-
-
- false
- true
- true
- v141
-
-
- v140
- true
-
-
- true
- true
- v141
-
-
- v140
- false
- true
-
-
- false
- true
- true
- v141
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <_ProjectFileVersion>10.0.30319.1
- false
-
-
-
- true
- gdi32.lib;%(AdditionalDependencies)
-
-
- ProgramDatabase
- false
-
-
-
-
- true
- gdi32.lib;%(AdditionalDependencies)
-
-
-
-
- ProgramDatabase
- false
-
-
- gdi32.lib;%(AdditionalDependencies)
-
-
-
-
- gdi32.lib;%(AdditionalDependencies)
-
-
-
-
- gdi32.lib;%(AdditionalDependencies)
-
-
-
-
- gdi32.lib;%(AdditionalDependencies)
-
-
-
-
- gdi32.lib;%(AdditionalDependencies)
-
-
-
-
- gdi32.lib;%(AdditionalDependencies)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
- true
-
-
- true
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {72b01aca-7a1a-4f7b-acef-2607299cf052}
-
-
- {73a5729c-7323-41d4-ab48-8a03c9f81603}
-
-
-
-
-
-
- Document
-
-
- Document
-
-
- Document
-
-
-
-
-
-
diff --git a/src/win32/Srb2win-vc10.vcxproj.filters b/src/win32/Srb2win-vc10.vcxproj.filters
deleted file mode 100644
index e5401d72..00000000
--- a/src/win32/Srb2win-vc10.vcxproj.filters
+++ /dev/null
@@ -1,837 +0,0 @@
-
-
-
-
- {20cba664-c3ef-48f1-85dd-42aafd5345cc}
-
-
- {d3817a65-82f5-4989-9217-e5a7f43380a0}
-
-
- {9c3ed4ae-dbed-4d00-a164-b8bb7fc1710c}
-
-
- {4b8a8fb6-7c84-48c2-85d1-0583e6b8cacd}
-
-
- {1907eee5-0ebf-4325-a2fa-793f089ed2e3}
-
-
- {b9e78a3f-3e2b-4f89-9817-b77c7a26d2aa}
-
-
- {3f336df5-a1d7-4610-9728-4525e42c0abc}
-
-
- {b5090aa0-6645-4091-aa1a-ffc3bf4dc422}
-
-
- {d59e82c9-68e5-44bf-827e-f7bb1676cd6c}
-
-
- {29e746a2-3d91-4b69-af6e-5e03895516b7}
-
-
- {b295d364-61c3-4ebb-9b68-7d6c0bb891be}
-
-
- {ba258ec5-13d7-4083-98bd-c2ee58700b66}
-
-
- {6163f1e5-da5d-4af2-b92c-753452f9e1d0}
-
-
- {077b0966-1151-4afa-a533-120a4c931322}
-
-
- {bded90bc-8019-42b1-ba19-32166743d3e3}
-
-
- {c0ddfdb5-7494-4cca-b2ad-cb048be9cbdf}
-
-
- {d5157f99-43ef-49cc-ad76-658a1168fc0d}
-
-
- {2cedf139-53a1-40ea-b4de-19e9f4505a1f}
-
-
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Hw_Hardware
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- G_Game
-
-
- G_Game
-
-
- F_Frame
-
-
- F_Frame
-
-
- I_Interface
-
-
- I_Interface
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- H_Hud
-
-
- B_Bots
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- S_Sounds
-
-
- W_Wad
-
-
- W_Wad
-
-
- S_Sounds
-
-
- O_Other
-
-
- H_Hud
-
-
- H_Hud
-
-
- I_Interface
-
-
- H_Hud
-
-
- P_Play
-
-
- I_Interface
-
-
- H_Hud
-
-
- R_Rend
-
-
- R_Rend
-
-
- H_Hud
-
-
- D_Doom
-
-
- M_Misc
-
-
-
-
-
-
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Win32app
-
-
- Hw_Hardware
-
-
- Hw_Hardware
-
-
- Hw_Hardware
-
-
- Hw_Hardware
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- BLUA
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- D_Doom
-
-
- G_Game
-
-
- G_Game
-
-
- G_Game
-
-
- F_Frame
-
-
- I_Interface
-
-
- I_Interface
-
-
- I_Interface
-
-
- I_Interface
-
-
- I_Interface
-
-
- I_Interface
-
-
- I_Interface
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- LUA
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- M_Misc
-
-
- H_Hud
-
-
- B_Bots
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- P_Play
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- R_Rend
-
-
- P_Play
-
-
- S_Sounds
-
-
- W_Wad
-
-
- W_Wad
-
-
- I_Interface
-
-
- S_Sounds
-
-
- O_Other
-
-
- I_Interface
-
-
- H_Hud
-
-
- H_Hud
-
-
- I_Interface
-
-
- I_Interface
-
-
- H_Hud
-
-
- P_Play
-
-
- I_Interface
-
-
- A_Asm
-
-
- H_Hud
-
-
- R_Rend
-
-
- R_Rend
-
-
- H_Hud
-
-
- D_Doom
-
-
- O_Other
-
-
-
-
- Win32app
-
-
-
-
- Win32app
-
-
-
-
- A_Asm
-
-
- O_Other
-
-
-
-
- A_Asm
-
-
- A_Asm
-
-
- A_Asm
-
-
-
diff --git a/src/win32/Srb2win-vc9.vcproj b/src/win32/Srb2win-vc9.vcproj
deleted file mode 100644
index cac081ad..00000000
--- a/src/win32/Srb2win-vc9.vcproj
+++ /dev/null
@@ -1,4954 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/win32/Srb2win.dsp b/src/win32/Srb2win.dsp
deleted file mode 100644
index c52873f7..00000000
--- a/src/win32/Srb2win.dsp
+++ /dev/null
@@ -1,1012 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Srb2win" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-
-CFG=Srb2win - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Srb2win.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Srb2win.mak" CFG="Srb2win - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Srb2win - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "Srb2win - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Srb2win - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "..\..\objs\Release"
-# PROP BASE Intermediate_Dir "..\..\objs\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\bin\VC\Release\Win32"
-# PROP Intermediate_Dir "..\..\objs\VC\Release\Win32"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /G5 /W3 /GX /Zi /Ot /Og /Oi /Op /Oy /Ob1 /Gy /I "..\..\libs\libpng-src" /I "..\..\libs\zlib" /D "NDEBUG" /D "_WINDOWS" /D "USEASM" /D "HAVE_PNG" /FR /FD /GF /Gs /GF /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /o "NUL" /win32
-# SUBTRACT MTL /mktyplib203
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo /o"..\..\objs\Release\Srb2win.bsc"
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 dxguid.lib user32.lib gdi32.lib winmm.lib advapi32.lib ws2_32.lib dinput.lib /nologo /subsystem:windows /pdb:"C:\srb2demo2\srb2.pdb" /debug /machine:I386 /out:"C:\srb2demo2\srb2win.exe"
-# SUBTRACT LINK32 /profile /pdb:none /incremental:yes /nodefaultlib
-
-!ELSEIF "$(CFG)" == "Srb2win - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "..\..\objs\Debug"
-# PROP BASE Intermediate_Dir "..\..\objs\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\bin\VC\Debug\Win32"
-# PROP Intermediate_Dir "..\..\objs\VC\Debug\Win32"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /G6 /W4 /Gm /GX /ZI /Od /Op /Oy /I "libs\libpng-src" /I "..\..\libs\libpng-src" /I "..\..\libs\zlib" /D "_DEBUG" /D "_WINDOWS" /D "USEASM" /D "HAVE_PNG" /FAcs /FR /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x40c /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 dxguid.lib user32.lib gdi32.lib winmm.lib advapi32.lib ws2_32.lib dinput.lib /nologo /subsystem:windows /profile /debug /machine:I386 /out:"C:\srb2demo2\srb2debug.exe"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ENDIF
-
-# Begin Target
-
-# Name "Srb2win - Win32 Release"
-# Name "Srb2win - Win32 Debug"
-# Begin Group "Win32app"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\afxres.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\dx_error.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\dx_error.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\fabdxlib.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\fabdxlib.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\filesrch.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\filesrch.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mid2strm.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mid2strm.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\midstuff.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\resource.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Srb2win.rc
-
-!IF "$(CFG)" == "Srb2win - Win32 Release"
-
-# ADD BASE RSC /l 0x40c /i "win32"
-# ADD RSC /l 0x409 /i "win32"
-
-!ELSEIF "$(CFG)" == "Srb2win - Win32 Debug"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_cd.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_dbg.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_dbg.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_dll.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_dll.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_main.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_main.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_net.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_snd.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_sys.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\win_vid.c
-# End Source File
-# End Group
-# Begin Group "A_Asm"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\p5prof.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\tmap.nas
-
-!IF "$(CFG)" == "Srb2win - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Compiling $(InputName).nas with NASM...
-IntDir=.\..\..\objs\VC\Release\Win32
-InputPath=..\tmap.nas
-InputName=tmap
-
-"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath)
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "Srb2win - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Compiling $(InputName).nas with NASM...
-IntDir=.\..\..\objs\VC\Debug\Win32
-InputPath=..\tmap.nas
-InputName=tmap
-
-"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath)
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\tmap_mmx.nas
-
-!IF "$(CFG)" == "Srb2win - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Compiling $(InputName).nas with NASM...
-IntDir=.\..\..\objs\VC\Release\Win32
-InputPath=..\tmap_mmx.nas
-InputName=tmap_mmx
-
-"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath)
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "Srb2win - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Compiling $(InputName).nas with NASM...
-IntDir=.\..\..\objs\VC\Debug\Win32
-InputPath=..\tmap_mmx.nas
-InputName=tmap_mmx
-
-"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath)
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=..\tmap_vc.nas
-
-!IF "$(CFG)" == "Srb2win - Win32 Release"
-
-# Begin Custom Build - Compiling $(InputName).nas with NASM...
-IntDir=.\..\..\objs\VC\Release\Win32
-InputPath=..\tmap_vc.nas
-InputName=tmap_vc
-
-"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath)
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "Srb2win - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Compiling $(InputName).nas with NASM...
-IntDir=.\..\..\objs\VC\Debug\Win32
-InputPath=..\tmap_vc.nas
-InputName=tmap_vc
-
-"$(IntDir)/$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- nasm -g -o $(IntDir)/$(InputName).obj -f win32 $(InputPath)
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "D_Doom"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\comptime.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_clisrv.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_clisrv.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_event.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_main.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_main.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_net.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_net.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_netcmd.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_netcmd.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_netfil.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_netfil.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_player.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_think.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\d_ticcmd.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\dehacked.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\dehacked.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\doomdata.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\doomdef.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\doomstat.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\doomtype.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\z_zone.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\z_zone.h
-# End Source File
-# End Group
-# Begin Group "F_Frame"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\f_finale.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\f_finale.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\f_wipe.c
-# End Source File
-# End Group
-# Begin Group "G_Game"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\g_game.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\g_game.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\g_input.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\g_input.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\g_state.h
-# End Source File
-# End Group
-# Begin Group "H_Hud"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\am_map.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\am_map.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\command.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\command.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\console.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\console.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hu_stuff.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hu_stuff.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\st_stuff.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\st_stuff.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\y_inter.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\y_inter.h
-# End Source File
-# End Group
-# Begin Group "Hw_Hardware"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\hardware\hw3dsdrv.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw3sound.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw3sound.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_bsp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_cache.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_data.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_defs.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_dll.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_draw.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_drv.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_glob.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_light.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_light.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_main.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_main.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_md2.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_md2.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hw_trick.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\hardware\hws_data.h
-# End Source File
-# End Group
-# Begin Group "I_Interface"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\byteptr.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\i_joy.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\i_net.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\i_sound.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\i_system.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\i_tcp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\i_tcp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\i_video.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\keys.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\mserv.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\mserv.h
-# End Source File
-# End Group
-# Begin Group "M_Misc"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\m_argv.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_argv.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_bbox.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_bbox.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_cheat.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_cheat.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_dllist.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_fixed.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_fixed.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_menu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_menu.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_misc.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_misc.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_queue.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_queue.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_random.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_random.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\m_swap.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\string.c
-# End Source File
-# End Group
-# Begin Group "P_Play"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\info.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\info.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_ceilng.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_enemy.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_fab.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_floor.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_inter.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_lights.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_local.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_map.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_maputl.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_maputl.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_mobj.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_mobj.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_polyobj.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_polyobj.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_pspr.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_saveg.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_saveg.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_setup.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_setup.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_sight.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_spec.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_spec.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_telept.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_tick.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_tick.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\p_user.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\tables.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\tables.h
-# End Source File
-# End Group
-# Begin Group "R_Rend"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\r_bsp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_bsp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_data.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_data.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_defs.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_draw.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_draw.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_draw16.c
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_draw8.c
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_local.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_main.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_main.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_plane.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_plane.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_segs.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_segs.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_sky.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_sky.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_splats.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_splats.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_state.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_things.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\r_things.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\screen.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\screen.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\v_video.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\v_video.h
-# End Source File
-# End Group
-# Begin Group "S_Sounds"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\s_sound.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\s_sound.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sounds.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\sounds.h
-# End Source File
-# End Group
-# Begin Group "W_Wad"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\lzf.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\lzf.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\md5.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\md5.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\w_wad.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\w_wad.h
-# End Source File
-# End Group
-# Begin Group "Docs"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\doc\copying
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\doc\faq.txt
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\readme.txt
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\doc\source.txt
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\Srb2win.ico
-# End Source File
-# End Target
-# End Project
diff --git a/src/win32/Srb2win.dsw b/src/win32/Srb2win.dsw
deleted file mode 100644
index f2099814..00000000
--- a/src/win32/Srb2win.dsw
+++ /dev/null
@@ -1,77 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Srb2win"=.\Srb2win.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name libpng
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name zlib
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "libpng"="..\..\libs\libpng-src\projects\visualc6\libpng.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name zlib
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "r_opengl"=..\hardware\r_opengl\r_opengl.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name Srb2win
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "zlib"=..\..\libs\zlib\projects\visualc6\zlib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/src/win32/Srb2win.props b/src/win32/Srb2win.props
deleted file mode 100644
index fa152f0c..00000000
--- a/src/win32/Srb2win.props
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
- HAVE_ZLIB;HAVE_LIBGME;_WINDOWS;%(PreprocessorDefinitions)
-
- _WINDOWS;%(PreprocessorDefinitions)
-
-
-
- dxguid.lib;winmm.lib;dinput8.lib;%(AdditionalDependencies)
-
-
-
-
\ No newline at end of file
diff --git a/src/win32/dx_error.c b/src/win32/dx_error.c
deleted file mode 100644
index 8e14539a..00000000
--- a/src/win32/dx_error.c
+++ /dev/null
@@ -1,276 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright (C) 1998-2000 by DooM Legacy Team.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//-----------------------------------------------------------------------------
-/// \file
-/// \brief DirectX error messages
-/// adapted from DirectX6 sample code
-
-#include
-
-//#define WIN32_LEAN_AND_MEAN
-#define RPC_NO_WINDOWS_H
-#include
-#define DIRECTSOUND_VERSION 0x0600 /* version 6.0 */
-#define DXVERSION_NTCOMPATIBLE 0x0300
-#ifdef _MSC_VER
-#pragma warning(disable : 4201)
-#endif
-#include
-#include
-#include
-
-#include "dx_error.h"
-
-// -----------------
-// DXErrorMessageBox
-// Displays a message box containing the given formatted string.
-// -----------------
-/*
-VOID DXErrorMessageBox (HRESULT error) LPSTR fmt, ...)
-{
- char buff[256];
- va_list args;
-
- va_start(args, fmt);
- wvsprintf(buff, fmt, args);
- va_end(args);
-
- lstrcat(buff, "\r\n");
- MessageBoxA(NULL, buff, "DirectX Error:", MB_ICONEXCLAMATION + MB_OK);
-}*/
-
-
-// ---------------
-// DXErrorToString
-// Returns a pointer to a string describing the given DD, D3D or D3DRM error code.
-// ---------------
-LPCSTR DXErrorToString (HRESULT error)
-{
- switch (error) {
- case DD_OK:
- /* Also includes D3D_OK and D3DRM_OK */
- return "No error.";
- case DDERR_ALREADYINITIALIZED:
- return "This object is already initialized.";
- case DDERR_BLTFASTCANTCLIP:
- return "Return if a clipper object is attached to the source surface passed into a BltFast call.";
- case DDERR_CANNOTATTACHSURFACE:
- return "This surface can not be attached to the requested surface.";
- case DDERR_CANNOTDETACHSURFACE:
- return "This surface can not be detached from the requested surface.";
- case DDERR_CANTCREATEDC:
- return "Windows can not create any more DCs.";
- case DDERR_CANTDUPLICATE:
- return "Can't duplicate primary & 3D surfaces, or surfaces that are implicitly created.";
- case DDERR_CLIPPERISUSINGHWND:
- return "An attempt was made to set a cliplist for a clipper object that is already monitoring an hwnd.";
- case DDERR_COLORKEYNOTSET:
- return "No src color key specified for this operation.";
- case DDERR_CURRENTLYNOTAVAIL:
- return "Support is currently not available.";
- case DDERR_DIRECTDRAWALREADYCREATED:
- return "A DirectDraw object representing this driver has already been created for this process.";
- case DDERR_EXCEPTION:
- return "An exception was encountered while performing the requested operation.";
- case DDERR_EXCLUSIVEMODEALREADYSET:
- return "An attempt was made to set the cooperative level when it was already set to exclusive.";
- case DDERR_GENERIC:
- return "Generic failure.";
- case DDERR_HEIGHTALIGN:
- return "Height of rectangle provided is not a multiple of reqd alignment.";
- case DDERR_HWNDALREADYSET:
- return "The CooperativeLevel HWND has already been set. It can not be reset while the process has surfaces or palettes created.";
- case DDERR_HWNDSUBCLASSED:
- return "HWND used by DirectDraw CooperativeLevel has been subclassed, this prevents DirectDraw from restoring state.";
- case DDERR_IMPLICITLYCREATED:
- return "This surface can not be restored because it is an implicitly created surface.";
- case DDERR_INCOMPATIBLEPRIMARY:
- return "Unable to match primary surface creation request with existing primary surface.";
- case DDERR_INVALIDCAPS:
- return "One or more of the caps bits passed to the callback are incorrect.";
- case DDERR_INVALIDCLIPLIST:
- return "DirectDraw does not support the provided cliplist.";
- case DDERR_INVALIDDIRECTDRAWGUID:
- return "The GUID passed to DirectDrawCreate is not a valid DirectDraw driver identifier.";
- case DDERR_INVALIDMODE:
- return "DirectDraw does not support the requested mode.";
- case DDERR_INVALIDOBJECT:
- return "DirectDraw received a pointer that was an invalid DIRECTDRAW object.";
- case DDERR_INVALIDPARAMS:
- return "One or more of the parameters passed to the function are incorrect.";
- case DDERR_INVALIDPIXELFORMAT:
- return "The pixel format was invalid as specified.";
- case DDERR_INVALIDPOSITION:
- return "Returned when the position of the overlay on the destination is no longer legal for that destination.";
- case DDERR_INVALIDRECT:
- return "Rectangle provided was invalid.";
- case DDERR_LOCKEDSURFACES:
- return "Operation could not be carried out because one or more surfaces are locked.";
- case DDERR_NO3D:
- return "There is no 3D present.";
- case DDERR_NOALPHAHW:
- return "Operation could not be carried out because there is no alpha accleration hardware present or available.";
- case DDERR_NOBLTHW:
- return "No blitter hardware present.";
- case DDERR_NOCLIPLIST:
- return "No cliplist available.";
- case DDERR_NOCLIPPERATTACHED:
- return "No clipper object attached to surface object.";
- case DDERR_NOCOLORCONVHW:
- return "Operation could not be carried out because there is no color conversion hardware present or available.";
- case DDERR_NOCOLORKEY:
- return "Surface doesn't currently have a color key";
- case DDERR_NOCOLORKEYHW:
- return "Operation could not be carried out because there is no hardware support of the destination color key.";
- case DDERR_NOCOOPERATIVELEVELSET:
- return "Create function called without DirectDraw object method SetCooperativeLevel being called.";
- case DDERR_NODC:
- return "No DC was ever created for this surface.";
- case DDERR_NODDROPSHW:
- return "No DirectDraw ROP hardware.";
- case DDERR_NODIRECTDRAWHW:
- return "A hardware-only DirectDraw object creation was attempted but the driver did not support any hardware.";
- case DDERR_NOEMULATION:
- return "Software emulation not available.";
- case DDERR_NOEXCLUSIVEMODE:
- return "Operation requires the application to have exclusive mode but the application does not have exclusive mode.";
- case DDERR_NOFLIPHW:
- return "Flipping visible surfaces is not supported.";
- case DDERR_NOGDI:
- return "There is no GDI present.";
- case DDERR_NOHWND:
- return "Clipper notification requires an HWND or no HWND has previously been set as the CooperativeLevel HWND.";
- case DDERR_NOMIRRORHW:
- return "Operation could not be carried out because there is no hardware present or available.";
- case DDERR_NOOVERLAYDEST:
- return "Returned when GetOverlayPosition is called on an overlay that UpdateOverlay has never been called on to establish a destination.";
- case DDERR_NOOVERLAYHW:
- return "Operation could not be carried out because there is no overlay hardware present or available.";
- case DDERR_NOPALETTEATTACHED:
- return "No palette object attached to this surface.";
- case DDERR_NOPALETTEHW:
- return "No hardware support for 16 or 256 color palettes.";
- case DDERR_NORASTEROPHW:
- return "Operation could not be carried out because there is no appropriate raster op hardware present or available.";
- case DDERR_NOROTATIONHW:
- return "Operation could not be carried out because there is no rotation hardware present or available.";
- case DDERR_NOSTRETCHHW:
- return "Operation could not be carried out because there is no hardware support for stretching.";
- case DDERR_NOT4BITCOLOR:
- return "DirectDrawSurface is not in 4 bit color palette and the requested operation requires 4 bit color palette.";
- case DDERR_NOT4BITCOLORINDEX:
- return "DirectDrawSurface is not in 4 bit color index palette and the requested operation requires 4 bit color index palette.";
- case DDERR_NOT8BITCOLOR:
- return "DirectDrawSurface is not in 8 bit color mode and the requested operation requires 8 bit color.";
- case DDERR_NOTAOVERLAYSURFACE:
- return "Returned when an overlay member is called for a non-overlay surface.";
- case DDERR_NOTEXTUREHW:
- return "Operation could not be carried out because there is no texture mapping hardware present or available.";
- case DDERR_NOTFLIPPABLE:
- return "An attempt has been made to flip a surface that is not flippable.";
- case DDERR_NOTFOUND:
- return "Requested item was not found.";
- case DDERR_NOTLOCKED:
- return "Surface was not locked. An attempt to unlock a surface that was not locked at all, or by this process, has been attempted.";
- case DDERR_NOTPALETTIZED:
- return "The surface being used is not a palette-based surface.";
- case DDERR_NOVSYNCHW:
- return "Operation could not be carried out because there is no hardware support for vertical blank synchronized operations.";
- case DDERR_NOZBUFFERHW:
- return "Operation could not be carried out because there is no hardware support for zbuffer blitting.";
- case DDERR_NOZOVERLAYHW:
- return "Overlay surfaces could not be z layered based on their BltOrder because the hardware does not support z layering of overlays.";
- case DDERR_OUTOFCAPS:
- return "The hardware needed for the requested operation has already been allocated.";
- case DDERR_OUTOFMEMORY:
- return "There is not enough memory to perform the operation.";
- case DDERR_OUTOFVIDEOMEMORY:
- return "DirectDraw does not have enough memory to perform the operation.";
- case DDERR_OVERLAYCANTCLIP:
- return "The hardware does not support clipped overlays.";
- case DDERR_OVERLAYCOLORKEYONLYONEACTIVE:
- return "Can only have ony color key active at one time for overlays.";
- case DDERR_OVERLAYNOTVISIBLE:
- return "Returned when GetOverlayPosition is called on a hidden overlay.";
- case DDERR_PALETTEBUSY:
- return "Access to this palette is being refused because the palette is already locked by another thread.";
- case DDERR_PRIMARYSURFACEALREADYEXISTS:
- return "This process already has created a primary surface.";
- case DDERR_REGIONTOOSMALL:
- return "Region passed to Clipper::GetClipList is too small.";
- case DDERR_SURFACEALREADYATTACHED:
- return "This surface is already attached to the surface it is being attached to.";
- case DDERR_SURFACEALREADYDEPENDENT:
- return "This surface is already a dependency of the surface it is being made a dependency of.";
- case DDERR_SURFACEBUSY:
- return "Access to this surface is being refused because the surface is already locked by another thread.";
- case DDERR_SURFACEISOBSCURED:
- return "Access to surface refused because the surface is obscured.";
- case DDERR_SURFACELOST:
- return "Access to this surface is being refused because the surface memory is gone. The DirectDrawSurface object representing this surface should have Restore called on it.";
- case DDERR_SURFACENOTATTACHED:
- return "The requested surface is not attached.";
- case DDERR_TOOBIGHEIGHT:
- return "Height requested by DirectDraw is too large.";
- case DDERR_TOOBIGSIZE:
- return "Size requested by DirectDraw is too large, but the individual height and width are OK.";
- case DDERR_TOOBIGWIDTH:
- return "Width requested by DirectDraw is too large.";
- case DDERR_UNSUPPORTED:
- return "Function call not supported.";
- case DDERR_UNSUPPORTEDFORMAT:
- return "FOURCC format requested is unsupported by DirectDraw.";
- case DDERR_UNSUPPORTEDMASK:
- return "Bitmask in the pixel format requested is unsupported by DirectDraw.";
- case DDERR_VERTICALBLANKINPROGRESS:
- return "Vertical blank is in progress.";
- case DDERR_WASSTILLDRAWING:
- return "Informs DirectDraw that the previous Blt which is transfering information to or from this Surface is incomplete.";
- case DDERR_WRONGMODE:
- return "This surface can not be restored because it was created in a different mode.";
- case DDERR_XALIGN:
- return "Rectangle provided was not horizontally aligned on required boundary.";
-
- //
- // DirectSound errors
- //
- case DSERR_ALLOCATED:
- return "The request failed because resources, such as a priority level, were already in use by another caller.";
- case DSERR_ALREADYINITIALIZED:
- return "The object is already initialized.";
- case DSERR_BADFORMAT:
- return "The specified wave format is not supported.";
- case DSERR_BUFFERLOST:
- return "The buffer memory has been lost and must be restored.";
- case DSERR_CONTROLUNAVAIL:
- return "The control (volume, pan, and so forth) requested by the caller is not available.";
- case DSERR_INVALIDCALL:
- return "This function is not valid for the current state of this object.";
- case DSERR_NOAGGREGATION:
- return "The object does not support aggregation.";
- case DSERR_NODRIVER:
- return "No sound driver is available for use.";
- case DSERR_NOINTERFACE:
- return "The requested COM interface is not available.";
- case DSERR_OTHERAPPHASPRIO:
- return "Another application has a higher priority level, preventing this call from succeeding";
- case DSERR_PRIOLEVELNEEDED:
- return "The caller does not have the priority level required for the function to succeed.";
- case DSERR_UNINITIALIZED:
- return "The IDirectSound::Initialize method has not been called or has not been called successfully before other methods were called.";
- default:
- return "Unrecognized error value.";
- }
-}
diff --git a/src/win32/dx_error.h b/src/win32/dx_error.h
deleted file mode 100644
index 3af4220d..00000000
--- a/src/win32/dx_error.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright (C) 1998-2000 by DooM Legacy Team.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//-----------------------------------------------------------------------------
-/// \file
-/// \brief transform an unreadable DirectX error code
-/// into a meaningful error message.
-
-#ifndef __DX_ERROR_H__
-#define __DX_ERROR_H__
-
-//#define WIN32_LEAN_AND_MEAN
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// Displays a message box containing the given formatted string.
-//VOID DXErrorMessageBox (LPSTR fmt, ...);
-
-// Returns a pointer to a string describing the given DD, D3D or D3DRM error code.
-LPCSTR DXErrorToString (HRESULT error);
-
-#ifdef __cplusplus
-};
-#endif
-#endif // __DX_ERROR_H__
diff --git a/src/win32/fabdxlib.c b/src/win32/fabdxlib.c
deleted file mode 100644
index 45ec5d0d..00000000
--- a/src/win32/fabdxlib.c
+++ /dev/null
@@ -1,677 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright (C) 1998-2000 by DooM Legacy Team.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-//-----------------------------------------------------------------------------
-/// \file
-/// \brief faB's DirectX library v1.0
-/// - converted to C for Doom Legacy
-
-#include "../doomdef.h"
-
-#ifdef _WINDOWS
-
-//#define WIN32_LEAN_AND_MEAN
-#define RPC_NO_WINDOWS_H
-#include
-#include
-#include "../i_system.h"
-#include "dx_error.h"
-
-#include "fabdxlib.h"
-
-#define NT4COMPAT //always defined, always compatible
-
-
-// globals
-
-IDirectDraw2* DDr2 = NULL;
-IDirectDrawSurface* ScreenReal = NULL; // DirectDraw primary surface
-IDirectDrawSurface* ScreenVirtual = NULL; // DirectDraw back surface
-IDirectDrawPalette* DDPalette = NULL; // The primary surface palette
-static IDirectDrawClipper *windclip = NULL; // clipper for windowed mode
-
-BOOL bAppFullScreen; // true for fullscreen exclusive mode,
-
-int windowPosX = 0; // current position in windowed mode
-int windowPosY = 0;
-
-int ScreenWidth;
-int ScreenHeight;
-BOOL ScreenLocked; // Screen surface is being locked
-int ScreenPitch; // offset from one line to the next
-LPBYTE ScreenPtr; // memory of the surface
-
-
-//
-// CreateNewSurface
-//
-static inline IDirectDrawSurface* CreateNewSurface(int dwWidth,
- int dwHeight,
- int dwSurfaceCaps)
-{
- DDSURFACEDESC ddsd;
- HRESULT hr;
- LPDIRECTDRAWSURFACE psurf;
-
- ZeroMemory(&ddsd, sizeof (ddsd));
- ddsd.dwSize = sizeof (ddsd);
- ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT |DDSD_WIDTH;
-
- ddsd.ddsCaps.dwCaps = dwSurfaceCaps;
-
- ddsd.dwHeight = dwHeight;
- ddsd.dwWidth = dwWidth;
-
- hr = IDirectDraw2_CreateSurface (DDr2, &ddsd, &psurf, NULL);
-
- if (hr == DD_OK)
- {
- //DDCOLORKEY ddck;
- IDirectDrawSurface_Restore(psurf);
-
- //hr = IDirectDrawSurface_GetColorKey(DDCKEY_SRCBLT, &ddck);
- //psurf->SetColorKey(DDCKEY_SRCBLT, &ddck);
- }
- else
- psurf = NULL;
-
- return psurf;
-}
-
-//
-// wow! from 320x200x8 up to 1600x1200x32 thanks Banshee! :)
-//
-static HRESULT WINAPI myEnumModesCallback (LPDDSURFACEDESC surf, LPVOID lpContext)
-{
- APPENUMMODESCALLBACK pfnContext = lpContext;
-
- if (pfnContext) pfnContext(surf->dwWidth,
- surf->dwHeight,surf->ddpfPixelFormat.
-#ifdef DUMMYUNIONNAMEN
- DUMMYUNIONNAMEN(1).
-#endif
- dwRGBBitCount
- );
-
- /*I_OutputMsg("%dx%dx%d bpp %d refresh\n",
- surf->dwWidth,
- surf->dwHeight,
- surf->ddpfPixelFormat.dwRGBBitCount,
- surf->dwRefreshRate);*/
-
- return DDENUMRET_OK;
-}
-
-
-//
-// Application call here to enumerate display modes
-//
-BOOL EnumDirectDrawDisplayModes (APPENUMMODESCALLBACK appFunc)
-{
- LPVOID lpappFunc = appFunc;
-
- if (DDr2 == NULL)
- return FALSE;
-
- // enumerate display modes
- // Carl: DirectX 3.x apparently does not support VGA modes. Who cares. :)
- // faB: removed DDEDM_REFRESHRATES, detects too many modes, plus we don't care of refresh rate.
- if (bDX0300)
- IDirectDraw2_EnumDisplayModes (DDr2, 0 /*| DDEDM_REFRESHRATES*/,
- NULL, lpappFunc, myEnumModesCallback);
- else
- IDirectDraw2_EnumDisplayModes (DDr2, DDEDM_STANDARDVGAMODES /*| DDEDM_REFRESHRATES*/,
- NULL, lpappFunc, myEnumModesCallback);
- return TRUE;
-}
-
-static HINSTANCE DDrawDLL = NULL;
-typedef HRESULT(WINAPI *DDCreate)(GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter);
-static DDCreate pfnDirectDrawCreate = NULL;
-
-static inline BOOL LoadDirectDraw(VOID)
-{
- // load ddraw.dll
- DDrawDLL = LoadLibraryA("DDRAW.DLL");
- if (DDrawDLL == NULL)
- return false;
- pfnDirectDrawCreate = (DDCreate)(LPVOID)GetProcAddress(DDrawDLL, "DirectDrawCreate");
- if (pfnDirectDrawCreate == NULL)
- return false;
- return true;
-}
-
-static inline VOID UnLoadDirectDraw(VOID)
-{
- if (!DDrawDLL)
- return;
- FreeLibrary(DDrawDLL);
- pfnDirectDrawCreate = NULL;
- DDrawDLL = NULL;
-}
-
-//
-// Create the DirectDraw object for later
-//
-BOOL CreateDirectDrawInstance (VOID)
-{
- HRESULT hr;
- IDirectDraw* DDr;
- IDirectDraw** rp = &DDr;
- IDirectDraw2** rp2 = &DDr2;
- LPVOID *tp = (LPVOID *)rp2;
-
- if (!LoadDirectDraw())
- return FALSE;
- //
- // create an instance of DirectDraw object
- //
- if (FAILED(hr = pfnDirectDrawCreate(NULL, rp, NULL)))
- I_Error("DirectDrawCreate FAILED: %s", DXErrorToString(hr));
-
- // change interface to IDirectDraw2
- if (FAILED(hr = IDirectDraw_QueryInterface(DDr, &IID_IDirectDraw2, tp)))
- I_Error("Failed to query DirectDraw2 interface: %s", DXErrorToString(hr));
-
- // release the interface we don't need
- IDirectDraw_Release (DDr);
- return TRUE;
-}
-
-
-//
-// - returns true if DirectDraw was initialized properly
-//
-int InitDirectDrawe (HWND appWin, int width, int height, int bpp, int fullScr)
-{
- DDSURFACEDESC ddsd; // DirectDraw surface description for allocating
- DDSCAPS ddscaps;
- HRESULT ddrval;
-
- DWORD dwStyle;
- RECT rect;
-
- // enumerate directdraw devices
- //if (FAILED(DirectDrawEnumerate (myEnumDDDevicesCallback, NULL)))
- // I_Error("Error with DirectDrawEnumerate");
-
- if (!DDr2)
- CreateDirectDrawInstance();
-
- // remember what screen mode we are in
- bAppFullScreen = fullScr;
- ScreenHeight = height;
- ScreenWidth = width;
-
- if (bAppFullScreen)
- {
- // Change window attributes
- dwStyle = WS_POPUP | WS_VISIBLE;
- SetWindowLong (appWin, GWL_STYLE, dwStyle);
- SetWindowPos(appWin, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE |
- SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER);
-
- // Get exclusive mode
- ddrval = IDirectDraw2_SetCooperativeLevel(DDr2, appWin, DDSCL_EXCLUSIVE |
- DDSCL_FULLSCREEN |
- DDSCL_ALLOWREBOOT);
- if (ddrval != DD_OK)
- I_Error("SetCooperativeLevel FAILED: %s\n", DXErrorToString(ddrval));
-
- // Switch from windows desktop to fullscreen
-
-#ifdef NT4COMPAT
- ddrval = IDirectDraw2_SetDisplayMode(DDr2, width, height, bpp, 0, 0);
-#else
- ddrval = IDirectDraw2_SetDisplayMode(DDr2, width, height, bpp, 0, DDSDM_STANDARDVGAMODE);
-#endif
- if (ddrval != DD_OK)
- I_Error("SetDisplayMode FAILED: %s\n", DXErrorToString(ddrval));
-
- // This is not really needed, except in certain cases. One case
- // is while using MFC. When the desktop is initally at 16bpp, a mode
- // switch to 8bpp somehow causes the MFC window to not fully initialize
- // and a CreateSurface will fail with DDERR_NOEXCLUSIVEMODE. This will
- // ensure that the window is initialized properly after a mode switch.
-
- ShowWindow(appWin, SW_SHOW);
-
- // Create the primary surface with 1 back buffer. Always zero the
- // DDSURFACEDESC structure and set the dwSize member!
-
- ZeroMemory(&ddsd, sizeof (ddsd));
- ddsd.dwSize = sizeof (ddsd);
- ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
- ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
-
- // for fullscreen we use page flipping, for windowed mode, we blit the hidden surface to
- // the visible surface, in both cases we have a visible (or 'real') surface, and a hidden
- // (or 'virtual', or 'backbuffer') surface.
- ddsd.dwBackBufferCount = 2;
-
- ddrval = IDirectDraw2_CreateSurface(DDr2,&ddsd, &ScreenReal, NULL);
- if (ddrval != DD_OK)
- I_Error("CreateSurface Primary Screen FAILED");
-
- // Get a pointer to the back buffer
-
- ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
- ddrval = IDirectDrawSurface_GetAttachedSurface(ScreenReal,&ddscaps, &ScreenVirtual);
- if (ddrval != DD_OK)
- I_Error("GetAttachedSurface FAILED");
- }
- else
- {
- rect.top = 0;
- rect.left = 0;
- rect.bottom = height;
- rect.right = width;
-
- // Change window attributes
-
- dwStyle = GetWindowStyle(appWin);
- dwStyle &= ~WS_POPUP;
- dwStyle |= WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION;
-
- SetWindowLong(appWin, GWL_STYLE, dwStyle);
-
- // Resize the window so that the client area is the requested width/height
-
- AdjustWindowRectEx(&rect, GetWindowStyle(appWin), GetMenu(appWin) != NULL,
- GetWindowExStyle(appWin));
-
- // Just in case the window was moved off the visible area of the
- // screen.
-
- SetWindowPos(appWin, NULL, 0, 0, rect.right-rect.left,
- rect.bottom-rect.top, SWP_NOMOVE | SWP_NOZORDER |
- SWP_NOACTIVATE);
-
- SetWindowPos(appWin, HWND_NOTOPMOST, 0, 0, 0, 0,
- SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
-
- // Exclusive mode is normal since it's in windowed mode and needs
- // to cooperate with GDI
-
- ddrval = IDirectDraw2_SetCooperativeLevel(DDr2,appWin, DDSCL_NORMAL);
- if (ddrval != DD_OK)
- I_Error("SetCooperativeLevel FAILED");
-
- // Always zero the DDSURFACEDESC structure and set the dwSize member!
-
- ZeroMemory(&ddsd, sizeof (ddsd));
- ddsd.dwSize = sizeof (ddsd);
- ddsd.dwFlags = DDSD_CAPS;
- ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
-
- // Create the primary surface
-
- ddrval = IDirectDraw2_CreateSurface(DDr2,&ddsd, &ScreenReal, NULL);
- if (ddrval != DD_OK)
- I_Error("CreateSurface Primary Screen FAILED");
-
- // Create a back buffer for offscreen rendering, this will be used to
- // blt to the primary
-
- ScreenVirtual = CreateNewSurface(width, height, DDSCAPS_OFFSCREENPLAIN |
- DDSCAPS_SYSTEMMEMORY);
- if (ScreenVirtual == NULL)
- I_Error("CreateSurface Secondary Screen FAILED");
-
- /// \todo get the desktop bit depth, and build a lookup table
- /// for quick conversions of 8bit color indexes 0-255 to desktop colors
- /// eg: 256 entries of equivalent of palette colors 0-255 in 15,16,24,32 bit format
- /// when blit virtual to real, convert pixels through lookup table..
-
- // Use a clipper object for clipping when in windowed mode
- // (make sure our drawing doesn't affect other windows)
-
- ddrval = IDirectDraw2_CreateClipper (DDr2, 0, &windclip, 0);
- if (ddrval != DD_OK)
- I_Error("CreateClipper FAILED");
-
- // Associate the clipper with the window.
- ddrval = IDirectDrawClipper_SetHWnd (windclip,0, appWin);
- if (ddrval != DD_OK)
- I_Error("Clipper -> SetHWnd FAILED");
-
- // Attach the clipper to the surface.
- ddrval = IDirectDrawSurface_SetClipper (ScreenReal,windclip);
- if (ddrval != DD_OK)
- I_Error("PrimaryScreen -> SetClipperClipper FAILED");
- }
-
- return TRUE;
-}
-
-
-//
-// Free all memory
-//
-VOID CloseDirectDraw (VOID)
-{
- ReleaseChtuff();
- if (DDr2)
- {
- IDirectDraw2_Release(DDr2);
- DDr2 = NULL;
- }
- UnLoadDirectDraw();
-}
-
-
-//
-// Release DirectDraw stuff before display mode change
-//
-VOID ReleaseChtuff (VOID)
-{
- if (!DDr2)
- return;
- if (windclip)
- {
- IDirectDrawClipper_Release(windclip);
- windclip = NULL;
- }
- if (DDPalette)
- {
- IDirectDrawPalette_Release(DDPalette);
- DDPalette = NULL;
- }
- // If the app is fullscreen, the back buffer is attached to the
- // primary. Releasing the primary buffer will also release any
- // attached buffers, so explicitly releasing the back buffer is not
- // necessary.
-
- if (!bAppFullScreen && ScreenVirtual)
- {
- IDirectDrawSurface_Release(ScreenVirtual); // release hidden surface
- ScreenVirtual = NULL;
- }
- if (ScreenReal)
- {
- IDirectDrawSurface_Release(ScreenReal); // and attached backbuffers for bAppFullScreen mode
- ScreenReal = NULL;
- }
-}
-
-
-//
-// Clear the surface to color
-//
-VOID ClearSurface(IDirectDrawSurface* surface, int color)
-{
- DDBLTFX ddbltfx;
-
- // Use the blter to do a color fill to clear the back buffer
- ddbltfx.dwSize = sizeof (ddbltfx);
- ddbltfx.
-#ifdef DUMMYUNIONNAMEN
- DUMMYUNIONNAMEN(5).
-#endif
- dwFillColor = color;
- IDirectDrawSurface_Blt(surface,NULL, NULL, NULL, DDBLT_COLORFILL | DDBLT_WAIT, &ddbltfx);
-
-}
-
-//
-// Flip the real page with virtual page
-// - in bAppFullScreen mode, do page flipping
-// - in windowed mode, copy the hidden surface to the visible surface
-//
-// waitflip : if not 0, wait for page flip to end
-BOOL ScreenFlip(int waitflip)
-{
- HRESULT hr;
- RECT rect;
-
- if (bAppFullScreen)
- {
- //hr = IDirectDrawSurface_GetFlipStatus (ScreenReal, DDGFS_);
-
- // In full-screen exclusive mode, do a hardware flip.
- hr = IDirectDrawSurface_Flip(ScreenReal, NULL, DDFLIP_WAIT | (waitflip ? 0 : DDFLIP_NOVSYNC)); //return immediately
-
- // If the surface was lost, restore it.
- if (hr == DDERR_SURFACELOST)
- {
- IDirectDrawSurface_Restore(ScreenReal);
-
- // The restore worked, so try the flip again.
- hr = IDirectDrawSurface_Flip(ScreenReal, 0, DDFLIP_WAIT | (waitflip ? 0 : DDFLIP_NOVSYNC));
- }
- }
- else
- {
- rect.left = windowPosX;
- rect.top = windowPosY;
- rect.right = windowPosX + ScreenWidth - 1;
- rect.bottom = windowPosY + ScreenHeight - 1;
-
- // Copy the back buffer to front.
- hr = IDirectDrawSurface_Blt(ScreenReal, &rect, ScreenVirtual, 0, DDBLT_WAIT, 0);
-
- if (hr != DD_OK)
- {
- // If the surfaces were lost, restore them.
- if (IDirectDrawSurface_IsLost(ScreenReal) == DDERR_SURFACELOST)
- IDirectDrawSurface_Restore(ScreenReal);
-
- if (IDirectDrawSurface_IsLost(ScreenVirtual) == DDERR_SURFACELOST)
- IDirectDrawSurface_Restore(ScreenVirtual);
-
- // Retry the copy.
- hr = IDirectDrawSurface_Blt(ScreenReal,&rect, ScreenVirtual, 0, DDBLT_WAIT, 0);
- }
- }
-
- if (hr != DD_OK)
- I_Error("ScreenFlip() : couldn't Flip surfaces because %s", DXErrorToString(hr));
-
- return FALSE;
-}
-
-//
-// Print a text to the surface
-//
-VOID TextPrint(int x, int y, LPCSTR message)
-{
- HRESULT hr;
- HDC hdc = NULL;
-
- // Get the device context handle.
- hr = IDirectDrawSurface_GetDC(ScreenVirtual,&hdc);
- if (hr != DD_OK)
- return;
-
- // Write the message.
- SetBkMode(hdc, TRANSPARENT);
- SetTextColor(hdc, RGB(255, 255, 255));
- TextOutA(hdc, x, y, message, (int)strlen(message));
-
- // Release the device context.
- hr = IDirectDrawSurface_ReleaseDC(ScreenVirtual,hdc);
-}
-
-//
-// Lock surface before multiple drawings by hand, for speed
-//
-boolean LockScreen(VOID)
-{
- DDSURFACEDESC ddsd;
- HRESULT ddrval;
-
- ZeroMemory(&ddsd, sizeof (ddsd));
- ddsd.dwSize = sizeof (ddsd);
-
- // attempt to Lock the surface
- ddrval = IDirectDrawSurface_Lock(ScreenVirtual, NULL, &ddsd, DDLOCK_WAIT, NULL);
-
- // Always, always check for errors with DirectX!
- // If the surface was lost, restore it.
- if (ddrval == DDERR_SURFACELOST)
- {
- ddrval = IDirectDrawSurface_Restore(ScreenReal);
-
- // now retry to get the lock
- ddrval = IDirectDrawSurface_Lock(ScreenVirtual, NULL, &ddsd, DDLOCK_WAIT, NULL);
- }
-
- if (ddrval == DD_OK)
- {
- ScreenLocked = TRUE;
- ScreenPtr = (LPBYTE)ddsd.lpSurface;
- ScreenPitch = ddsd.
-#ifdef DUMMYUNIONNAMEN
- DUMMYUNIONNAMEN(1).
-#endif
- lPitch;
- }
- else
- {
- ScreenLocked = FALSE;
- ScreenPtr = NULL;
- ScreenPitch = 0;
- //I_Error("LockScreen() : couldn't restore the surface.");
- return false;
- }
- return true;
-}
-
-//
-// Unlock surface
-//
-VOID UnlockScreen(VOID)
-{
- if (DD_OK != IDirectDrawSurface_Unlock(ScreenVirtual,NULL))
- I_Error("Couldn't UnLock the renderer!");
-
- ScreenLocked = FALSE;
- ScreenPtr = NULL;
- ScreenPitch = 0;
-}
-
-// Blit virtual screen to real screen
-//faB: note: testing 14/03/1999, see if it is faster than memcopy of virtual to
-/*
-static LPDIRECTDRAWSURFACE lpDDS = NULL;
-VOID BlitScreen(VOID)
-{
- HRESULT hr;
-
- if (!lpDDS)
- I_Error("lpDDS NULL");
-
- hr = IDirectDrawSurface_BltFast(ScreenVirtual,
- 0, 0, // Upper left xy of destination
- lpDDS, // Source surface
- NULL, // Source rectangle = entire surface
- DDBLTFAST_WAIT | DDBLTFAST_NOCOLORKEY);
- if (FAILED(hr))
- I_Error("BltFast FAILED");
-}
-
-VOID MakeScreen(int width, int height, BYTE* lpSurface)
-{
- HRESULT hr;
- DDSURFACEDESC ddsd;
-
- // Initialize the surface description.
- ZeroMemory (&ddsd, sizeof ddsd);
- ZeroMemory (&ddsd.ddpfPixelFormat, sizeof (DDPIXELFORMAT));
- ddsd.dwSize = sizeof ddsd;
- ddsd.dwFlags = DDSD_WIDTH | DDSD_HEIGHT | //DDSD_LPSURFACE |
- DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_CAPS;
- ddsd.dwWidth = width;
- ddsd.dwHeight= height;
- ddsd.lPitch = width;
- ddsd.lpSurface = lpSurface;
- ddsd.ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY | DDSCAPS_OFFSCREENPLAIN;
-
- // Set up the pixel format for 8-bit
- ddsd.ddpfPixelFormat.dwSize = sizeof (DDPIXELFORMAT);
- ddsd.ddpfPixelFormat.dwFlags= DDPF_RGB | DDPF_PALETTEINDEXED8;
- ddsd.ddpfPixelFormat.dwRGBBitCount = 8;
-
- //
- ddsd.ddpfPixelFormat.dwRGBBitCount = (DWORD)DEPTH*8;
- ddsd.ddpfPixelFormat.dwRBitMask = 0x00FF0000;
- ddsd.ddpfPixelFormat.dwGBitMask = 0x0000FF00;
- ddsd.ddpfPixelFormat.dwBBitMask = 0x000000FF;
-
- // Create the surface
- hr = IDirectDraw2_CreateSurface(DDr2, &ddsd, &lpDDS, NULL);
- if (FAILED(hr))
- I_Error("MakeScreen FAILED: %s",DDError(hr));
- //ddsd.lpSurface = lpSurface;
-}
-*/
-
-//
-// Create a palette object
-//
-VOID CreateDDPalette (PALETTEENTRY* colorTable)
-{
- HRESULT ddrval;
- ddrval = IDirectDraw2_CreatePalette(DDr2,DDPCAPS_8BIT|DDPCAPS_ALLOW256, colorTable, &DDPalette, NULL);
- if (ddrval != DD_OK)
- I_Error("couldn't CreatePalette");
-};
-
-
-//
-// Free the palette object
-//
-VOID DestroyDDPalette (VOID)
-{
- if (DDPalette)
- {
- IDirectDrawPalette_Release(DDPalette);
- DDPalette = NULL;
- }
-}
-
-//
-// Set a a full palette of 256 PALETTEENTRY entries
-//
-VOID SetDDPalette(PALETTEENTRY* pal)
-{
- // create palette first time
- if (DDPalette == NULL)
- CreateDDPalette(pal);
- else
- IDirectDrawPalette_SetEntries(DDPalette, 0, 0, 256, pal);
- // setting the same palette to the same surface again does not increase
- // the reference count
- IDirectDrawSurface_SetPalette(ScreenReal, DDPalette);
-}
-
-//
-// Wait for vsync, gross
-//
-VOID WaitVbl(VOID)
-{
- IDirectDraw2_WaitForVerticalBlank(DDr2, DDWAITVB_BLOCKBEGIN, NULL);
-}
-
-
-//
-// Restore the palette. Useful when we regain focus.
-//
-VOID RestoreDDPalette(VOID)
-{
- if (DDPalette)
- IDirectDrawSurface_SetPalette(ScreenReal, DDPalette);
-}
-#endif
diff --git a/src/win32/fabdxlib.h b/src/win32/fabdxlib.h
deleted file mode 100644
index 2836b795..00000000
--- a/src/win32/fabdxlib.h
+++ /dev/null
@@ -1,82 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright (C) 1998-2000 by DooM Legacy Team.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//-----------------------------------------------------------------------------
-/// \file
-/// \brief faB's DirectX library v1.0
-
-#ifndef _H_FABDXLIB_
-#define _H_FABDXLIB_
-
-//#define WIN32_LEAN_AND_MEAN
-#define RPC_NO_WINDOWS_H
-#include
-#ifdef __MINGW32__
-//#define NONAMELESSUNION
-#endif
-#ifdef _MSC_VER
-#pragma warning(disable : 4201)
-#endif
-#include
-#if (defined (DIRECTDRAW_VERSION) && (DIRECTDRAW_VERSION >= 0x0700))
-#undef DUMMYUNIONNAMEN
-#endif
-// format of function in app called with width,height
-typedef BOOL (*APPENUMMODESCALLBACK)(int width, int height, int bpp);
-
-
-// globals
-extern IDirectDraw2* DDr2;
-extern IDirectDrawSurface* ScreenReal;
-extern IDirectDrawSurface* ScreenVirtual;
-extern IDirectDrawPalette* DDPalette;
-
-extern BOOL bAppFullScreen; // main code might need this to know the current
- // fullscreen or windowed state
-
-extern int windowPosX; // current position in windowed mode
-extern int windowPosY;
-
-extern int ScreenWidth;
-extern int ScreenHeight;
-extern BOOL ScreenLocked; // Screen surface is being locked
-extern int ScreenPitch; // offset from one line to the next
-extern LPBYTE ScreenPtr; // memory of the surface
-
-extern BOOL bDX0300;
-
-BOOL EnumDirectDrawDisplayModes (APPENUMMODESCALLBACK appFunc);
-BOOL CreateDirectDrawInstance (VOID);
-
-int InitDirectDrawe (HWND appWin, int width, int height, int bpp, int fullScr);
-VOID CloseDirectDraw (VOID);
-
-VOID ReleaseChtuff (VOID);
-
-VOID ClearSurface (IDirectDrawSurface* surface, int color);
-BOOL ScreenFlip (int wait);
-VOID TextPrint (int x, int y, LPCSTR message);
-
-VOID CreateDDPalette (PALETTEENTRY* colorTable);
-VOID DestroyDDPalette (VOID);
-VOID SetDDPalette (PALETTEENTRY* pal);
-VOID RestoreDDPalette(VOID);
-
-VOID WaitVbl (VOID);
-
-boolean LockScreen (VOID);
-VOID UnlockScreen (VOID);
-
-
-#endif /* _H_FABDXLIB_ */
diff --git a/src/win32/win_cd.c b/src/win32/win_cd.c
deleted file mode 100644
index 2586b844..00000000
--- a/src/win32/win_cd.c
+++ /dev/null
@@ -1,539 +0,0 @@
-// Emacs style mode select -*- C++ -*-
-//-----------------------------------------------------------------------------
-//
-// Copyright (C) 1998-2000 by DooM Legacy Team.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//-----------------------------------------------------------------------------
-/// \file
-/// \brief cd music interface (uses MCI).
-
-#include "../doomdef.h"
-#include "../doomstat.h"
-#ifdef _WINDOWS
-#include "win_main.h"
-#include
-
-#include "../command.h"
-#include "../doomtype.h"
-#include "../i_sound.h"
-#include "../i_system.h"
-
-#include "../s_sound.h"
-
-#define MAX_CD_TRACKS 255
-
-typedef struct {
- BOOL IsAudio;
- DWORD Start, End;
- DWORD Length; // minutes
-} CDTrack;
-
-// -------
-// private
-// -------
-static CDTrack m_nTracks[MAX_CD_TRACKS];
-static int m_nTracksCount; // up to MAX_CD_TRACKS
-static MCI_STATUS_PARMS m_MCIStatus;
-static MCI_OPEN_PARMS m_MCIOpen;
-
-// ------
-// protos
-// ------
-static void Command_Cd_f (void);
-
-
-// -------------------
-// MCIErrorMessageBox
-// Retrieve error message corresponding to return value from
-// mciSendCommand() or mciSenString()
-// -------------------
-static VOID MCIErrorMessageBox (MCIERROR iErrorCode)
-{
- char szErrorText[128];
- if (!mciGetErrorStringA (iErrorCode, szErrorText, sizeof (szErrorText)))
- wsprintfA(szErrorText,"MCI CD Audio Unknown Error #%lu\n", iErrorCode);
- I_OutputMsg("%s", szErrorText);
- /*MessageBox (GetActiveWindow(), szTemp+1, "LEGACY",
- MB_OK | MB_ICONSTOP);*/
-}
-
-
-// --------
-// CD_Reset
-// --------
-static VOID CD_Reset (VOID)
-{
- // no win32 equivalent
- //faB: for DOS, some odd drivers like to be reset sometimes.. useless in MCI I guess
-}
-
-
-// ----------------
-// CD_ReadTrackInfo
-// Read in number of tracks, and length of each track in minutes/seconds
-// returns true if error
-// ----------------
-static BOOL CD_ReadTrackInfo(VOID)
-{
- UINT nTrackLength;
- INT i;
- MCIERROR iErr;
-
- m_nTracksCount = 0;
-
- m_MCIStatus.dwItem = MCI_STATUS_NUMBER_OF_TRACKS;
- iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_STATUS, MCI_STATUS_ITEM|MCI_WAIT, (DWORD_PTR)&m_MCIStatus);
- if (iErr)
- {
- MCIErrorMessageBox (iErr);
- return FALSE;
- }
- m_nTracksCount = (int)m_MCIStatus.dwReturn;
- if (m_nTracksCount > MAX_CD_TRACKS)
- m_nTracksCount = MAX_CD_TRACKS;
-
- for (i = 0; i < m_nTracksCount; i++)
- {
- m_MCIStatus.dwTrack = (DWORD)(i+1);
- m_MCIStatus.dwItem = MCI_STATUS_LENGTH;
- iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_STATUS, MCI_TRACK|MCI_STATUS_ITEM|MCI_WAIT, (DWORD_PTR)&m_MCIStatus);
- if (iErr)
- {
- MCIErrorMessageBox (iErr);
- return FALSE;
- }
- nTrackLength = (DWORD)(MCI_MSF_MINUTE(m_MCIStatus.dwReturn)*60 + MCI_MSF_SECOND(m_MCIStatus.dwReturn));
- m_nTracks[i].Length = nTrackLength;
-
- m_MCIStatus.dwItem = MCI_CDA_STATUS_TYPE_TRACK;
- iErr = mciSendCommand(m_MCIOpen.wDeviceID, MCI_STATUS, MCI_TRACK|MCI_STATUS_ITEM|MCI_WAIT, (DWORD_PTR)&m_MCIStatus);
- if (iErr)
- {
- MCIErrorMessageBox (iErr);
- return FALSE;
- }
- m_nTracks[i].IsAudio = (m_MCIStatus.dwReturn == MCI_CDA_TRACK_AUDIO);
- }
-
- return TRUE;
-}
-
-
-// ------------
-// CD_TotalTime
-// returns total time for all audio tracks in seconds
-// ------------
-static UINT CD_TotalTime(VOID)
-{
- UINT nTotalLength = 0;
- INT nTrack;
- for (nTrack = 0; nTrack < m_nTracksCount; nTrack++)
- {
- if (m_nTracks[nTrack].IsAudio)
- nTotalLength += m_nTracks[nTrack].Length;
- }
- return nTotalLength;
-}
-
-
-//======================================================================
-// CD AUDIO MUSIC SUBSYSTEM
-//======================================================================
-
-UINT8 cdaudio_started = 0; // for system startup/shutdown
-
-static BOOL cdPlaying = FALSE;
-static INT cdPlayTrack; // when cdPlaying is true
-static BOOL cdLooping = FALSE;
-static BYTE cdRemap[MAX_CD_TRACKS];
-static BOOL cdEnabled = TRUE; // cd info available
-static BOOL cdValid; // true when last cd audio info was ok
-static BOOL wasPlaying;
-//static INT cdVolume = 0; // current cd volume (0-31)
-
-// 0-31 like Music & Sfx, though CD hardware volume is 0-255.
-consvar_t cd_volume = {"cd_volume","18",CV_SAVE,soundvolume_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
-
-// allow Update for next/loop track
-// some crap cd drivers take up to
-// a second for a simple 'busy' check..
-// (on those Update can be disabled)
-consvar_t cdUpdate = {"cd_update","1",CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
-
-#if (__GNUC__ > 6)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-overflow"
-#endif
-// hour,minutes,seconds
-static LPSTR hms(UINT seconds)
-{
- UINT hours, minutes;
- static CHAR s[9];
-
- minutes = seconds / 60;
- seconds %= 60;
- hours = minutes / 60;
- minutes %= 60;
- if (hours > 0)
- sprintf (s, "%lu:%02lu:%02lu", (long unsigned int)hours, (long unsigned int)minutes, (long unsigned int)seconds);
- else
- sprintf (s, "%2lu:%02lu", (long unsigned int)minutes, (long unsigned int)seconds);
- return s;
-}
-#if (__GNUC__ > 6)
-#pragma GCC diagnostic pop
-#endif
-
-static void Command_Cd_f(void)
-{
- LPCSTR s;
- int i,j;
-
- if (!cdaudio_started)
- return;
-
- if (COM_Argc() < 2)
- {
- CONS_Printf (M_GetText(
- "cd [on] [off] [remap] [reset] [select]\n"
- " [open] [info] [play