Batch #2457 by ragnarok-clanker: 0 byte-identical, 48 confirmed by peer review. - fn_00152 TextureCache::TextureCache: logic confirmed by peer review - fn_01952 DrawAlphaRectangle: logic confirmed by peer review - fn_01953 DrawBlendedRectangle: logic confirmed by peer review - fn_01954 DrawTexturedRectangle: logic confirmed by peer review - fn_01955 DrawTextureRegion: logic confirmed by peer review - fn_02237 CRendererDX9::SaveLogo: logic confirmed by peer review - fn_02353 CRenderSystemDX9::CRenderSystemDX9: logic confirmed by peer review - fn_02447 TextureCache::~TextureCache: logic confirmed by peer review (already on main) - fn_02449 TextureCache::Upload: logic confirmed by peer review - fn_02451 TextureCache::Clear: logic confirmed by peer review (already on main) - fn_02452 TextureCache::Remove: logic confirmed by peer review (already on main) - fn_02453 TextureCache::Default: logic confirmed by peer review - fn_02454 TextureCache::Load: logic confirmed by peer review (already on main) - fn_02455 TextureCache::Create: logic confirmed by peer review - fn_02456 TextureCache::Reload: logic confirmed by peer review - fn_02457 TextureCache::ClearUnused: logic confirmed by peer review - fn_07897 EZeffectClip::Texture: logic confirmed by peer review - fn_07898 EZeffectClip::Texture: logic confirmed by peer review - fn_07958 C3dAnimModelRes::Load: logic confirmed by peer review - fn_07996 ModelNode::~ModelNode: logic confirmed by peer review - fn_08010 C3dGrannyModelRes::CreateTexture: logic confirmed by peer review - fn_08020 C3dModelResV2::ReadVersion1: logic confirmed by peer review - fn_08021 C3dModelResV2::ReadVersion2: logic confirmed by peer review - fn_08022 C3dModelResV2::ReadVersion3: logic confirmed by peer review - fn_09166 BinkMovies::Update: logic confirmed by peer review - fn_10122 UIRPData::DrawNamed: logic confirmed by peer review - fn_12091 UIWhisperWnd::Slot43: logic confirmed by peer review - fn_17556 GroundGeometry::Build: logic confirmed by peer review - fn_17565 GroundGeometry::BuildLightmaps: logic confirmed by peer review - fn_17581 GroundWaterState::Update: logic confirmed by peer review - fn_17587 GroundGeometry::DrawGrid: logic confirmed by peer review - fn_17599 GroundWaterState::Import: logic confirmed by peer review - fn_17842 ModeFade::Draw: logic confirmed by peer review - fn_17847 FadeOutMode: logic confirmed by peer review - fn_20019 CRagEffect::Blessing: logic confirmed by peer review - fn_20023 CRagEffect::Bottom: logic confirmed by peer review - fn_20024 CRagEffect::BowlingBash: logic confirmed by peer review - fn_20025 CRagEffect::CartRevolution: logic confirmed by peer review - fn_20042 CRagEffect::Entry: logic confirmed by peer review - fn_20054 CRagEffect::FrostDiver: logic confirmed by peer review - fn_20058 CRagEffect::GrimTooth: logic confirmed by peer review - fn_20066 CRagEffect::Hit4: logic confirmed by peer review - fn_20088 UpdatePartyEffect: logic confirmed by peer review - fn_20105 CRagEffect::SonicBlowHit: logic confirmed by peer review - fn_20109 CRagEffect::SprayPond: logic confirmed by peer review - fn_20124 CRagEffect::Yufitel: logic confirmed by peer review - fn_20132 CRagEffect::AirTexture: logic confirmed by peer review - fn_20133 CRagEffect::AttackEnergy2: logic confirmed by peer review Reviewed-by: ragnarok-clanker
60 lines
1.7 KiB
C
60 lines
1.7 KiB
C
#ifndef RAGNAROK_SOURCE_CONTENTS_WORLD_WORLDGROUNDIMPORT_H
|
|
#define RAGNAROK_SOURCE_CONTENTS_WORLD_WORLDGROUNDIMPORT_H
|
|
|
|
#include "Client/Application/ErrorDialog.h"
|
|
#include "Contents/Ground/GroundGeometry.h"
|
|
#include "Resource/World/GroundResource.h"
|
|
#include "Resource/ResourceMgr.h"
|
|
#include "Resource/World/TerrainResource.h"
|
|
#include "Resource/World/WorldResource.h"
|
|
#include "Utility/Math/ScalarConversion.h"
|
|
|
|
// INLINED
|
|
inline bool ImportWorldGround(
|
|
const C3dWorldRes& world, ResourceMgr& resources, CRenderSystemBase* renderSystem, C3dAttr*& terrain, GroundGeometry*& ground,
|
|
int& nearbyRange, const float* lightDirection, const float* diffuse, const float* ambient
|
|
) {
|
|
if (world.terrainName.empty()) {
|
|
ShowErrorDialog(renderSystem, "attr ", 0);
|
|
return false;
|
|
}
|
|
|
|
terrain = static_cast<C3dAttr*>(resources.Load(world.terrainName.c_str()));
|
|
|
|
if (!terrain) {
|
|
ShowErrorDialog(renderSystem, "attr ", 0);
|
|
return false;
|
|
}
|
|
|
|
terrain->cellSize = 5;
|
|
nearbyRange *= terrain->cellSize;
|
|
|
|
if (world.groundName.empty()) {
|
|
ShowErrorDialog(renderSystem, "gnd ", 0);
|
|
return false;
|
|
}
|
|
|
|
auto* resource = static_cast<CGndRes*>(resources.Load(world.groundName.c_str()));
|
|
|
|
if (!resource) {
|
|
ShowErrorDialog(renderSystem, "ground", 0);
|
|
return false;
|
|
}
|
|
|
|
if (!resource->loaded) {
|
|
ShowErrorDialog(renderSystem, "", 0);
|
|
return false;
|
|
}
|
|
|
|
ground = new GroundGeometry;
|
|
ground->Build(*resource, lightDirection, diffuse, ambient);
|
|
const int pitch = TruncateToInt(world.waveSpeed);
|
|
const int phase = TruncateToInt(world.wavePitch);
|
|
ground->water.Set(world.waterLevel, world.waterType, world.waterAnimation, pitch, phase, world.waveHeight);
|
|
ground->water.Import(*resource);
|
|
resources.Remove(resource);
|
|
|
|
return true;
|
|
}
|
|
|
|
#endif
|