1
This commit is contained in:
parent
710a5151ab
commit
1f58b56efb
@ -1,6 +1,9 @@
|
||||
#include "precompile.h"
|
||||
|
||||
#include <f8/udplog.h>
|
||||
|
||||
#include "mt/Hero.h"
|
||||
#include "mt/Equip.h"
|
||||
|
||||
IMPL_TABLE(mt::Hero)
|
||||
|
||||
@ -116,4 +119,169 @@ namespace mt
|
||||
return itr != shot_animations.end() ? &itr->second : nullptr;
|
||||
}
|
||||
|
||||
void Hero::LoadHeroAndEquipShotData()
|
||||
{
|
||||
a8::XObject xobj;
|
||||
#if 0
|
||||
xobj.ReadFromFile(res_path + "shot_animation.json");
|
||||
#endif
|
||||
{
|
||||
auto hero_list_xobj = xobj.At("hero");
|
||||
std::vector<std::string> keys;
|
||||
hero_list_xobj->GetKeys(keys);
|
||||
for (auto& key : keys) {
|
||||
auto hero_xobj = hero_list_xobj->At(key);
|
||||
int hero_id = a8::XValue(key);
|
||||
std::vector<std::string> keys2;
|
||||
hero_xobj->GetKeys(keys2);
|
||||
|
||||
for (auto& key2 : keys2) {
|
||||
auto anim_xobj = hero_xobj->At(key2);
|
||||
int id = a8::XValue(key2);
|
||||
int t = anim_xobj->At("t") ? anim_xobj->At("t")->AsXValue().GetInt() : 0;
|
||||
|
||||
float r_x = 0;
|
||||
float r_y = 0;
|
||||
float r_z = 0;
|
||||
if (anim_xobj->At("r") && anim_xobj->At("r")->IsObject()) {
|
||||
r_x = anim_xobj->At("r")->At("x")->AsXValue().GetDouble();
|
||||
r_y = anim_xobj->At("r")->At("y")->AsXValue().GetDouble();
|
||||
r_z = anim_xobj->At("r")->At("z")->AsXValue().GetDouble();
|
||||
}
|
||||
|
||||
float l_x = 0;
|
||||
float l_y = 0;
|
||||
float l_z = 0;
|
||||
if (anim_xobj->At("l") && anim_xobj->At("l")->IsObject()) {
|
||||
l_x = anim_xobj->At("l")->At("x")->AsXValue().GetDouble();
|
||||
l_y = anim_xobj->At("l")->At("y")->AsXValue().GetDouble();
|
||||
l_z = anim_xobj->At("l")->At("z")->AsXValue().GetDouble();
|
||||
}
|
||||
|
||||
float p3_x = 0;
|
||||
float p3_y = 0;
|
||||
float p3_z = 0;
|
||||
if (anim_xobj->At("p3") && anim_xobj->At("p3")->IsObject()) {
|
||||
p3_x = anim_xobj->At("p3")->At("x")->AsXValue().GetDouble();
|
||||
p3_y = anim_xobj->At("p3")->At("y")->AsXValue().GetDouble();
|
||||
p3_z = anim_xobj->At("p3")->At("z")->AsXValue().GetDouble();
|
||||
}
|
||||
|
||||
float p4_x = 0;
|
||||
float p4_y = 0;
|
||||
float p4_z = 0;
|
||||
if (anim_xobj->At("p4") && anim_xobj->At("p4")->IsObject()) {
|
||||
|
||||
p4_x = anim_xobj->At("p4")->At("x")->AsXValue().GetDouble();
|
||||
p4_y = anim_xobj->At("p4")->At("y")->AsXValue().GetDouble();
|
||||
p4_z = anim_xobj->At("p4")->At("z")->AsXValue().GetDouble();
|
||||
}
|
||||
|
||||
float p5_x = 0;
|
||||
float p5_y = 0;
|
||||
float p5_z = 0;
|
||||
if (anim_xobj->At("p5") && anim_xobj->At("p5")->IsObject()) {
|
||||
p5_x = anim_xobj->At("p5")->At("x")->AsXValue().GetDouble();
|
||||
p5_y = anim_xobj->At("p5")->At("y")->AsXValue().GetDouble();
|
||||
p5_z = anim_xobj->At("p5")->At("z")->AsXValue().GetDouble();
|
||||
}
|
||||
|
||||
{
|
||||
const mt::Hero* hero_meta = mt::Hero::GetById(hero_id);
|
||||
if (hero_meta) {
|
||||
mt::HeroShotAnimation anim;
|
||||
anim.id = id;
|
||||
anim.t = t;
|
||||
|
||||
anim.r_x = r_x;
|
||||
anim.r_y = r_y;
|
||||
anim.r_z = r_z;
|
||||
|
||||
anim.l_x = l_x;
|
||||
anim.l_y = l_y;
|
||||
anim.l_z = l_z;
|
||||
|
||||
anim.p3_x = p3_x;
|
||||
anim.p3_y = p3_y;
|
||||
anim.p3_z = p3_z;
|
||||
|
||||
anim.p4_x = p4_x;
|
||||
anim.p4_y = p4_y;
|
||||
anim.p4_z = p4_z;
|
||||
|
||||
anim.p5_x = p5_x;
|
||||
anim.p5_y = p5_y;
|
||||
anim.p5_z = p5_z;
|
||||
|
||||
#if 0
|
||||
hero_meta->shot_animations[id] = anim;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
f8::UdpLog::Instance()->Info
|
||||
("shot animation hero_id:%d anim_id:%d t:%f r_x:%f r_y:%f r_z:%f l_x:%f l_y:%f l_z:%f",
|
||||
{
|
||||
hero_id,
|
||||
id,
|
||||
t,
|
||||
r_x,
|
||||
r_y,
|
||||
r_z,
|
||||
l_x,
|
||||
l_y,
|
||||
l_z
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
auto equip_list_xobj = xobj.At("equip");
|
||||
std::vector<std::string> keys;
|
||||
equip_list_xobj->GetKeys(keys);
|
||||
for (auto& key : keys) {
|
||||
auto equip_xobj = equip_list_xobj->At(key);
|
||||
int equip_id = a8::XValue(key);
|
||||
|
||||
float x = equip_xobj->At("x")->AsXValue().GetDouble();
|
||||
float y = equip_xobj->At("y")->AsXValue().GetDouble();
|
||||
float z = equip_xobj->At("z")->AsXValue().GetDouble();
|
||||
|
||||
float movex = equip_xobj->At("movex") ?
|
||||
equip_xobj->At("movex")->AsXValue().GetDouble() : 0;
|
||||
float movey = equip_xobj->At("movey") ?
|
||||
equip_xobj->At("movey")->AsXValue().GetDouble() : 0;
|
||||
float movez = equip_xobj->At("movez") ?
|
||||
equip_xobj->At("movez")->AsXValue().GetDouble() : 0;
|
||||
|
||||
#if 0
|
||||
const mt::Equip* equip_meta = mt::Equip::GetById(equip_id);
|
||||
if (equip_meta) {
|
||||
equip_meta->gun_muzzle_position = std::make_shared<std::tuple<float, float, float>>
|
||||
(
|
||||
x,
|
||||
y,
|
||||
z
|
||||
);
|
||||
equip_meta->movex_position = std::make_shared<std::tuple<float, float, float>>
|
||||
(
|
||||
movex,
|
||||
movey,
|
||||
movez
|
||||
);
|
||||
}
|
||||
#endif
|
||||
f8::UdpLog::Instance()->Info
|
||||
("weapon animation equip_id:%d x:%f y:%f z:%f movex:%f lmovey:%f movez:%f",
|
||||
{
|
||||
equip_id,
|
||||
x,
|
||||
y,
|
||||
z,
|
||||
movex,
|
||||
movey,
|
||||
movez
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -50,6 +50,8 @@ namespace mt
|
||||
int RandDrop() const;
|
||||
const HeroShotAnimation* GetShotAnimi(int shotfire) const;
|
||||
|
||||
private:
|
||||
static void LoadHeroAndEquipShotData();
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user