Commit Graph

460 Commits (a0e89208a0b301666b626a51cdae30e552e50537)

Author SHA1 Message Date
David Cernat 4db64e1721 [Client] Synchronize spellcasting for non-bipedal creatures 8 years ago
David Cernat 8b79cdd4f4 [Server] Document script functions, part 3
Also reorder functions in Cells and CharClass so they are consistent with the rest.
8 years ago
David Cernat 43a3daf0aa [General] Add & implement PlayerShapeshift packet for werewolf states 8 years ago
David Cernat ad9fa0631a [General] Rename jailText to jailEndText and add jailProgressText in PlayerJail 8 years ago
David Cernat e36c0afc59 [General] Send faction reputation via PlayerFaction packets 8 years ago
David Cernat be93ec8ef6 [General] Implement ObjectState packet 8 years ago
David Cernat 083b46394d [General] Add ignoreJailSkillIncreases to PlayerJail packets 8 years ago
David Cernat 5962570c48 [General] Add jailText to PlayerJail packets 8 years ago
David Cernat 3280f0c5ee [General] Implement PlayerJail packet
Rework server's DeathFunctions into MechanicsFunctions

Remove connection between PlayerResurrect and jailing
8 years ago
David Cernat 3529f9b090 [General] Add placeholders for PlayerJail, ObjectState & ConsoleCommand 8 years ago
David Cernat 4e74910fdb [General] Disable automatic sync for PlayerJournal and PlayerFaction
Simplify PlayerFaction packets by removing BOTH action
8 years ago
David Cernat 2c05b7f747 [Server] Rename InitiateEvent() into InitializeEvent() for consistency 8 years ago
David Cernat 1d504a665f [General] Add RANK, EXPULSION and BOTH actions to PlayerFaction packets 8 years ago
David Cernat 60574ae667 [General] Implement jail time as a death penalty 8 years ago
David Cernat 71313c5aa6 [General] Implement PlayerMap packet, part 1 8 years ago
David Cernat 1f682749d6 [General] Add optional notes to PasswordDialogs 8 years ago
Koncord 0cf09adb44 [General] Move AddProcessor to BasePacketProcessor 8 years ago
Koncord ed3e089126 [General] Use C++11 way to delete Ctor 8 years ago
Koncord 5b2cab4c6b [General] Change NULL to nullptr 8 years ago
Koncord 2b1b4ce2f1 [General] Update PacketControllers to C++11 8 years ago
Koncord fcccd7b665 [General] Remove creatureStats.mDead from packets 8 years ago
David Cernat 813a3c89c4 [General] Implement PlayerBook packet to track skill books read 8 years ago
David Cernat b3b73c5cd2 [General] Implement resurrection at nearest shrine or temple 8 years ago
David Cernat 78f29302ef [General] Fix PlayerJournal logic by sending only refIds for its actors
Additionally, make the refIds for actors usable in script functions.
8 years ago
David Cernat 48c63dbce9 [General] Fix ObjectLock packets by making hasCellData true for them 8 years ago
David Cernat ebf7740969 [General] Repurpose GameConsole packet as GameSettings & add difficulty to it 8 years ago
Koncord 6192543381 [General] Move bracket to the right position 8 years ago
David Cernat 70d9374a6a [General] Implement PlayerKillCount packets 8 years ago
David Cernat 5b23da8e1c [General] Rename unused PlayerRegionChange packet into PlayerKillCount 8 years ago
David Cernat ee5c9b65c5 [General] When changing region, send new region name in PlayerCellChange 8 years ago
David Cernat 34378fbb4f [General] Make coding style consistent 8 years ago
David Cernat a84cf7c191 [General] Fix packet validation for ActorPackets sent by server scripts
This allows Lua scripts to send actor data again, which hadn't been possible anymore after 2ed1bfe
8 years ago
Koncord 2ed1bfe427 [General] Simplify ActorPackets 8 years ago
Koncord fd8e833d6a [General] Simplify WorldPackets 8 years ago
Koncord 556bf18535 [General] Minor improvements for player packets
Add compression, remove useless loop iterations
8 years ago
Koncord ad873e16b8 [Client] Limiting updates to ~64 per second 8 years ago
Koncord c2600bac8e [General] Allow single bit booleans in packets 8 years ago
Koncord 7e5e877fda [General] Pack player->direction.pos to 1 byte 8 years ago
Koncord dded330cc4 [General] Get rid Z axis in direction.pos 8 years ago
Koncord ae9e5750ac [General] Aggressive compression of rotations 8 years ago
Koncord 3905e0dae9 [General] Get rid direction.rot again 8 years ago
David Cernat d0a0b6ffa4 [General] Add basic integrity checks to all Actor and World packets 8 years ago
David Cernat a353a21280 [General] Fix code style inconsistencies 8 years ago
David Cernat 068a45be87 [General] Synchronize player & NPC rotation animations 8 years ago
David Cernat f4cdedd8cb [General] Synchronize summoned creatures 8 years ago
David Cernat 4e5c8873e0 [General] Use ObjectSpawn instead of ObjectPlace for actors 8 years ago
David Cernat c211d53190 [General] Use only direction.pos in ActorPosition, as advised by Koncord 8 years ago
David Cernat 27148ce9eb [General] Add placeholders for 12 new packets, to be implemented soon
Additionally, make it slightly clearer who created which previously existing packets.
8 years ago
Koncord f7473e3379 [General] Fix copy-posty bug 8 years ago
David Cernat 9fe5b4a305 [General] Remove debug line from ActorAnimFlags 8 years ago
Koncord 8478fed98a [General] Simplify Actor packets. 8 years ago
Koncord f6fba70a4e [General] Use compression for Position packets 8 years ago
Koncord 4934be18f0 [General] Add compression flag to RW methods
Advantages: and 2 bytes per float value, using huffman algorithm for structures and strings.
Disadvantages: bad for performance and precision for float/double variables.
8 years ago
David Cernat 73b9683182 [General] Make most ActorPackets smaller by not including refIds in them 8 years ago
David Cernat 311ce4119d [General] Fix logic issues related to ActorEquipment 8 years ago
David Cernat 4f273932af [General] Implement sending and reading of ActorEquipment packets 8 years ago
David Cernat 32879adc5b [General] Allow ObjectTrap to trigger traps, not just disarm them 8 years ago
Koncord 24d4e1c222 [General] Remove useless PacketSendMyID 8 years ago
Koncord a9fc096c9a [General] Move password of master server to header 8 years ago
Koncord 3e284a1139 [General] Use unsigned int instead unsigned long
sizeof(unsigned long) != 8 on Windows
8 years ago
David Cernat 7ec431ce3d [General] Make packet style more consistent 8 years ago
David Cernat 11369f6513 [General] Implement sending and reading of PlayerTopic packets 8 years ago
David Cernat 08de349133 [General] Add placeholders for PlayerTopic & ObjectTrap packets 8 years ago
David Cernat 870fd9a78b [General] Remove ObjectUnlock packet, use ObjectLock with 0 lock instead 8 years ago
Koncord 80bd268de6 [General] Use simple types for master server packets 8 years ago
David Cernat b0cd636924 [General] Add basic integrity check to ProxyMasterPacket 8 years ago
Koncord 892960f913 [General] Add ctor to MasteData::Plugin 8 years ago
Koncord 956b573323 [General] Use different ordering channels for packets 8 years ago
David Cernat e6983993c2 [General] Implement sending and reading of PlayerFaction packets 8 years ago
David Cernat 0189dbf916 [General] Make JournalItem consistent with other packet structs 8 years ago
David Cernat ad388c7e12 [General] Add placeholders for ActorEquipment & PlayerFaction packets
Also reorder packets and packet processors.
8 years ago
David Cernat f527fe9ebe [General] Add basic integrity check to reading of ActorList packets
Additionally, add newlines to files missing them.
8 years ago
David Cernat 05564bd123 [General] Add basic integrity check to reading of Container packets 8 years ago
David Cernat cc559cf8e2 [General] Don't send packets for dead LocalActors, to fix Position spam 8 years ago
David Cernat de49f5f175 [General] Add and use isActor bool for WorldObject 8 years ago
David Cernat 9d2c5c3502 [General] Simplify structure of BaseEvent 8 years ago
Koncord 8422ae0ce8 [General] Fix iterators in ProxyMasterPacket 8 years ago
David Cernat 4d81455020 [General] Rework and simplify death reasons so they work with NPCs 8 years ago
David Cernat 60cf623455 [Client] Make DedicatedActors transition into LocalActors when eligible 8 years ago
Koncord 8fa8b8d310 [General] Add __WINDOWS define 8 years ago
Koncord 47e6820f97 [General] Move printWithWidth and intToHexStr to components 8 years ago
David Cernat 63dd2d9246 [General] Remove code related to ActorAuthority packets that is not used 8 years ago
David Cernat c3c04bbfc3 [General] Make coding style consistent 8 years ago
Koncord 931a5896ec [General] Improve PacketPreInit 8 years ago
David Cernat 1a699329e5 [General] Set new BaseActor booleans in corresponding packets 8 years ago
David Cernat 730df061b3 [General] Add hasPositionData and hasStatsDynamicData bools to BaseActor 8 years ago
Koncord 9c7c0f9989 [General] Send creatureModel & useCreatureName via PacketPlayerBaseInfo 8 years ago
David Cernat e8e0090b9b [General] Use new SimpleCreatureStats struct in BaseActor 8 years ago
Koncord 465a05bad0 [Client] Add ability to look like a creature for the DedicatedPlayers 8 years ago
Koncord a4e45de6ca [General] Fix playersCount 8 years ago
David Cernat 6a21ec1fdc [General] Rename PlayerPos into PlayerPosition 8 years ago
David Cernat 7b07d6651f [General] Add and use PlayerBounty packet and matching script functions 8 years ago
Koncord 6e8750b9e4 [General] Change list players to vector players 8 years ago
Koncord 9643eb6026 [Master] Notify server about announce state
Rename structure Server to QueryData
8 years ago
David Cernat 2eaa25e7d4 [General] Update version to 0.6-alpha 8 years ago
David Cernat f4c3a28141 [General] Finalize ActorCellChange packet structure 8 years ago
Koncord 546bb42abb [General] Add Master Packets 8 years ago
Koncord 5854f680f0 [General] Add Master data types 8 years ago
Koncord 41005b1add [General] Add orderChannel to packets 8 years ago
David Cernat f2e8e14665 [General] Add shouldSend boolean to mwmp::Attack 8 years ago
David Cernat cc2250815d [General] Add packet data for attacks on and by Actors 8 years ago
David Cernat b1a394cd02 [General] Change chars into bools in mwmp::Attack for clarity 8 years ago
David Cernat a650683bae [General] Add and use Target struct in mwmp::Attack 8 years ago
David Cernat 9882ceedf3 [General] Remove attackerGuid from mwmp::Attack because it is redundant 8 years ago
David Cernat caf5428532 [General] Rename mwmp::Attack vars in preparation for Actor support 8 years ago
David Cernat 2397afc6ce [General] Move mwmp::Attack to BaseStructs 8 years ago
David Cernat 9f226253d4 [General] Rename mwmp::Attack's refid into refId for consistency 8 years ago
David Cernat f0f0b2dcc9 [General] Send and read ActorSpeech packets 8 years ago
David Cernat 1fb11dafef [General] Send and read ActorStatsDynamic packets 8 years ago
David Cernat 870886192b [General] Rename DYNAMICSTATS into STATS_DYNAMIC 8 years ago
David Cernat ca8fd1aa72 [General] Remove ActorHeadRotation packet because it would be too spammy 8 years ago
David Cernat 2872675f5e [General] Send and read ActorAnimPlay packets 8 years ago
David Cernat e7960eee76 [General] Rename DrawState packets into AnimFlags ones for clarity 8 years ago
David Cernat d2fe777f89 [General] Send and read ActorDrawState packets 8 years ago
David Cernat 10ad5b2a99 [General] Remove BaseActor's AnimStates that are no longer needed 8 years ago
David Cernat 0d196af685 [General] Add placeholders for 7 new ActorPackets 8 years ago
David Cernat 7700b82952 [General] Clean up BaseEvent and BaseStructs 8 years ago
David Cernat 7662297334 [General] Use ESM::Position to store BaseActor's movement 8 years ago
David Cernat 742d6f653a [General] Add ActorPosition packet 8 years ago
David Cernat b6c3830ea0 [General] Rename WorldObject's pos into position for consistency 8 years ago
David Cernat 174f316787 [General] Rename PacketActorFrame into PacketActorTest 8 years ago
David Cernat a5d0486c82 [General] Set actor data correctly 8 years ago
David Cernat c52084a028 [General] Use BaseActorLists in ActorPackets 8 years ago
David Cernat 4f3d05eed2 [General] Add ActorList class 8 years ago
David Cernat 070c6a3bd4 [General] Add ActorPacketController & make controller var names clearer 8 years ago
David Cernat b8ca2382c7 [General] Remove variables that are not going to be used in ActorFrame 8 years ago
David Cernat d3f3fb5d05 [Client] Correctly implement movement animation sync for NPCs 8 years ago
David Cernat d829d219c3 [General] Add (very) partial animation sync for NPCs 8 years ago
David Cernat 67ec81ad0c [Client] Use utility function for converting strings in mwmp::Cell 8 years ago
David Cernat d24cde16dd [General] Add simple BaseActor and LocalActor classes 8 years ago
David Cernat 8f18dc87c4 [General] Model ActorList on Container more closely by including action 8 years ago
David Cernat 8c2469bf6d [General] Add placeholder ActorList, ActorAuthority & ActorFrame packets 8 years ago
David Cernat 2bd81c3de0 [Client] Use mpNum for every WorldObject 8 years ago
David Cernat ddedcac510 [General] Read and write mpNums in world packets 8 years ago
David Cernat 8cc61b6048 [General] Generate mpNums on the server when forwarding ID_OBJECT_PLACE 8 years ago
Koncord 1d2a6d9056 [Server] Rename dontRead to avoidReading 8 years ago
Koncord 4daf471874 [General] Add dontRead flag 8 years ago
Koncord 48a59cf9e9 [General] Add new class BasePacketProcessor 8 years ago
Koncord 3d294500ba [General] Use std::replace() instead for-each in Utils::convertPath() 8 years ago
Koncord 435d9780a7 [General] Fix PacketPreInit 8 years ago
Koncord 690211ad99 [General] Extract BaseEvent & BasePlayer from packets to functions
Move Send and Read functions to BasePacket
8 years ago
Koncord 0c1905e842 [General] Add PreInit packet 8 years ago
Koncord 0d53a6916d [General] Move repeated code in Packet() to base class 8 years ago
Koncord c353e18645 [General] Move Utils from server to components
Rewrite CRC32 functions to the Boost equivalent
8 years ago
David Cernat 5c269a5f8d [General] Rename ID_GAME_DIE and ID_GAME_RESURRECT 8 years ago
David Cernat 4aaa9ed694 [General] Update version to 0.5.2 8 years ago
David Cernat e6bc7ad463 [General] Make all flying players fly correctly, including TCL users 8 years ago
David Cernat 060e440ab2 [General] Update version to 0.5.1 8 years ago
Koncord 715422aff6 [General] Fix memory leak in Log dtor 8 years ago
Koncord e3f4c63ea6 [General] Delete invalid & redundant code 8 years ago
Koncord 059043fea9 [General] Change signature of BaseEvent::action 8 years ago
Koncord 158e9b3b09 [Server] Add ability to set password to server from config & scripts 8 years ago
David Cernat 3e50cf60e7 [General] Update version to 0.5.0 8 years ago
David Cernat a4526605a6 [General] Remove goldValue from ContainerItem because it is never useful 8 years ago
David Cernat 4f2b88df8a [General] Remove owner var from ContainerItem because it is always empty 8 years ago
David Cernat 941d6269c1 [General] Slightly reorder variables in ID_OBJECT_PLACE 8 years ago
David Cernat 27c4015f50 [General] Remove unused packet placeholder ID_OBJECT_HEALTH 8 years ago
David Cernat 3b604a432e [General] Restructure ID_CONTAINER to allow multiple containers at once 8 years ago
David Cernat c8cbfbef62 [General] Sketch out server requests to players for container data 8 years ago
David Cernat 6144ca95d8 Set version to 0.4.2 8 years ago
David Cernat 5038353792 [General] Rename BaseEvent's state into doorState & adjust related funcs 8 years ago
David Cernat d8a9a5f6c9 [General] Send item owner in ID_CONTAINER 8 years ago
David Cernat 3614b21e10 [General] Send charge and goldValue in ID_CONTAINER 8 years ago
David Cernat 182b238b5f [General] Rename WorldEvent into BaseEvent 8 years ago
David Cernat 75392297b5 [General] Use vector::at in most places 8 years ago
David Cernat 60d6a6d463 [Client] See when other players remove items from containers 8 years ago
David Cernat f314b13edf [General] Rename item health into charge, for consistency with OpenMW 8 years ago
David Cernat ecc456fea9 [General] Include charge int in WorldObject & send it w/ ID_OBJECT_PLACE 8 years ago
David Cernat 04d45b9dbb [General] Rename packets to show they are for players only, not NPCs 8 years ago
David Cernat 9f8bed9be1 [General] Add action types to WorldEvent's ContainerChanges 8 years ago
David Cernat a07e616878 [General] Add ContainerItem and ContainerChanges structs to WorldEvent 8 years ago
David Cernat 6328ffb9aa [General] In ID_GAME_ATTRIBUTE & ID_GAME_SKILL, rename GAME into PLAYER 8 years ago
David Cernat 9130c1f302 [General] Rename ID_CONTAINER_ADD into ID_CONTAINER 8 years ago
David Cernat d2cf96af99 [General] Repurpose the unused ID_CONTAINER_REMOVE into ID_OBJECT_HEALTH 8 years ago
David Cernat c1427b2558 [General] Simultaneously send loads & unloads in ID_PLAYER_CELL_STATE 8 years ago
David Cernat 958ff06ca8 [General] Rename ID_DOOR_ACTIVATE into ID_DOOR_STATE 8 years ago
David Cernat 2c5cc82f49 [Server] Add script functions for getting world object placement info 8 years ago
David Cernat 15ed4b8da6 [Components] Use 24 hour format instead of 12 for log file timestamps 8 years ago
David Cernat 8bc6dfe590 [General] Remove duplicate constructor in PacketObjectUnlock 8 years ago
David Cernat 9f1e491a75 [General] Make WorldEvents store information about multiple objects 8 years ago
David Cernat 244da19a51 [General] Turn ID_PLAYER_CELL_LOAD into ID_PLAYER_CELL_STATE for clarity 8 years ago
David Cernat 4dc0ba21ec [General] Fix packet ID for ID_PLAYER_CELL_LOAD 8 years ago
David Cernat 97aabf4a7d [General] Sketch out sending of cell loading/unloading info in packets 8 years ago
David Cernat 158d606477 [General] Leave one blank line at the end of every tes3mp code file 8 years ago
David Cernat 63c8a98083 [General] Stop using virtual functions in BasePlayer 8 years ago
David Cernat 1d9c6ddd81 [General] Add placeholders for the new packet ID_PLAYER_CELL_LOAD 8 years ago
David Cernat 35e453dec3 [General] Sketch out most of functionality for journal saving/loading 8 years ago
David Cernat d308897f95 Rename PacketItems, PacketSpells into InventoryChanges, SpellbookChanges 8 years ago
David Cernat e2c595fc5d Add preliminary structure for journal changes 8 years ago
David Cernat e9b22814b9 Create placeholder for ID_GAME_JOURNAL 8 years ago
David Cernat a69f294ef0 Rename ID_GAME_CELL into ID_PLAYER_CELL_CHANGE 8 years ago
David Cernat 83277a1512 Send spellbook in LocalPlayer CharGen & change UPDATE action name to SET 8 years ago
David Cernat 33e85c54de Rename BasePlayer Inventory & Spellbook into PacketItems & PacketSpells
This avoids confusion when either of those is used to store and send a single item, and no longer requires coming up with confusing variable names like realSpellbook or realInventory for actual full spellbooks and inventories.
8 years ago
David Cernat 78c6ab2a99 Clean up client Networking by putting item & spell logic in LocalPlayer 8 years ago
David Cernat 253ded1ee3 Use new getFilenameStamp() method to generate timestamps for filenames 8 years ago
David Cernat 3932654d5d Use log filenames w/ timestamps instead of adding numbers to their ends 8 years ago
Koncord b5c586d5b7 Add and implement ID_MASTER_QUERY 8 years ago
Koncord 6311745595 Update version 8 years ago
Koncord 7595b33461 Implement spellbook 8 years ago
Koncord 6e6237541a Fix "comparison between signed and unsigned integer expressions" 8 years ago