mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-23 07:40:14 +00:00
Add WoW-style camera system with collision and first-person mode
- Implement orbit camera with smooth zoom and collision detection - Add 50° slope limiting with sliding (prevents mountain climbing) - Add first-person mode that hides player model and weapons - Add floor clearance check to prevent camera clipping through ground - Improve WMO wall collision with proper height range checks - Add two-sided floor collision detection for WMO geometry - Increase M2 render distance slightly for better visibility
This commit is contained in:
parent
3e792af3e5
commit
54dc27c2ec
7 changed files with 307 additions and 64 deletions
|
|
@ -939,7 +939,7 @@ void Application::spawnPlayerCharacter() {
|
|||
// Spawn character at camera's ground position
|
||||
glm::vec3 spawnPos = camera->getPosition() - glm::vec3(0.0f, 0.0f, 5.0f);
|
||||
uint32_t instanceId = charRenderer->createInstance(1, spawnPos,
|
||||
glm::vec3(0.0f), 2.0f);
|
||||
glm::vec3(0.0f), 1.0f); // Scale 1.0 = normal WoW character size
|
||||
|
||||
if (instanceId > 0) {
|
||||
// Set up third-person follow
|
||||
|
|
@ -974,6 +974,11 @@ void Application::spawnPlayerCharacter() {
|
|||
static_cast<int>(spawnPos.z), ")");
|
||||
playerCharacterSpawned = true;
|
||||
|
||||
// Set up camera controller for first-person player hiding
|
||||
if (renderer->getCameraController()) {
|
||||
renderer->getCameraController()->setCharacterRenderer(charRenderer, instanceId);
|
||||
}
|
||||
|
||||
// Load equipped weapons (sword + shield)
|
||||
loadEquippedWeapons();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue