add typeconvert.*

This commit is contained in:
aozhiwei 2019-06-25 09:59:32 +08:00
parent 49b3768b01
commit 94b069dca7
12 changed files with 73 additions and 46 deletions

View File

@ -6,6 +6,7 @@
#include "room.h"
#include "loot.h"
#include "app.h"
#include "typeconvert.h"
Building::Building():Entity()
{
@ -43,7 +44,7 @@ void Building::FillMFObjectPart(cs::MFObjectPart* part_data)
part_data->set_object_type(ET_Building);
cs::MFBuildingPart* p = part_data->mutable_union_obj_3();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
TypeConvert::ToPb(pos, p->mutable_pos());
}
void Building::FillMFObjectFull(cs::MFObjectFull* full_data)
@ -51,7 +52,7 @@ void Building::FillMFObjectFull(cs::MFObjectFull* full_data)
full_data->set_object_type(ET_Building);
cs::MFBuildingFull* p = full_data->mutable_union_obj_3();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
TypeConvert::ToPb(pos, p->mutable_pos());
p->set_building_id(meta->i->mapid());
}

View File

@ -4,13 +4,14 @@
#include "human.h"
#include "bullet.h"
#include "metamgr.h"
#include "typeconvert.h"
void FrameEvent::AddAirDrop(int appear_time, int box_id, Vector2D box_pos)
{
cs::MFAirDrop* airdrop = airdrops_.Add();
airdrop->set_appear_time(appear_time);
airdrop->set_box_id(box_id);
box_pos.ToPB(airdrop->mutable_pos());
TypeConvert::ToPb(box_pos, airdrop->mutable_pos());
}
void FrameEvent::AddEmote(Human* hum, int emote_id)
@ -64,8 +65,8 @@ void FrameEvent::AddBullet(Human* hum, Vector2D born_pos, Vector2D dir, float fl
p.set_player_id(hum->entity_uniid);
p.set_bullet_id(hum->curr_weapon->meta->i->use_bullet());
born_pos.ToPB(p.mutable_pos());
dir.ToPB(p.mutable_dir());
TypeConvert::ToPb(born_pos, p.mutable_pos());
TypeConvert::ToPb(dir, p.mutable_dir());
p.set_bulletskin(10001);
p.set_gun_id(hum->curr_weapon->meta->i->id());
p.set_gun_lv(hum->curr_weapon->weapon_lv);
@ -89,7 +90,7 @@ void FrameEvent::AddExplosion(Bullet* bullet, int item_id, Vector2D bomb_pos)
auto& p = std::get<1>(tuple);
p.set_item_id(item_id);
bomb_pos.ToPB(p.mutable_pos());
TypeConvert::ToPb(bomb_pos, p.mutable_pos());
p.set_player_id(bullet->player->entity_uniid);
}
{
@ -110,7 +111,7 @@ void FrameEvent::AddExplosionEx(Human* sender, int item_id, Vector2D bomb_pos, i
auto& p = std::get<1>(tuple);
p.set_item_id(item_id);
bomb_pos.ToPB(p.mutable_pos());
TypeConvert::ToPb(bomb_pos, p.mutable_pos());
p.set_player_id(sender->entity_uniid);
p.set_effect(effect);
}
@ -132,7 +133,7 @@ void FrameEvent::AddSmoke(Bullet* bullet, int item_id, Vector2D pos)
auto& p = std::get<1>(tuple);
p.set_item_id(item_id);
pos.ToPB(p.mutable_pos());
TypeConvert::ToPb(pos, p.mutable_pos());
p.set_player_id(bullet->player->entity_uniid);
}
{

View File

@ -3,6 +3,7 @@
#include "framemaker.h"
#include "human.h"
#include "room.h"
#include "typeconvert.h"
cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
{
@ -11,8 +12,8 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
Room* room = hum->room;
if (room->gas_data.gas_mode == GasJump) {
cs::MFPlane* p = msg->mutable_plane();
room->plane.start_point.ToPB(p->mutable_start_point());
room->plane.end_point.ToPB(p->mutable_end_point());
TypeConvert::ToPb(room->plane.start_point, p->mutable_start_point());
TypeConvert::ToPb(room->plane.end_point, p->mutable_end_point());
}
for (auto& itr : hum->new_objects) {
itr->FillMFObjectFull(msg->add_full_objects());
@ -71,7 +72,7 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum)
}
if (room->gas_data.gas_mode == GasMoving) {
msg->set_gas_progress(room->gas_data.gas_progress);
room->gas_data.pos_old.ToPB(msg->mutable_gas_pos_old());
TypeConvert::ToPb(room->gas_data.pos_old, msg->mutable_gas_pos_old());
}
msg->set_alive_count(room->AliveCount());
}

View File

@ -3,6 +3,7 @@
#include "hero.h"
#include "collider.h"
#include "human.h"
#include "typeconvert.h"
Hero::Hero(): Entity()
{
@ -36,8 +37,8 @@ void Hero::FillMFObjectPart(cs::MFObjectPart* part_data)
part_data->set_object_type(entity_type);
cs::MFHeroPart* p = part_data->mutable_union_obj_10();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
attack_dir.ToPB(p->mutable_dir());
TypeConvert::ToPb(pos, p->mutable_pos());
TypeConvert::ToPb(attack_dir, p->mutable_dir());
}
void Hero::FillMFObjectFull(cs::MFObjectFull* full_data)
@ -45,8 +46,8 @@ void Hero::FillMFObjectFull(cs::MFObjectFull* full_data)
full_data->set_object_type(entity_type);
cs::MFHeroFull* p = full_data->mutable_union_obj_10();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
attack_dir.ToPB(p->mutable_dir());
TypeConvert::ToPb(pos, p->mutable_pos());
TypeConvert::ToPb(attack_dir, p->mutable_dir());
skin.ToPB(p->mutable_skin());
p->set_backpack(backpack);

View File

@ -16,6 +16,7 @@
#include "roommgr.h"
#include "android.h"
#include "gamelog.h"
#include "typeconvert.h"
#include "framework/cpp/utils.h"
#include "framework/cpp/httpclientpool.h"
@ -91,8 +92,8 @@ void Human::FillMFObjectPart(cs::MFObjectPart* part_data)
part_data->set_object_type(ET_Player);
cs::MFPlayerPart* p = part_data->mutable_union_obj_1();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
attack_dir.ToPB(p->mutable_dir());
TypeConvert::ToPb(pos, p->mutable_pos());
TypeConvert::ToPb(attack_dir, p->mutable_dir());
}
void Human::FillMFObjectFull(cs::MFObjectFull* full_data)
@ -100,8 +101,8 @@ void Human::FillMFObjectFull(cs::MFObjectFull* full_data)
full_data->set_object_type(ET_Player);
cs::MFPlayerFull* p = full_data->mutable_union_obj_1();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
attack_dir.ToPB(p->mutable_dir());
TypeConvert::ToPb(pos, p->mutable_pos());
TypeConvert::ToPb(attack_dir, p->mutable_dir());
p->set_health(health);
p->set_max_health(GetMaxHP());
@ -176,8 +177,8 @@ void Human::FillMFTeamData(cs::MFTeamData* team_data)
{
team_data->set_player_id(entity_uniid);
team_data->set_name(name);
pos.ToPB(team_data->mutable_pos());
attack_dir.ToPB(team_data->mutable_dir());
TypeConvert::ToPb(pos, team_data->mutable_pos());
TypeConvert::ToPb(attack_dir, team_data->mutable_dir());
team_data->set_health(health);
team_data->set_max_health(GetMaxHP());
team_data->set_disconnected(false);
@ -1247,8 +1248,8 @@ void Human::FillMFGasData(cs::MFGasData* gas_data)
gas_data->set_duration(std::max(duration * 50, (long long)1000) / 1000);
}
}
room->gas_data.pos_old.ToPB(gas_data->mutable_pos_old());
room->gas_data.pos_new.ToPB(gas_data->mutable_pos_new());
TypeConvert::ToPb(room->gas_data.pos_old, gas_data->mutable_pos_old());
TypeConvert::ToPb(room->gas_data.pos_new, gas_data->mutable_pos_new());
gas_data->set_rad_old(room->gas_data.rad_old);
gas_data->set_rad_new(room->gas_data.rad_new);
}

View File

