Commit graph

121 commits

Author SHA1 Message Date
mykola2312
03ba251c5a fix grammar mistakes in readme 2023-09-11 10:41:53 +03:00
mykola2312
2ecdcb6644 fix typos in readme (again) 2023-09-11 10:39:22 +03:00
mykola2312
7fc5f3e91e fix typos in readme 2023-09-11 03:19:53 +03:00
mykola2312
93d68c4871 add download link to readme 2023-09-11 03:09:09 +03:00
mykola2312
12059610fd add tutorial to README.md 2023-09-11 03:03:37 +03:00
mykola2312
34af300dbd ready for release 2023-09-11 01:27:04 +03:00
mykola2312
b5a73fb148 implement CLI for read-nested and write-nested 2023-09-11 01:23:46 +03:00
mykola2312
130c200376 implement CLI write-value to edit ESH values 2023-09-11 00:41:19 +03:00
mykola2312
fb6c39ffd7 implement CLI write-attribute and write-modifier 2023-09-10 22:06:33 +03:00
mykola2312
ff7ada6fc7 implement CLI list-attributes and list-modifiers 2023-09-10 19:57:08 +03:00
mykola2312
fb4381cf95 implement CLI list-values 2023-09-10 19:35:42 +03:00
mykola2312
e5919850fd implement more CLI interface and utility functions 2023-09-10 19:04:24 +03:00
mykola2312
6030fc29ce implement basic CLI with clap, list-entities and find-entities 2023-09-09 21:41:42 +03:00
mykola2312
7c2fbba153 implemented nested ESH editing 2023-09-09 17:19:31 +03:00
mykola2312
b8d48483f1 impl mutable IntoIter for EntityList 2023-09-09 16:19:39 +03:00
mykola2312
5709e81df0 implement decoding and encoding of Modifiers (they're same as Attributes but with different ESH name) 2023-09-09 16:09:47 +03:00
mykola2312
eff42b2605 Overhaul: migrated from anyhow to my own FError so error handling would be much better and precise 2023-09-09 15:37:45 +03:00
mykola2312
bf5810c4d7 little refactor 2023-09-09 14:42:18 +03:00
mykola2312
6c78133819 Test with skills values. Works fine 2023-09-09 02:12:02 +03:00
mykola2312
8ecd6c1292 Attributes decoding and encoding fully implemented and tested! 2023-09-09 01:54:49 +03:00
mykola2312
9468475d53 improve code functionality 2023-09-09 00:25:19 +03:00
mykola2312
33b1915b83 Player attributes decoding is complete and fully working 2023-09-08 23:28:58 +03:00
mykola2312
33e9cdaa75 Begun implementing Attributes, have added some string tables to work with 2023-09-08 20:57:45 +03:00
mykola2312
74f70c5171 remove silly size param from read_ctx because Decoder doesn't require it anymore 2023-09-08 19:54:41 +03:00
mykola2312
1fdcad3548 ReadStream now doesn't use Raw because &[u8] is more flexible and allow read ESH binaries, + cargo fmt 2023-09-08 19:52:01 +03:00
mykola2312
06ebdc6062 Update on reverse-engineering of player Attributes and Modifiers 2023-09-08 18:07:05 +03:00
mykola2312
3108ad11bb Add new ESH type 2023-09-07 18:20:52 +03:00
mykola2312
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 2023-09-07 16:54:35 +03:00
mykola2312
0c04e466af the same update but for DecoderOpt 2023-09-07 15:43:40 +03:00
mykola2312
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 2023-09-07 15:20:23 +03:00
mykola2312
d060e5ca63 World encoding now fully on WriteStream to write all data to construct new save file 2023-09-07 14:45:48 +03:00
mykola2312
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 2023-09-05 00:23:59 +03:00
mykola2312
88003c2997 modify IntoIterator that now it yields (id, &Entity) 2023-09-05 00:17:48 +03:00
mykola2312
201b51e85c impl IntoIterator for EntityList, so entities can be easily iterated 2023-09-05 00:04:54 +03:00
mykola2312
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 2023-09-04 13:02:32 +03:00
mykola2312
b01a11f9b9 add convert ability for EntityList to convert from world entity_file to separate ent file. Needs to be fixed 2023-09-04 10:19:40 +03:00
mykola2312
41c513f5e9 add CTag for const tag definitions. + cargo fmt 2023-09-04 09:58:19 +03:00
mykola2312
43c3bd11f6 EntityList decoding and encoding fully implemented, working and tested 2023-09-04 09:26:16 +03:00
mykola2312
35ce0e9076 EntityList decoding now fully works and tested 2023-09-04 07:38:59 +03:00
mykola2312
5ea616cd44 implemented EntityList decoding and encoding. But decoding has some bugs that needs to be fixed 2023-09-04 07:14:07 +03:00
mykola2312
4e8cc4a5e8 implement EntityList decoding. May need to deal with ESH-less entities from entity_file block 2023-09-04 03:08:14 +03:00
mykola2312
6d7b9f735b update on EntityList decoding 2023-09-04 03:03:51 +03:00
mykola2312
ff900bf123 implement basic functionality of EntityList 2023-09-04 02:52:18 +03:00
mykola2312
226b8dcfb9 refactor DecoderOpt to DecoderCtx because it is not optional anymore, but it is a context (which makes more sense) 2023-09-03 09:04:39 +03:00
mykola2312
122ee7bfc0 implement Entity decoding and encoding 2023-09-03 02:20:59 +03:00
mykola2312
28c5bf6989 add EntityList that will decode types and entities and manage them 2023-09-03 01:45:47 +03:00
mykola2312
9b151e509b fix 2023-09-03 01:08:29 +03:00
mykola2312
93f75c583f move Opt to DecodeOpt trait because not so many objects need complex decoding 2023-09-03 01:07:34 +03:00
mykola2312
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 2023-09-03 00:52:29 +03:00
mykola2312
aa4a7da90c got better idea with EntityOwner trait 2023-09-02 23:33:30 +03:00