mapgen bugfixes
This commit is contained in:
parent
38952ab0b5
commit
b45a045dea
6 changed files with 354 additions and 283 deletions
|
@ -1,245 +1,231 @@
|
||||||
[09:20:59 PM] Info: Starting...
|
[01:11:43 AM] Info: Starting...
|
||||||
|
|
||||||
KP3D version 2
|
KP3D version 2
|
||||||
===============================
|
===============================
|
||||||
Copyright (C) kpworld.xyz 2018-2024
|
Copyright (C) kpworld.xyz 2018-2024
|
||||||
Contact me! @kp_cftsz
|
Contact me! @kp_cftsz
|
||||||
|
|
||||||
[09:20:59 PM] Info: Initializing SDL
|
[01:11:43 AM] Info: Initializing SDL
|
||||||
[09:20:59 PM] Info: Initializing OpenGL
|
[01:11:44 AM] Info: Initializing OpenGL
|
||||||
[09:20:59 PM] Info: OpenGL version: 4.6.0 NVIDIA 536.23
|
[01:11:44 AM] Info: OpenGL version: 4.6.0 NVIDIA 536.23
|
||||||
[09:20:59 PM] Info: Initializing GLEW
|
[01:11:44 AM] Info: Initializing GLEW
|
||||||
[09:20:59 PM] Info: Initializing SDL_mixer
|
[01:11:44 AM] Info: Initializing SDL_mixer
|
||||||
[09:20:59 PM] Info: Reticulating splines...
|
[01:11:44 AM] Info: Reticulating splines...
|
||||||
[09:20:59 PM] Info: Ready!
|
[01:11:44 AM] Info: Ready!
|
||||||
[09:20:59 PM] Info: Finalize mesh with 44 batches
|
[01:11:44 AM] Info: Finalize mesh with 45 batches
|
||||||
[09:21:06 PM] Info: Finalize mesh with 48 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:08 PM] Info: Finalize mesh with 54 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 54 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:12 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:13 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:14 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:14 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:14 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:14 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:14 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:14 PM] Info: Finalize mesh with 55 batches
|
[01:11:48 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:14 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:14 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:49 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:15 PM] Info: Finalize mesh with 55 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:21 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:24 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:51 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:21:26 PM] Info: Finalize mesh with 61 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:35 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:46 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:52 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:53 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:53 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:53 AM] Info: Finalize mesh with 42 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:11:59 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:07 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:08 AM] Info: Finalize mesh with 47 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:47 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:09 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:49 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 48 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:10 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:53 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
[01:12:11 AM] Info: Finalize mesh with 49 batches
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
[09:22:54 PM] Info: Finalize mesh with 65 batches
|
|
||||||
|
|
|
@ -120,7 +120,7 @@ void Map::BuildFlat(Sector& sector, Flat& flat, bool invert)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
l.textures[TEX_FRONT] = nullptr;
|
l.textures[TEX_FRONT] = nullptr;
|
||||||
l.flags = Wall::FLAG_OPENING;
|
l.flags = Wall::FLAG_OPENING | Wall::FLAG_SUBSECTOR_OPENING;
|
||||||
l.portal = §or;
|
l.portal = §or;
|
||||||
}
|
}
|
||||||
ss.push_back({l.start.x, l.start.y});
|
ss.push_back({l.start.x, l.start.y});
|
||||||
|
@ -285,13 +285,35 @@ void Map::BuildWall(Sector& sector, Wall& wall)
|
||||||
Vec3 b = {wall.end.x, 0.0f, wall.end.y};
|
Vec3 b = {wall.end.x, 0.0f, wall.end.y};
|
||||||
BuildQuad(sector, wall, sector.floor, sector.ceiling, wall.textures[TEX_FRONT], a, b, false, false, false, wall.uv_offset[TEX_FRONT]);
|
BuildQuad(sector, wall, sector.floor, sector.ceiling, wall.textures[TEX_FRONT], a, b, false, false, false, wall.uv_offset[TEX_FRONT]);
|
||||||
|
|
||||||
if (wall.flags & Wall::FLAG_OPENING)
|
if ((wall.flags & Wall::FLAG_OPENING) && !(wall.flags & Wall::FLAG_JOINED))
|
||||||
|
//if (!(wall.flags & Wall::FLAG_JOINED))
|
||||||
{
|
{
|
||||||
// Build upper and lower walls for sectors connected to other sectors (or sectors within sectors)
|
// Build upper and lower walls for sectors connected to other sectors (or sectors within sectors)
|
||||||
bool flip = wall.portal->floor.base_height < sector.floor.base_height;
|
bool flip = wall.portal->floor.base_height < sector.floor.base_height, cflip = flip;
|
||||||
BuildQuad(sector, wall, sector.floor, wall.portal->floor, wall.textures[TEX_LOWER], a, b, flip, false, false, wall.uv_offset[TEX_LOWER]);
|
if (wall.flags & Wall::FLAG_SUBSECTOR_OPENING)
|
||||||
|
cflip = true;//cflip ^= 1;
|
||||||
|
if (cflip && !FloatCmp(wall.portal->floor.base_height, sector.floor.base_height))
|
||||||
|
BuildQuad(sector, wall, sector.floor, wall.portal->floor, wall.textures[TEX_LOWER], a, b, flip, false, false, wall.uv_offset[TEX_LOWER]);
|
||||||
flip = wall.portal->ceiling.base_height < sector.ceiling.base_height;
|
flip = wall.portal->ceiling.base_height < sector.ceiling.base_height;
|
||||||
BuildQuad(sector, wall, sector.ceiling, wall.portal->ceiling, wall.textures[TEX_UPPER], a, b, !flip, false, false, wall.uv_offset[TEX_UPPER]);
|
cflip = flip;
|
||||||
|
if (wall.flags & Wall::FLAG_SUBSECTOR_OPENING)
|
||||||
|
cflip = false;// ^= 1;
|
||||||
|
if (!cflip && !FloatCmp(wall.portal->ceiling.base_height, sector.ceiling.base_height))
|
||||||
|
BuildQuad(sector, wall, sector.ceiling, wall.portal->ceiling, wall.textures[TEX_UPPER], a, b, !flip, false, false, wall.uv_offset[TEX_UPPER]);
|
||||||
|
|
||||||
|
wall.flags |= Wall::FLAG_JOINED;
|
||||||
|
// Find the other one this wall is joining to
|
||||||
|
#if 0
|
||||||
|
for (Wall& w: wall.portal->walls)
|
||||||
|
{
|
||||||
|
// TODO: Check if this is overlapping
|
||||||
|
//if (wall.flags & Wall::FLAG_OPENING)
|
||||||
|
if (WallOverlaps(*wall.portal, w) && !(wall.flags & Wall::FLAG_JOINED))
|
||||||
|
{
|
||||||
|
w.flags |= Wall::FLAG_JOINED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -302,8 +324,8 @@ void Map::JoinSectors(Sector& sector)
|
||||||
for (int i = 0; i < sector.walls.size(); i++)
|
for (int i = 0; i < sector.walls.size(); i++)
|
||||||
{
|
{
|
||||||
Wall& ld = sector.walls[i];
|
Wall& ld = sector.walls[i];
|
||||||
if (ld.flags & Wall::FLAG_TOUCHED)
|
//if (ld.flags & Wall::FLAG_TOUCHED)
|
||||||
continue;
|
// continue;
|
||||||
for (const auto& sp: sectors)
|
for (const auto& sp: sectors)
|
||||||
{
|
{
|
||||||
Sector& s = *sp;
|
Sector& s = *sp;
|
||||||
|
@ -450,6 +472,61 @@ void Map::JoinSectors(Sector& sector)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Map::WallOverlaps(Sector& sector, Wall& ld)
|
||||||
|
{
|
||||||
|
bool d = false;
|
||||||
|
for (const auto& sp: sectors)
|
||||||
|
{
|
||||||
|
Sector& s = *sp;
|
||||||
|
if (s.id == sector.id)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
Vec3 pos_a = { ld.start.x, sector.floor.base_height, ld.start.y };
|
||||||
|
Vec3 pos_b = { ld.end.x, sector.ceiling.base_height, ld.end.y };
|
||||||
|
|
||||||
|
float yb = s.floor.base_height;
|
||||||
|
float yt = s.ceiling.base_height;
|
||||||
|
bool not_child = s.parent_id != sector.id;
|
||||||
|
|
||||||
|
float e = 1.0f / 128.0f;
|
||||||
|
|
||||||
|
for (Wall& l: s.walls)
|
||||||
|
{
|
||||||
|
//if (l.flags & Wall::FLAG_TOUCHED)
|
||||||
|
// continue;
|
||||||
|
bool good = false;
|
||||||
|
bool start_cmp = PosCmp({ l.start.x, 0.0f, l.start.y }, { pos_a.x, 0.0f, pos_a.z }, e) ||
|
||||||
|
PosCmp({ l.start.x, 0.0f, l.start.y }, { pos_b.x, 0.0f, pos_b.z }, e);
|
||||||
|
bool end_cmp = PosCmp({ l.end.x, 0.0f, l.end.y }, { pos_b.x, 0.0f, pos_b.z }, e) ||
|
||||||
|
PosCmp({ l.end.x, 0.0f, l.end.y }, { pos_a.x, 0.0f, pos_a.z }, e);
|
||||||
|
bool same_points = start_cmp && end_cmp;
|
||||||
|
bool start_on_seg = PointInLine(l.start, { pos_a.x, pos_a.z }, { pos_b.x, pos_b.z });
|
||||||
|
bool end_on_seg = PointInLine(l.end, { pos_a.x, pos_a.z }, { pos_b.x, pos_b.z });
|
||||||
|
bool on_segment = start_on_seg && end_on_seg;
|
||||||
|
|
||||||
|
bool right_join = start_on_seg && end_cmp;
|
||||||
|
bool left_join = end_on_seg && start_cmp;
|
||||||
|
|
||||||
|
if (on_segment && not_child) {
|
||||||
|
|
||||||
|
if (same_points)
|
||||||
|
return true;
|
||||||
|
//if (left_join)
|
||||||
|
// return true;
|
||||||
|
//else if (right_join)
|
||||||
|
// return true;//d = true;
|
||||||
|
|
||||||
|
//KP3D_LOG_INFO("Wall is overlapping!");
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (on_segment && not_child)
|
||||||
|
// good = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
void Map::Init()
|
void Map::Init()
|
||||||
{
|
{
|
||||||
sectors.clear();
|
sectors.clear();
|
||||||
|
@ -480,7 +557,7 @@ void Map::Init()
|
||||||
XYf points5[] = {{11, 4}, {14, 4}, {14, 2}, {16, 2}, {16, 10}, {11, 10}};
|
XYf points5[] = {{11, 4}, {14, 4}, {14, 2}, {16, 2}, {16, 10}, {11, 10}};
|
||||||
// Platform above main sector (room over room testing)
|
// Platform above main sector (room over room testing)
|
||||||
XYf points6[] = {{1, 4}, {3, 4}, {3, 7}, {1, 7}};
|
XYf points6[] = {{1, 4}, {3, 4}, {3, 7}, {1, 7}};
|
||||||
auto build_sector = [&](Texture* wall, Texture* floor, Texture* ceil, float floor_height, float ceil_height, int id, XYf* points, size_t num_points, bool inverted = false)
|
auto build_sector = [&](Texture* wall, Texture* lower, Texture* floor, Texture* ceil, float floor_height, float ceil_height, int id, XYf* points, size_t num_points, bool inverted = false)
|
||||||
{
|
{
|
||||||
std::shared_ptr<Sector> s = std::make_unique<Sector>();
|
std::shared_ptr<Sector> s = std::make_unique<Sector>();
|
||||||
s->ceiling.texture = ceil;
|
s->ceiling.texture = ceil;
|
||||||
|
@ -493,15 +570,15 @@ void Map::Init()
|
||||||
s->inverted = inverted;
|
s->inverted = inverted;
|
||||||
float scl = 1.0f;
|
float scl = 1.0f;
|
||||||
for (size_t i = 0; i < num_points; i++)
|
for (size_t i = 0; i < num_points; i++)
|
||||||
s->walls.push_back(Wall{ {wall,wall,wall}, {{0, 0}}, points[i], points[(i + 1) % num_points], Wall::NO_FLAGS, (uint)i });
|
s->walls.push_back(Wall{ {wall,wall,lower}, {{0, 0}}, points[i], points[(i + 1) % num_points], Wall::NO_FLAGS, (uint)i });
|
||||||
sectors.push_back(s);
|
sectors.push_back(s);
|
||||||
};
|
};
|
||||||
build_sector(&tex3, &tex, &tex2, -1.0f, 5.0f, 1, points, std::size(points));
|
build_sector(&tex3, &tex3, &tex, &tex2, -1.0f, 5.0f, 1, points, std::size(points));
|
||||||
build_sector(&tex4, &tex2, &tex2, -1.5f, 4.0f, 2, points2, std::size(points2));
|
build_sector(&tex4, &tex4, &tex2, &tex2, -1.5f, 4.0f, 2, points2, std::size(points2));
|
||||||
build_sector(&tex4, &tex, &tex2, -1.5f, 5.0f, 3, points3, std::size(points3), true);
|
build_sector(&tex4, &tex4, &tex, &tex2, -1.5f, 5.0f, 3, points3, std::size(points3), true);
|
||||||
build_sector(&tex4, &tex, &tex2, -1.5f, 4.0f, 4, points4, std::size(points4), true);
|
build_sector(&tex4, &tex4, &tex, &tex2, -1.5f, 4.0f, 4, points4, std::size(points4), true);
|
||||||
build_sector(&tex3, &tex, &tex2, 0.0f, 2.0f, 5, points5, std::size(points5), false);
|
build_sector(&tex3, &tex4, &tex, &tex2, 0.0f, 2.0f, 5, points5, std::size(points5), false);
|
||||||
build_sector(&tex4, &tex4, &tex4, 1.0f, 1.4f, 6, points6, std::size(points6), true);
|
build_sector(&tex4, &tex4, &tex4, &tex4, 1.0f, 1.4f, 6, points6, std::size(points6), true);
|
||||||
|
|
||||||
Rebuild(GEN_NORMALS);
|
Rebuild(GEN_NORMALS);
|
||||||
}
|
}
|
||||||
|
@ -540,12 +617,12 @@ void Map::Rebuild(NormalGenType gen_normals)
|
||||||
{
|
{
|
||||||
//bool touched = l.flags & Wall::FLAG_TOUCHED;
|
//bool touched = l.flags & Wall::FLAG_TOUCHED;
|
||||||
//bool no_collisions = l.flags & Wall::FLAG_NO_COLLISION;
|
//bool no_collisions = l.flags & Wall::FLAG_NO_COLLISION;
|
||||||
//l.flags = Wall::NO_FLAGS;
|
l.flags = Wall::NO_FLAGS;
|
||||||
//if (touched)
|
//if (touched)
|
||||||
// l.flags |= Wall::FLAG_TOUCHED;
|
// l.flags |= Wall::FLAG_TOUCHED;
|
||||||
//if (no_collisions)
|
//if (no_collisions)
|
||||||
// l.flags |= Wall::FLAG_NO_COLLISION;
|
// l.flags |= Wall::FLAG_NO_COLLISION;
|
||||||
//l.portal = nullptr;
|
l.portal = nullptr;
|
||||||
|
|
||||||
area += l.start.x * l.end.y;
|
area += l.start.x * l.end.y;
|
||||||
area -= l.end.x * l.start.y;
|
area -= l.end.x * l.start.y;
|
||||||
|
@ -666,7 +743,7 @@ void Map::Rebuild(NormalGenType gen_normals)
|
||||||
[](const RenderBatch3D& a, const RenderBatch3D& b) -> bool
|
[](const RenderBatch3D& a, const RenderBatch3D& b) -> bool
|
||||||
{
|
{
|
||||||
return /*a.texture->GetGLID() < b.texture->GetGLID() &&*/
|
return /*a.texture->GetGLID() < b.texture->GetGLID() &&*/
|
||||||
std::any_cast<BatchSectorInfo>(a.userdata).type < std::any_cast<BatchSectorInfo>(b.userdata).type;
|
std::any_cast<BatchSectorInfo>(a.userdata).type < std::any_cast<BatchSectorInfo>(b.userdata).type;
|
||||||
},
|
},
|
||||||
[](const RenderBatch3D& a, const RenderBatch3D& b) -> bool
|
[](const RenderBatch3D& a, const RenderBatch3D& b) -> bool
|
||||||
{
|
{
|
||||||
|
@ -674,9 +751,7 @@ void Map::Rebuild(NormalGenType gen_normals)
|
||||||
const auto& bu = std::any_cast<BatchSectorInfo>(b.userdata);
|
const auto& bu = std::any_cast<BatchSectorInfo>(b.userdata);
|
||||||
|
|
||||||
return a.texture->GetGLID() != b.texture->GetGLID() ||
|
return a.texture->GetGLID() != b.texture->GetGLID() ||
|
||||||
(au.sector != bu.sector ||
|
(au.sector != bu.sector || au.flat != bu.flat || au.wall != bu.wall);
|
||||||
au.flat != bu.flat ||
|
|
||||||
au.wall != bu.wall);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
KP3D_LOG_INFO("Finalize mesh with {} batches", m_mesh.GetBatchesRef().size());
|
KP3D_LOG_INFO("Finalize mesh with {} batches", m_mesh.GetBatchesRef().size());
|
||||||
|
|
|
@ -27,7 +27,9 @@ struct Wall
|
||||||
FLAG_OPENING = 1 << 0,
|
FLAG_OPENING = 1 << 0,
|
||||||
FLAG_DELETE = 1 << 1,
|
FLAG_DELETE = 1 << 1,
|
||||||
FLAG_NO_COLLISION = 1 << 2,
|
FLAG_NO_COLLISION = 1 << 2,
|
||||||
FLAG_TOUCHED = 1 << 3
|
FLAG_TOUCHED = 1 << 3,
|
||||||
|
FLAG_JOINED = 1 << 4,
|
||||||
|
FLAG_SUBSECTOR_OPENING = 1 << 5
|
||||||
};
|
};
|
||||||
|
|
||||||
const Texture* textures[3];
|
const Texture* textures[3];
|
||||||
|
@ -124,6 +126,7 @@ public:
|
||||||
void BuildQuad(Sector& sector, Wall& wall, Flat& flat_top, Flat& flat_bottom, const Texture* texture, Vec3 pos_a, Vec3 pos_b, bool flip, bool flip_u, bool flip_v, XYf uv_offset);
|
void BuildQuad(Sector& sector, Wall& wall, Flat& flat_top, Flat& flat_bottom, const Texture* texture, Vec3 pos_a, Vec3 pos_b, bool flip, bool flip_u, bool flip_v, XYf uv_offset);
|
||||||
void BuildWall(Sector& sector, Wall& wall);
|
void BuildWall(Sector& sector, Wall& wall);
|
||||||
void JoinSectors(Sector& sector);
|
void JoinSectors(Sector& sector);
|
||||||
|
bool WallOverlaps(Sector& sector, Wall& wall);
|
||||||
|
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
|
|
|
@ -232,7 +232,7 @@ void StaticMesh::Finalize(NormalGenType gen_normals, BatchComparison sort, Batch
|
||||||
for (size_t j = 0; j < current.vertex_data.size(); j++)
|
for (size_t j = 0; j < current.vertex_data.size(); j++)
|
||||||
{
|
{
|
||||||
auto& jv = current.vertex_data[j];
|
auto& jv = current.vertex_data[j];
|
||||||
jv.normal = {0.5,0.5,0.5};
|
jv.normal = {0.5f, 0.5f, 0.5f};
|
||||||
}
|
}
|
||||||
// The following just generates face normals for each triangle
|
// The following just generates face normals for each triangle
|
||||||
for (size_t j = 0; j < current.vertex_data.size(); j += 3)
|
for (size_t j = 0; j < current.vertex_data.size(); j += 3)
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "KP3D_Math.h"
|
#include "KP3D_Math.h"
|
||||||
#include "KP3D_Geometry.h"
|
#include "KP3D_Geometry.h"
|
||||||
#include "KP3D_Console.h"
|
#include "KP3D_Console.h"
|
||||||
|
#include "KP3D_EventBus.h"
|
||||||
|
|
||||||
#include "Sandbox.h"
|
#include "Sandbox.h"
|
||||||
|
|
||||||
|
@ -33,6 +34,9 @@ Editor::Editor()
|
||||||
m_stem.Load("editor/stem.png");
|
m_stem.Load("editor/stem.png");
|
||||||
m_block.Load("block.png", true);
|
m_block.Load("block.png", true);
|
||||||
m_mode = MODE_BUILD;
|
m_mode = MODE_BUILD;
|
||||||
|
|
||||||
|
kp3d::EventBus::Subscribe(this, &Editor::OnScrollWheel);
|
||||||
|
kp3d::EventBus::Subscribe(this, &Editor::OnKeyPress);
|
||||||
}
|
}
|
||||||
|
|
||||||
Editor::~Editor()
|
Editor::~Editor()
|
||||||
|
@ -94,27 +98,6 @@ void Editor::Update()
|
||||||
editor_hovered_batch = nullptr;
|
editor_hovered_batch = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (editor_hovered_batch)
|
|
||||||
{
|
|
||||||
auto info = std::any_cast<BatchSectorInfo>(editor_hovered_batch->userdata);
|
|
||||||
if (info.flat)
|
|
||||||
{
|
|
||||||
if (sandbox->IsKeyDown(KEY_PAGEUP))
|
|
||||||
{
|
|
||||||
info.flat->base_height += 0.1f;
|
|
||||||
sandbox->map.Rebuild(GEN_NORMALS);
|
|
||||||
}
|
|
||||||
if (sandbox->IsKeyDown(KEY_PAGEDOWN))
|
|
||||||
{
|
|
||||||
info.flat->base_height -= 0.1f;
|
|
||||||
sandbox->map.Rebuild(GEN_NORMALS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Editor::RenderMap()
|
void Editor::RenderMap()
|
||||||
|
@ -315,6 +298,26 @@ void Editor::RenderUIInfo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Editor::OnScrollWheel(const kp3d::ScrollWheelEvent* e)
|
||||||
|
{
|
||||||
|
using namespace kp3d;
|
||||||
|
|
||||||
|
if (!editor_hovered_batch)
|
||||||
|
return;
|
||||||
|
|
||||||
|
auto factor = (2.0f / 128.0f) * e->length;
|
||||||
|
auto info = std::any_cast<BatchSectorInfo>(editor_hovered_batch->userdata);
|
||||||
|
if (info.flat)
|
||||||
|
{
|
||||||
|
info.flat->base_height += factor;
|
||||||
|
sandbox->map.Rebuild(GEN_NORMALS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Editor::OnKeyPress(const kp3d::KeyPressEvent* e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
void Editor::RenderLine(kp3d::Vec3 p0, kp3d::Vec3 p1, kp3d::uint color)
|
void Editor::RenderLine(kp3d::Vec3 p0, kp3d::Vec3 p1, kp3d::uint color)
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "KP3D_Texture.h"
|
#include "KP3D_Texture.h"
|
||||||
#include "KP3D_Math.h"
|
#include "KP3D_Math.h"
|
||||||
|
#include "KP3D_IOEvents.h"
|
||||||
|
|
||||||
enum EditMode
|
enum EditMode
|
||||||
{
|
{
|
||||||
|
@ -29,6 +30,9 @@ public:
|
||||||
void RenderUI();
|
void RenderUI();
|
||||||
void RenderUIInfo();
|
void RenderUIInfo();
|
||||||
|
|
||||||
|
void OnScrollWheel(const kp3d::ScrollWheelEvent* e);
|
||||||
|
void OnKeyPress(const kp3d::KeyPressEvent* e);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void RenderLine(kp3d::Vec3 start, kp3d::Vec3 end, kp3d::uint color);
|
void RenderLine(kp3d::Vec3 start, kp3d::Vec3 end, kp3d::uint color);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue