Commit graph

  • 03ba251c5a fix grammar mistakes in readme master mykola2312 2023-09-11 10:41:53 +03:00
  • 2ecdcb6644 fix typos in readme (again) mykola2312 2023-09-11 10:39:22 +03:00
  • 7fc5f3e91e fix typos in readme mykola2312 2023-09-11 03:19:53 +03:00
  • 93d68c4871 add download link to readme mykola2312 2023-09-11 03:09:09 +03:00
  • 12059610fd add tutorial to README.md v0.1.0 mykola2312 2023-09-11 03:03:37 +03:00
  • 34af300dbd ready for release mykola2312 2023-09-11 01:27:04 +03:00
  • b5a73fb148 implement CLI for read-nested and write-nested mykola2312 2023-09-11 01:23:46 +03:00
  • 130c200376 implement CLI write-value to edit ESH values mykola2312 2023-09-11 00:41:19 +03:00
  • fb6c39ffd7 implement CLI write-attribute and write-modifier mykola2312 2023-09-10 22:06:33 +03:00
  • ff7ada6fc7 implement CLI list-attributes and list-modifiers mykola2312 2023-09-10 19:57:08 +03:00
  • fb4381cf95 implement CLI list-values mykola2312 2023-09-10 19:35:42 +03:00
  • e5919850fd implement more CLI interface and utility functions mykola2312 2023-09-10 19:04:24 +03:00
  • 6030fc29ce implement basic CLI with clap, list-entities and find-entities mykola2312 2023-09-09 21:41:42 +03:00
  • 7c2fbba153 implemented nested ESH editing mykola2312 2023-09-09 17:19:31 +03:00
  • b8d48483f1 impl mutable IntoIter for EntityList mykola2312 2023-09-09 16:19:39 +03:00
  • 5709e81df0 implement decoding and encoding of Modifiers (they're same as Attributes but with different ESH name) mykola2312 2023-09-09 16:09:47 +03:00
  • eff42b2605 Overhaul: migrated from anyhow to my own FError so error handling would be much better and precise mykola2312 2023-09-09 15:37:45 +03:00
  • bf5810c4d7 little refactor mykola2312 2023-09-09 14:42:18 +03:00
  • 6c78133819 Test with skills values. Works fine mykola2312 2023-09-09 02:12:02 +03:00
  • 8ecd6c1292 Attributes decoding and encoding fully implemented and tested! mykola2312 2023-09-09 01:54:49 +03:00
  • 9468475d53 improve code functionality mykola2312 2023-09-09 00:25:19 +03:00
  • 33b1915b83 Player attributes decoding is complete and fully working mykola2312 2023-09-08 23:28:58 +03:00
  • 33e9cdaa75 Begun implementing Attributes, have added some string tables to work with mykola2312 2023-09-08 20:57:45 +03:00
  • 74f70c5171 remove silly size param from read_ctx because Decoder doesn't require it anymore mykola2312 2023-09-08 19:54:41 +03:00
  • 1fdcad3548 ReadStream now doesn't use Raw because &[u8] is more flexible and allow read ESH binaries, + cargo fmt mykola2312 2023-09-08 19:52:01 +03:00
  • 06ebdc6062 Update on reverse-engineering of player Attributes and Modifiers mykola2312 2023-09-08 18:07:05 +03:00
  • 3108ad11bb Add new ESH type mykola2312 2023-09-07 18:20:52 +03:00
  • 03dccf3d4d Decoder::decode now uses ReadStream mut reference instead of raw offset size, therefore less allocations needed, because there is only one ReadStream that being passed around decoders mykola2312 2023-09-07 16:54:35 +03:00
  • 0c04e466af the same update but for DecoderOpt mykola2312 2023-09-07 15:43:40 +03:00
  • a6bfa194b9 HUGE PERFOMANCE UPDATE: Now Decoder::encode uses mutable ref to WriteStream to write new data, instead of creating allocation every time something needs to be encoded mykola2312 2023-09-07 15:20:23 +03:00
  • d060e5ca63 World encoding now fully on WriteStream to write all data to construct new save file mykola2312 2023-09-07 14:45:48 +03:00
  • 676b7b598f impl cmp<str> for FString, so comparing to other string types will be as easy as now it is. Add get_type_idx for EntityList mykola2312 2023-09-05 00:23:59 +03:00
  • 88003c2997 modify IntoIterator that now it yields (id, &Entity) mykola2312 2023-09-05 00:17:48 +03:00
  • 201b51e85c impl IntoIterator for EntityList, so entities can be easily iterated mykola2312 2023-09-05 00:04:54 +03:00
  • 5f63a69c38 realized that ent file isn't list of entities, but a single entity, however it 100% compatible with entity_file block, so dump_to_entfile implemented to assist in reverse-engineering mykola2312 2023-09-04 13:02:32 +03:00
  • b01a11f9b9 add convert ability for EntityList to convert from world entity_file to separate ent file. Needs to be fixed mykola2312 2023-09-04 10:19:40 +03:00
  • 41c513f5e9 add CTag for const tag definitions. + cargo fmt mykola2312 2023-09-04 09:58:19 +03:00
  • 43c3bd11f6 EntityList decoding and encoding fully implemented, working and tested mykola2312 2023-09-04 09:26:16 +03:00
  • 35ce0e9076 EntityList decoding now fully works and tested mykola2312 2023-09-04 07:38:59 +03:00
  • 5ea616cd44 implemented EntityList decoding and encoding. But decoding has some bugs that needs to be fixed mykola2312 2023-09-04 07:14:07 +03:00
  • 4e8cc4a5e8 implement EntityList decoding. May need to deal with ESH-less entities from entity_file block mykola2312 2023-09-04 03:08:14 +03:00
  • 6d7b9f735b update on EntityList decoding mykola2312 2023-09-04 03:03:51 +03:00
  • ff900bf123 implement basic functionality of EntityList mykola2312 2023-09-04 02:52:18 +03:00
  • 226b8dcfb9 refactor DecoderOpt to DecoderCtx because it is not optional anymore, but it is a context (which makes more sense) mykola2312 2023-09-03 09:04:39 +03:00
  • 122ee7bfc0 implement Entity decoding and encoding mykola2312 2023-09-03 02:20:59 +03:00
  • 28c5bf6989 add EntityList that will decode types and entities and manage them mykola2312 2023-09-03 01:45:47 +03:00
  • 9b151e509b fix mykola2312 2023-09-03 01:08:29 +03:00
  • 93f75c583f move Opt to DecodeOpt trait because not so many objects need complex decoding mykola2312 2023-09-03 01:07:34 +03:00
  • 1620098672 add GAT to Decoder Opt (so there will be lifetime), introducce EntityList which will control behavior of entity decoding/encoding and management of entities mykola2312 2023-09-03 00:52:29 +03:00
  • aa4a7da90c got better idea with EntityOwner trait mykola2312 2023-09-02 23:33:30 +03:00
  • c4a0c6b0c5 fix mykola2312 2023-09-02 21:52:43 +03:00
  • 7f0be36c30 fix mykola2312 2023-09-02 21:52:41 +03:00
  • b190315920 deny rust 2018 idioms so no hidden lifetimes - I will be able to manage lifetimes better mykola2312 2023-09-02 21:43:20 +03:00
  • 535bcc8b94 impl Entity. todo! mykola2312 2023-09-01 15:49:03 +03:00
  • 10fd8bb7cc Decoder now has Opt type of implementing additional info that required to deal with complex decoding and add more context to result objects mykola2312 2023-09-01 15:12:05 +03:00
  • c49622e2ac update on entity_file: successfully able to parse all entities, therefore reverse-engineering theory is complete and proved for entity_file mykola2312 2023-09-01 02:31:29 +03:00
  • ea5874594f update on entity_file mykola2312 2023-09-01 01:15:05 +03:00
  • d8f1ef6dbd cargo fmt mykola2312 2023-08-31 13:51:41 +03:00
  • 4d78a5ca8b implement correct Hash for FString so indexing and hash maps would be working as intended mykola2312 2023-08-31 13:51:13 +03:00
  • 4df2803fdb implement Display, PartialEq and Borrow for FString. May need to complete it so indexing by &str would be possible mykola2312 2023-08-31 13:46:20 +03:00
  • a5d44bd730 implement Display for ESHValue mykola2312 2023-08-31 13:03:47 +03:00
  • 8fe330b368 fixed bug wihen WriteStream::write_bytes wrote data at wrong position. ESH encoding and decoding fully implemented and tested mykola2312 2023-08-31 12:12:33 +03:00
  • bc339d57a6 implemented ESH encoding, but found out there was a critical bug in WriteStream. Needs to be fixed ASAP mykola2312 2023-08-31 11:15:50 +03:00
  • c69ae933c0 implement full decoding of ESH values mykola2312 2023-08-31 10:32:24 +03:00
  • 1339b4da9e implement more ESH types mykola2312 2023-08-31 09:43:45 +03:00
  • 344ec241e7 add some ESH types to enum mykola2312 2023-08-31 09:17:53 +03:00
  • 71de729437 update on format mykola2312 2023-08-31 08:53:40 +03:00
  • e03785e045 update on ESH data types mykola2312 2023-08-31 08:36:24 +03:00
  • 561e4a4dd3 some discoveries about ESH data types mykola2312 2023-08-31 06:54:57 +03:00
  • 628010e6c2 implement ESH mykola2312 2023-08-31 00:17:20 +03:00
  • 7ac969aff4 implement SSG (though it's unknown) mykola2312 2023-08-30 23:57:03 +03:00
  • 6597063d7c World::encode now uses ReadStream mykola2312 2023-08-30 22:45:21 +03:00
  • 2868f90a77 SGD decoding and encoding fully implemented and tested mykola2312 2023-08-30 21:58:38 +03:00
  • 3765844efb fix bug in read_bytes mykola2312 2023-08-30 21:36:05 +03:00
  • cc8a49f8da fix bug in read_bytes mykola2312 2023-08-30 21:36:03 +03:00
  • ee124abf64 implement encode for SGD mykola2312 2023-08-30 21:30:56 +03:00
  • a52aed8934 start implementing SGD mykola2312 2023-08-30 20:57:05 +03:00
  • 236bf7fdca Tag now uses streamed read/write mykola2312 2023-08-30 01:44:52 +03:00
  • 4a60850712 implement WriteStream mykola2312 2023-08-30 01:36:27 +03:00
  • 69aa2ded18 update on sgd: found out that unk1 was actually a number of dialog lines mykola2312 2023-08-30 00:36:15 +03:00
  • d2a9a9394b add license Микола 2023-08-30 00:32:49 +03:00
  • a978269cd5 add README.md mykola2312 2023-08-30 00:30:10 +03:00
  • 26c99c529d test ReadStream with SGD decoding mykola2312 2023-08-29 23:26:24 +03:00
  • aa0990e472 add visibility in impl ReadStream mykola2312 2023-08-29 23:08:53 +03:00
  • 36a6140ca9 implement ReadStream mykola2312 2023-08-29 23:08:04 +03:00
  • 584d361095 cargo fmt mykola2312 2023-08-29 23:01:44 +03:00
  • b43efe1abd successful attempt to decode sgd. Realized, that I need to implement some stream reading mykola2312 2023-08-29 21:39:07 +03:00
  • 889e2060b3 fix get_enc_size for FString mykola2312 2023-08-29 19:26:11 +03:00
  • 1c1c7754d4 refactor FString a little bit mykola2312 2023-08-29 08:18:16 +03:00
  • e24f67843f FString ANSI decoding/encoding mykola2312 2023-08-29 08:15:41 +03:00
  • 0eb6de377c make FString pub mykola2312 2023-08-29 07:56:52 +03:00
  • 2ac56b9f01 encode in Decoder trait now returns Result, so encoding errors will be handled mykola2312 2023-08-29 07:54:49 +03:00
  • 0cd80927be FString proper encoding mykola2312 2023-08-29 07:51:49 +03:00
  • 650cbcaaca implement FString for ANSI and WCS2 (UTF-16 1251) encodings mykola2312 2023-08-29 07:10:52 +03:00
  • 1b05779355 update save.rs to use super instead of crate mykola2312 2023-08-29 06:01:07 +03:00
  • edfa27a8d5 migrate from "crate::" to "super::" for more flexibility mykola2312 2023-08-29 05:59:50 +03:00
  • cdd6ec023e change get_enc_len to get_enc_size because "size" is more appropriate term mykola2312 2023-08-29 05:48:00 +03:00
  • ecfd10adbc add get_enc_len to Decoder trait mykola2312 2023-08-28 19:04:57 +03:00
  • 493376a805 update notes mykola2312 2023-08-28 04:50:41 +03:00
  • 17df24833f update on esh format mykola2312 2023-08-28 00:51:26 +03:00