add typeconvert.*
This commit is contained in:
parent
49b3768b01
commit
94b069dca7
@ -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());
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
{
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
@ -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) {
|
||||
|
21
server/gameserver/typeconvert.cc
Normal file
21
server/gameserver/typeconvert.cc
Normal 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();
|
||||
}
|
||||
|
||||
}
|
14
server/gameserver/typeconvert.h
Normal file
14
server/gameserver/typeconvert.h
Normal 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);
|
||||
}
|
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user