@ -6,6 +6,7 @@
#include "collider.h"
#include "entity.h"
#include "app.h"
#include "typeconvert.h"
Loot::Loot():Entity()
{
@ -33,7 +34,7 @@ void Loot::FillMFObjectPart(cs::MFObjectPart* part_data)
part_data->set_object_type(ET_Loot);
cs::MFLootPart* p = part_data->mutable_union_obj_5();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
TypeConvert::ToPb(pos, p->mutable_pos());
}
void Loot::FillMFObjectFull(cs::MFObjectFull* full_data)
@ -41,7 +42,7 @@ void Loot::FillMFObjectFull(cs::MFObjectFull* full_data)
full_data->set_object_type(ET_Loot);
cs::MFLootFull* p = full_data->mutable_union_obj_5();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
TypeConvert::ToPb(pos, p->mutable_pos());
p->set_item_id(item_id);
p->set_count(count);

View File

@ -7,6 +7,7 @@
#include "building.h"
#include "human.h"
#include "app.h"
#include "typeconvert.h"
Obstacle::Obstacle():Entity()
{
@ -97,7 +98,7 @@ void Obstacle::FillMFObjectPart(cs::MFObjectPart* part_data)
part_data->set_object_type(ET_Obstacle);
cs::MFObstaclePart* p = part_data->mutable_union_obj_2();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
TypeConvert::ToPb(pos, p->mutable_pos());
p->set_scale(1.0f);
}
@ -106,7 +107,7 @@ void Obstacle::FillMFObjectFull(cs::MFObjectFull* full_data)
full_data->set_object_type(ET_Obstacle);
cs::MFObstacleFull* p = full_data->mutable_union_obj_2();
p->set_obj_uniid(entity_uniid);
pos.ToPB(p->mutable_pos());
TypeConvert::ToPb(pos, p->mutable_pos());
p->set_scale(1.0f);
p->set_obstacle_id(meta->i->thing_id());

View File

@ -13,6 +13,7 @@
#include "loot.h"
#include "app.h"
#include "collider.h"
#include "typeconvert.h"
Player::Player():Human()
{
@ -819,7 +820,7 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
std::abs(msg.move_dir().y()) > FLT_EPSILON
) {
Vector2D old_move_dir;
move_dir.FromPB(&msg.move_dir());
TypeConvert::FromPb(move_dir, &msg.move_dir());
move_dir.Normalize();
moving = true;
}
@ -834,8 +835,8 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg)
std::abs(msg.attack_dir().y()) > 0.00001f
)
){
attack_dir.FromPB(&msg.attack_dir());
attack_dir.Normalize();
TypeConvert::FromPb(attack_dir, &msg.attack_dir());
attack_dir.Normalize();
}
} else {
if (moving) {

View File

@ -0,0 +1,21 @@
#include "precompile.h"
#include "cs_proto.pb.h"
#include "vector2d.h"
namespace TypeConvert
{
void ToPb(const Vector2D& v, cs::MFVector2D* pb_obj)
{
pb_obj->set_x(v.x);
pb_obj->set_y(v.y);
}
void FromPb(Vector2D& v, const cs::MFVector2D* pb_obj)
{
v.x = pb_obj->x();
v.y = pb_obj->y();
}
}

View File

@ -0,0 +1,14 @@
#pragma once
namespace cs
{
class MFVector2D;
}
class Vector2D;
namespace TypeConvert
{
void ToPb(const Vector2D& v, cs::MFVector2D* pb_obj);
void FromPb(Vector2D& v, const cs::MFVector2D* pb_obj);
}

View File

@ -11,25 +11,11 @@
#include <Eigen/Dense>
#endif
#include "cs_proto.pb.h"
const Vector2D Vector2D::UP = Vector2D(0.0f, 1.0f);
const Vector2D Vector2D::RIGHT = Vector2D(1.0f, 0.0f);
const Vector2D Vector2D::DOWN = Vector2D(0.0f, -1.0f);
const Vector2D Vector2D::LEFT = Vector2D(-1.0f, 0.0f);
void Vector2D::ToPB(cs::MFVector2D* pb_obj)
{
pb_obj->set_x(x);
pb_obj->set_y(y);
}
void Vector2D::FromPB(const cs::MFVector2D* pb_obj)
{
x = pb_obj->x();
y = pb_obj->y();
}
void Vector2D::Normalize()
{
#if 1

View File

@ -13,8 +13,6 @@ struct Vector2D
Vector2D(float _x = 0.0f, float _y = 0.0f):x(_x), y(_y) {};
void ToPB(cs::MFVector2D* pb_obj);
void FromPB(const cs::MFVector2D* pb_obj);
void Normalize();
void Rotate(float angle);
float CalcAngle(const Vector2D& b);