mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 22:27:41 +00:00
Merge remote-tracking branch 'origin/main' into wgpu
# Conflicts: # extern/boo
This commit is contained in:
@@ -768,8 +768,8 @@ def make_retro_shader_mp3_color():
|
||||
input.default_value = (0.0, 0.0, 0.0, 1.0)
|
||||
input = new_grp.inputs.new("NodeSocketInt", "Add INCA")
|
||||
input.default_value = 0
|
||||
input.min_value = 0.000000
|
||||
input.max_value = 1.000000
|
||||
input.min_value = 0
|
||||
input.max_value = 1
|
||||
input = new_grp.inputs.new("NodeSocketFloatFactor", "OPAC")
|
||||
input.default_value = 1.0
|
||||
input.min_value = 0.000000
|
||||
@@ -1057,8 +1057,8 @@ def make_retro_shader_mp3_bloom():
|
||||
input.max_value = 1.000000
|
||||
input = new_grp.inputs.new("NodeSocketInt", "Add INCA")
|
||||
input.default_value = 0
|
||||
input.min_value = 0.000000
|
||||
input.max_value = 1.000000
|
||||
input.min_value = 0
|
||||
input.max_value = 1
|
||||
new_grp.outputs.new("NodeSocketShader", "Shader")
|
||||
nodes = {}
|
||||
node = new_grp.nodes.new("ShaderNodeMath")
|
||||
@@ -1261,8 +1261,8 @@ def make_retro_shader_mp3():
|
||||
input.max_value = 1.000000
|
||||
input = new_grp.inputs.new("NodeSocketInt", "Add INCA")
|
||||
input.default_value = 0
|
||||
input.min_value = 0.000000
|
||||
input.max_value = 1.000000
|
||||
input.min_value = 0
|
||||
input.max_value = 1
|
||||
input = new_grp.inputs.new("NodeSocketFloatFactor", "BNIF")
|
||||
input.default_value = 0.0
|
||||
input.min_value = 0.000000
|
||||
|
||||
@@ -215,17 +215,19 @@ void PAKBridge::addCMDLRigPairs(PAKRouter<PAKBridge>& pakRouter, CharacterAssoci
|
||||
PAK::Entry* cmdlEnt = (PAK::Entry*)m_pak.lookupEntry(ci.cmdl);
|
||||
PAK::Entry* cskrEnt = (PAK::Entry*)m_pak.lookupEntry(ci.cskr);
|
||||
PAK::Entry* cinfEnt = (PAK::Entry*)m_pak.lookupEntry(ci.cinf);
|
||||
cmdlEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_model"), id, ci.name);
|
||||
cskrEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_skin"), id, ci.name);
|
||||
cinfEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_skel"), id, ci.name);
|
||||
if (ci.cmdlIce.isValid() && ci.cskrIce.isValid()) {
|
||||
charAssoc.m_cmdlRigs[ci.cmdlIce] = {ci.cskrIce, ci.cinf};
|
||||
charAssoc.m_cskrToCharacter[ci.cskrIce] =
|
||||
std::make_pair(entry.id, fmt::format(FMT_STRING("{}.ICE_{}.CSKR"), ci.name, ci.cskrIce));
|
||||
PAK::Entry* cmdlEnt = (PAK::Entry*)m_pak.lookupEntry(ci.cmdlIce);
|
||||
PAK::Entry* cskrEnt = (PAK::Entry*)m_pak.lookupEntry(ci.cskrIce);
|
||||
cmdlEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_icemodel"), id, ci.name);
|
||||
cskrEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_iceskin"), id, ci.name);
|
||||
if (cmdlEnt != nullptr && cskrEnt != nullptr && cinfEnt != nullptr) {
|
||||
cmdlEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_model"), id, ci.name);
|
||||
cskrEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_skin"), id, ci.name);
|
||||
cinfEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_skel"), id, ci.name);
|
||||
if (ci.cmdlIce.isValid() && ci.cskrIce.isValid()) {
|
||||
charAssoc.m_cmdlRigs[ci.cmdlIce] = {ci.cskrIce, ci.cinf};
|
||||
charAssoc.m_cskrToCharacter[ci.cskrIce] =
|
||||
std::make_pair(entry.id, fmt::format(FMT_STRING("{}.ICE_{}.CSKR"), ci.name, ci.cskrIce));
|
||||
PAK::Entry* cmdlEnt = (PAK::Entry*)m_pak.lookupEntry(ci.cmdlIce);
|
||||
PAK::Entry* cskrEnt = (PAK::Entry*)m_pak.lookupEntry(ci.cskrIce);
|
||||
cmdlEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_icemodel"), id, ci.name);
|
||||
cskrEnt->name = fmt::format(FMT_STRING("ANCS_{}_{}_iceskin"), id, ci.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::map<atUint32, DNAANCS::AnimationResInfo<UniqueID32>> animInfo;
|
||||
|
||||
@@ -338,7 +338,7 @@ bool FRME::Extract(const SpecBase& dataSpec, PAKEntryReadStream& rs, const hecl:
|
||||
"cam.lens_unit = 'FOV'\n"
|
||||
"cam.clip_start = {}\n"
|
||||
"cam.clip_end = {}\n"
|
||||
"bpy.context.scene.render.resolution_x = 480 * {}\n"),
|
||||
"bpy.context.scene.render.resolution_x = int(480 * {})\n"),
|
||||
proj->znear, proj->zfar, proj->aspect);
|
||||
if (proj->aspect > 1.f)
|
||||
os.format(FMT_STRING("cam.angle = math.atan2({}, 1.0 / math.tan(math.radians({} / 2.0))) * 2.0\n"),
|
||||
|
||||
@@ -651,11 +651,16 @@ bool MREA::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
||||
secs.emplace_back(preVisiLen, 0);
|
||||
memcpy(secs.back().data(), preVisiData.get(), preVisiLen);
|
||||
visiGood = true;
|
||||
} else {
|
||||
// TODO: Fix visigen and remove this hack
|
||||
secs.emplace_back(preVisiLen, 0);
|
||||
memcpy(secs.back().data(), preVisiData.get(), preVisiLen);
|
||||
visiGood = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
visiGood = true;
|
||||
|
||||
// TODO: fix visigen so this can be re-enabled
|
||||
#if 0
|
||||
#if !WINDOWS_STORE
|
||||
if (!visiGood) {
|
||||
hecl::ProjectPath visiIntOut = outPath.getWithExtension(".visiint");
|
||||
@@ -723,6 +728,7 @@ bool MREA::Cook(const hecl::ProjectPath& outPath, const hecl::ProjectPath& inPat
|
||||
Log.report(logvisor::Fatal, FMT_STRING("Unable to launch {}"), VisiGenPath);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ void SCLY::ScriptLayer::Enumerate<BigDNA::Read>(athena::io::IStreamReader& rs) {
|
||||
[&type](const ScriptObjectSpec* obj) -> bool { return obj->type == type; });
|
||||
|
||||
if (iter != SCRIPT_OBJECT_DB.end()) {
|
||||
std::unique_ptr<IScriptObject> obj((*iter)->a());
|
||||
std::unique_ptr<IScriptObject> obj((*iter)->loader());
|
||||
obj->type = type;
|
||||
obj->read(rs);
|
||||
objects.push_back(std::move(obj));
|
||||
@@ -141,7 +141,7 @@ void SCLY::ScriptLayer::Enumerate<BigDNA::ReadYaml>(athena::io::YAMLDocReader& r
|
||||
[&type](const ScriptObjectSpec* obj) -> bool { return obj->type == type; });
|
||||
|
||||
if (iter != SCRIPT_OBJECT_DB.end()) {
|
||||
std::unique_ptr<IScriptObject> obj((*iter)->a());
|
||||
std::unique_ptr<IScriptObject> obj((*iter)->loader());
|
||||
obj->read(rs);
|
||||
obj->type = type;
|
||||
objects.push_back(std::move(obj));
|
||||
|
||||
@@ -10,12 +10,12 @@ struct MazeNode : IScriptObject {
|
||||
String<-1> name;
|
||||
Value<atVec3f> location;
|
||||
Value<atVec3f> orientation;
|
||||
Value<bool> unknown1;
|
||||
Value<atUint32> unknown2;
|
||||
Value<atUint32> unknown3;
|
||||
Value<atUint32> unknown4;
|
||||
Value<atVec3f> unknown5;
|
||||
Value<atVec3f> unknown6;
|
||||
Value<atVec3f> unknown7;
|
||||
Value<bool> active;
|
||||
Value<atUint32> col;
|
||||
Value<atUint32> row;
|
||||
Value<atUint32> side;
|
||||
Value<atVec3f> actorPos;
|
||||
Value<atVec3f> triggerPos;
|
||||
Value<atVec3f> effectPos;
|
||||
};
|
||||
} // namespace DataSpec::DNAMP1
|
||||
|
||||
@@ -9,7 +9,7 @@ struct IScriptObject;
|
||||
|
||||
struct ScriptObjectSpec {
|
||||
atUint8 type;
|
||||
IScriptObject* (*a)();
|
||||
IScriptObject* (*loader)();
|
||||
};
|
||||
|
||||
using ScriptObjectDBArray = std::array<const ScriptObjectSpec*, 127>;
|
||||
|
||||
Reference in New Issue
Block a user