2
0
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:
2022-02-08 03:46:22 -05:00
38 changed files with 621 additions and 442 deletions

View File

@@ -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

View File

@@ -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;

View File

@@ -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"),

View File

@@ -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
}
}

View File

@@ -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));

View File

@@ -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

View File

@@ -9,7 +9,7 @@ struct IScriptObject;
struct ScriptObjectSpec {
atUint8 type;
IScriptObject* (*a)();
IScriptObject* (*loader)();
};
using ScriptObjectDBArray = std::array<const ScriptObjectSpec*, 127>;