aboutsummaryrefslogtreecommitdiff
path: root/src/player.h
Commit message (Expand)AuthorAge
* Keep track of player itemGiuseppe Bilotta2011-08-11
* Refactor player's eye position codingGiuseppe Bilotta2011-08-11
* Introduce Player::getLightPositionGiuseppe Bilotta2011-08-11
* Respect base virtual functions' signaturesGiuseppe Bilotta2011-08-08
* Ladders implemented!Mark Holmquist2011-08-01
* Fixed handling of inventory in creative mode (normal inventory is not trashed...Perttu Ahola2011-07-30
* hopefully fixed the privilege problemsPerttu Ahola2011-05-29
* player passwords and privileges in world/auth.txtPerttu Ahola2011-05-29
* Added 'shout' player privilegeCiaran Gultnieks2011-05-23
* Passwords - password entry at main menu, stored and checked by serverCiaran Gultnieks2011-05-20
* Privileges to/from string conversion functions standalone, not static membersCiaran Gultnieks2011-05-16
* Improved server commands and added player permissions.Ciaran Gultnieks2011-05-16
* Code refactoring; split half of main.cpp to game.cpp.Perttu Ahola2011-04-23
* Some work-in-progress in hp and mobs and a frightening amount of random fixes.Perttu Ahola2011-04-21
* Fixed some problems with crafting and inventoryPerttu Ahola2011-04-11
* Temporary commit; lots of test code and stuffPerttu Ahola2011-02-21
* fixed bug in sneakingPerttu Ahola2011-02-14
* added sneaking/crouching and changelogPerttu Ahola2011-02-14
* bug-fixin'Perttu Ahola2011-02-08
* mapgen tweakingPerttu Ahola2011-02-06
* This map generator is starting to look pretty good now... also, disabled load...Perttu Ahola2011-02-01
* Now texture handling is fast. Also now players are saved on disk.Perttu Ahola2011-01-28
* Players are left on server while server is running. No passwords yet.Perttu Ahola2011-01-15
* tweaking around, including mapgen, player speed in water, settingsPerttu Ahola2011-01-15
* some work-in-progressPerttu Ahola2010-12-22
* added dedicated server build without irrlichtPerttu Ahola2010-12-19
* better waterPerttu Ahola2010-11-30
* license stuffPerttu Ahola2010-11-29
* Initial filesPerttu Ahola2010-11-27
pan class="hl opt">("sprite"), mesh(""), visual_size(1,1), spritediv(1,1), initial_sprite_basepos(0,0), is_visible(true), makes_footstep_sound(false), automatic_rotate(0), stepheight(0), automatic_face_movement_dir(false), automatic_face_movement_dir_offset(0.0), backface_culling(true) { textures.push_back("unknown_object.png"); colors.push_back(video::SColor(255,255,255,255)); } std::string ObjectProperties::dump() { std::ostringstream os(std::ios::binary); os<<"hp_max="<<hp_max; os<<", physical="<<physical; os<<", collideWithObjects="<<collideWithObjects; os<<", weight="<<weight; os<<", collisionbox="<<PP(collisionbox.MinEdge)<<","<<PP(collisionbox.MaxEdge); os<<", visual="<<visual; os<<", mesh="<<mesh; os<<", visual_size="<<PP2(visual_size); os<<", textures=["; for(u32 i=0; i<textures.size(); i++){ os<<"\""<<textures[i]<<"\" "; } os<<"]"; os<<", colors=["; for(u32 i=0; i<colors.size(); i++){ os<<"\""<<colors[i].getAlpha()<<","<<colors[i].getRed()<<","<<colors[i].getGreen()<<","<<colors[i].getBlue()<<"\" "; } os<<"]"; os<<", spritediv="<<PP2(spritediv); os<<", initial_sprite_basepos="<<PP2(initial_sprite_basepos); os<<", is_visible="<<is_visible; os<<", makes_footstep_sound="<<makes_footstep_sound; os<<", automatic_rotate="<<automatic_rotate; os<<", backface_culling="<<backface_culling; return os.str(); } void ObjectProperties::serialize(std::ostream &os) const { writeU8(os, 1); // version writeS16(os, hp_max); writeU8(os, physical); writeF1000(os, weight); writeV3F1000(os, collisionbox.MinEdge); writeV3F1000(os, collisionbox.MaxEdge); os<<serializeString(visual); writeV2F1000(os, visual_size); writeU16(os, textures.size()); for(u32 i=0; i<textures.size(); i++){ os<<serializeString(textures[i]); } writeV2S16(os, spritediv); writeV2S16(os, initial_sprite_basepos); writeU8(os, is_visible); writeU8(os, makes_footstep_sound); writeF1000(os, automatic_rotate); // Added in protocol version 14 os<<serializeString(mesh); writeU16(os, colors.size()); for(u32 i=0; i<colors.size(); i++){ writeARGB8(os, colors[i]); } writeU8(os, collideWithObjects); writeF1000(os,stepheight); writeU8(os, automatic_face_movement_dir); writeF1000(os, automatic_face_movement_dir_offset); writeU8(os, backface_culling); // Add stuff only at the bottom. // Never remove anything, because we don't want new versions of this } void ObjectProperties::deSerialize(std::istream &is) { int version = readU8(is); if(version == 1) { try{ hp_max = readS16(is); physical = readU8(is); weight = readF1000(is); collisionbox.MinEdge = readV3F1000(is); collisionbox.MaxEdge = readV3F1000(is); visual = deSerializeString(is); visual_size = readV2F1000(is); textures.clear(); u32 texture_count = readU16(is); for(u32 i=0; i<texture_count; i++){ textures.push_back(deSerializeString(is)); } spritediv = readV2S16(is); initial_sprite_basepos = readV2S16(is); is_visible = readU8(is); makes_footstep_sound = readU8(is); automatic_rotate = readF1000(is); mesh = deSerializeString(is); u32 color_count = readU16(is); for(u32 i=0; i<color_count; i++){ colors.push_back(readARGB8(is)); } collideWithObjects = readU8(is); stepheight = readF1000(is); automatic_face_movement_dir = readU8(is); automatic_face_movement_dir_offset = readF1000(is); backface_culling = readU8(is); }catch(SerializationError &e){} } else { throw SerializationError("unsupported ObjectProperties version"); } }