mirror of https://github.com/AxioDL/metaforce.git
Minor fixes and cleanup
This commit is contained in:
parent
9d2cbf61ed
commit
ff83dbc676
|
@ -1650,7 +1650,7 @@ TXTR::Meta TXTR::GetMetaData(DataSpec::PAKEntryReadStream& rs) {
|
|||
atUint16 palHeight = rs.readUint16Big();
|
||||
palMeta.elementCount = palWidth * palHeight;
|
||||
atUint32 palSize = atUint32(palWidth * palHeight * 2);
|
||||
if (palMeta.format == 4)
|
||||
if (format == 8)
|
||||
textureSize /= 2;
|
||||
std::unique_ptr<u8[]> palData(new u8[palSize]);
|
||||
rs.readUBytesToBuf(palData.get(), palSize);
|
||||
|
|
|
@ -454,6 +454,7 @@ static void _ConstructMaterial(Stream& out, const MAT& material, unsigned groupI
|
|||
out.format(fmt("new_material = bpy.data.materials.new('MAT_{}_{}')\n"), groupIdx, matIdx);
|
||||
out << "new_material.use_fake_user = True\n"
|
||||
"new_material.use_nodes = True\n"
|
||||
"new_material.use_backface_culling = True\n"
|
||||
"new_nodetree = new_material.node_tree\n"
|
||||
"for n in new_nodetree.nodes:\n"
|
||||
" new_nodetree.nodes.remove(n)\n"
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace DataSpec::DNAMP1 {
|
|||
struct CTweakGame final : ITweakGame {
|
||||
AT_DECL_DNA_YAML
|
||||
String<-1> x4_worldPrefix;
|
||||
String<-1> x14_ruinsArea; // ????
|
||||
String<-1> x14_defaultRoom;
|
||||
Value<float> x24_fov;
|
||||
Value<bool> x28_unknown1;
|
||||
Value<bool> x29_unknown2;
|
||||
|
@ -30,6 +30,7 @@ struct CTweakGame final : ITweakGame {
|
|||
Value<float> x64_hardmodeWeaponMult;
|
||||
|
||||
std::string_view GetWorldPrefix() const { return x4_worldPrefix; }
|
||||
std::string_view GetDefaultRoom() const { return x14_defaultRoom; }
|
||||
bool GetSplashScreensDisabled() const { return x2b_splashScreensDisabled; }
|
||||
float GetFirstPersonFOV() const { return x24_fov; }
|
||||
float GetPressStartDelay() const { return x30_pressStartDelay; }
|
||||
|
|
8
Doxyfile
8
Doxyfile
|
@ -2295,7 +2295,7 @@ DIRECTORY_GRAPH = YES
|
|||
# The default value is: png.
|
||||
# This tag requires that the tag HAVE_DOT is set to YES.
|
||||
|
||||
DOT_IMAGE_FORMAT = png
|
||||
DOT_IMAGE_FORMAT = svg
|
||||
|
||||
# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
|
||||
# enable generation of interactive SVG images that allow zooming and panning.
|
||||
|
@ -2307,7 +2307,7 @@ DOT_IMAGE_FORMAT = png
|
|||
# The default value is: NO.
|
||||
# This tag requires that the tag HAVE_DOT is set to YES.
|
||||
|
||||
INTERACTIVE_SVG = NO
|
||||
INTERACTIVE_SVG = YES
|
||||
|
||||
# The DOT_PATH tag can be used to specify the path where the dot tool can be
|
||||
# found. If left blank, it is assumed the dot tool can be found in the path.
|
||||
|
@ -2381,7 +2381,7 @@ MAX_DOT_GRAPH_DEPTH = 0
|
|||
# The default value is: NO.
|
||||
# This tag requires that the tag HAVE_DOT is set to YES.
|
||||
|
||||
DOT_TRANSPARENT = NO
|
||||
DOT_TRANSPARENT = YES
|
||||
|
||||
# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
|
||||
# files in one run (i.e. multiple -o and -T options on the command line). This
|
||||
|
@ -2390,7 +2390,7 @@ DOT_TRANSPARENT = NO
|
|||
# The default value is: NO.
|
||||
# This tag requires that the tag HAVE_DOT is set to YES.
|
||||
|
||||
DOT_MULTI_TARGETS = NO
|
||||
DOT_MULTI_TARGETS = YES
|
||||
|
||||
# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
|
||||
# explaining the meaning of the various boxes and arrows in the dot generated
|
||||
|
|
|
@ -82,7 +82,7 @@ void CMapArea::PostConstruct() {
|
|||
for (u32 i = 0; i < x28_mappableObjCount; ++i) {
|
||||
CMappableObject& mapObj = m_mappableObjects[i];
|
||||
if (CMappableObject::IsDoorType(mapObj.GetType()))
|
||||
mapObj.m_doorSurface.emplace(ctx);
|
||||
mapObj.CreateDoorSurface(ctx);
|
||||
}
|
||||
return true;
|
||||
} BooTrace);
|
||||
|
|
|
@ -13,7 +13,6 @@ class CStateManager;
|
|||
class CMapWorldInfo;
|
||||
|
||||
class CMappableObject {
|
||||
friend class CMapArea;
|
||||
static boo::ObjToken<boo::IGraphicsBufferS> g_doorVbo;
|
||||
static boo::ObjToken<boo::IGraphicsBufferS> g_doorIbo;
|
||||
|
||||
|
@ -83,6 +82,7 @@ public:
|
|||
bool IsDoorConnectedToVisitedArea(const CStateManager&) const;
|
||||
bool IsVisibleToAutoMapper(bool worldVis, const CMapWorldInfo& mwInfo) const;
|
||||
bool GetIsSeen() const;
|
||||
void CreateDoorSurface(boo::IGraphicsDataFactory::Context& ctx) { m_doorSurface.emplace(ctx); }
|
||||
|
||||
static void ReadAutoMapperTweaks(const ITweakAutoMapper&);
|
||||
static bool GetTweakIsMapVisibilityCheat();
|
||||
|
|
|
@ -31,6 +31,7 @@ private:
|
|||
boo::ObjToken<boo::ITexture> m_paletteTex;
|
||||
std::unique_ptr<u8[]> m_otex;
|
||||
EFontType m_ftype = EFontType::None;
|
||||
std::string m_dolphinName;
|
||||
|
||||
size_t ComputeMippedTexelCount();
|
||||
size_t ComputeMippedBlockCountDXT1();
|
||||
|
@ -67,6 +68,9 @@ public:
|
|||
const boo::ObjToken<boo::ITexture>& GetPaletteTexture() const { return m_paletteTex; }
|
||||
std::unique_ptr<u8[]> BuildMemoryCardTex(u32& sizeOut, ETexelFormat& fmtOut, std::unique_ptr<u8[]>& paletteOut) const;
|
||||
const boo::ObjToken<boo::ITexture>& GetFontTexture(EFontType tp);
|
||||
|
||||
std::string_view GetDolphinName() const { return m_dolphinName; }
|
||||
bool HasDolphinName() const { return !m_dolphinName.empty(); }
|
||||
};
|
||||
|
||||
CFactoryFnReturn FTextureFactory(const urde::SObjectTag& tag, std::unique_ptr<u8[]>&& in, u32 len,
|
||||
|
|
|
@ -762,6 +762,8 @@ CTexture::CTexture(std::unique_ptr<u8[]>&& in, u32 length, bool otex) {
|
|||
Log.report(logvisor::Fatal, fmt("invalid texture type {} for boo"), int(x0_fmt));
|
||||
}
|
||||
|
||||
if (r.readBool())
|
||||
m_dolphinName = r.readString();
|
||||
if (otex)
|
||||
m_otex = std::move(owned);
|
||||
}
|
||||
|
|
|
@ -372,7 +372,11 @@ void CMain::MemoryCardInitializePump() {
|
|||
}
|
||||
}
|
||||
|
||||
void CMain::FillInAssetIDs() {}
|
||||
void CMain::FillInAssetIDs() {
|
||||
if (const SObjectTag* tag = g_ResFactory->GetResourceIdByName(g_tweakGame->GetDefaultRoom())) {
|
||||
g_GameState->SetCurrentWorldId(tag->id);
|
||||
}
|
||||
}
|
||||
|
||||
bool CMain::LoadAudio() {
|
||||
if (x164_archSupport)
|
||||
|
|
|
@ -24,5 +24,21 @@ CChozoGhost::CChozoGhost(TUniqueId uid, std::string_view name, const CEntityInfo
|
|||
const CBehaveChance& chance3, u16 sId1, float f5, u16 sId2, u16 sId3, u32 w1, float f6, u32 w2,
|
||||
float f7, CAssetId partId, s16 sId4, float f8, float f9, u32 w3, u32 w4)
|
||||
: CPatterned(ECharacter::ChozoGhost, uid, name, EFlavorType::Zero, info, xf, std::move(mData), pInfo,
|
||||
EMovementType::Flyer, EColliderType::Zero, EBodyType::BiPedal, actParms, EKnockBackVariant::Medium) {}
|
||||
EMovementType::Flyer, EColliderType::Zero, EBodyType::BiPedal, actParms, EKnockBackVariant::Medium)
|
||||
, x568_(f1)
|
||||
, x56c_(f2)
|
||||
, x570_(f3)
|
||||
, x574_(f4)
|
||||
, x578_(wpsc1, dInfo1)
|
||||
, x5a0_(wpsc2, dInfo2)
|
||||
, x5c8_(chance1)
|
||||
, x5e8_(chance2)
|
||||
, x608_(chance3)
|
||||
, x628_(sId1)
|
||||
, x62c_(f5)
|
||||
, x630_(sId2)
|
||||
, x632_(sId3)
|
||||
, x634_(f6)
|
||||
, x638_(f7)
|
||||
, x63c_(w2) {}
|
||||
} // namespace urde::MP1
|
|
@ -1,6 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
#include "World/CPatterned.hpp"
|
||||
#include "Weapon/CProjectileInfo.hpp"
|
||||
#include "Character/CBoneTracking.hpp"
|
||||
|
||||
namespace urde::MP1 {
|
||||
class CChozoGhost : public CPatterned {
|
||||
|
@ -20,6 +22,60 @@ public:
|
|||
};
|
||||
|
||||
private:
|
||||
float x568_;
|
||||
float x56c_;
|
||||
float x570_;
|
||||
float x574_;
|
||||
CProjectileInfo x578_;
|
||||
CProjectileInfo x5a0_;
|
||||
CBehaveChance x5c8_;
|
||||
CBehaveChance x5e8_;
|
||||
CBehaveChance x608_;
|
||||
s16 x628_;
|
||||
float x62c_;
|
||||
s16 x630_;
|
||||
s16 x632_;
|
||||
float x634_;
|
||||
float x638_;
|
||||
u32 x63c_;
|
||||
TLockedToken<CGenDescription> x640_;
|
||||
s16 x650_;
|
||||
float x654_;
|
||||
float x658_;
|
||||
u32 x65c_;
|
||||
u32 x660_;
|
||||
union {
|
||||
struct {
|
||||
bool x664_24_ : 1;
|
||||
bool x664_25_ : 1;
|
||||
bool x664_26_ : 1;
|
||||
bool x664_27_ : 1;
|
||||
bool x664_28_ : 1;
|
||||
bool x664_29_ : 1;
|
||||
bool x664_30_ : 1;
|
||||
bool x664_31_ : 1;
|
||||
bool x665_24_ : 1;
|
||||
bool x665_25_ : 1;
|
||||
bool x665_26_ : 1;
|
||||
bool x665_27_ : 1;
|
||||
bool x665_28_ : 1;
|
||||
bool x665_29_ : 1;
|
||||
};
|
||||
u32 _dummy = 0;
|
||||
};
|
||||
float x668_ = 0.f;
|
||||
float x66c_ = 0.f;
|
||||
float x670_ = 0.f;
|
||||
TUniqueId x674_ = kInvalidUniqueId;
|
||||
u32 x67c_ = -1;
|
||||
u32 x680_;
|
||||
float x684_ = 1.f;
|
||||
CSteeringBehaviors x688_;
|
||||
//CBoneTracking x68c_boneTracking;
|
||||
TUniqueId x6c4_ = kInvalidUniqueId;
|
||||
float x6c8_ = 0.f;
|
||||
zeus::CVector3f x6cc_;
|
||||
u32 x6d8_ = 1;
|
||||
public:
|
||||
DEFINE_PATTERNED(ChozoGhost)
|
||||
|
||||
|
|
|
@ -163,8 +163,7 @@ void CFlaahgra::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateM
|
|||
CDamageInfo contactDamage = GetContactDamage();
|
||||
if (x7a8_ == 4)
|
||||
contactDamage = x7dc_;
|
||||
|
||||
if (!sub801ae670())
|
||||
else if (!sub801ae670())
|
||||
contactDamage.SetDamage(0.5f * contactDamage.GetDamage());
|
||||
|
||||
if (x788_ >= 2)
|
||||
|
@ -188,7 +187,7 @@ void CFlaahgra::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateM
|
|||
if (TCastToConstPtr<CGameProjectile> proj = mgr.GetObjectById(colAct->GetLastTouchedObject())) {
|
||||
if (x780_ != 3)
|
||||
break;
|
||||
if (IsDizzy(mgr, 0.f) && !x450_bodyController->HasBodyState(pas::EAnimationState::LoopReaction)) {
|
||||
if (!IsDizzy(mgr, 0.f) && x450_bodyController->HasBodyState(pas::EAnimationState::LoopReaction)) {
|
||||
TakeDamage({}, 0.f);
|
||||
|
||||
if ((x56c_.x140_ - proj->GetDamageInfo().GetDamage()) >= x810_) {
|
||||
|
|
Loading…
Reference in New Issue