Elma library for Rust

Advertise your levels, contests, sites etc.

Moderator: Moporators

Post Reply
User avatar
skint0r
39mins club
Posts: 768
Joined: 16 Jun 2002, 07:36
Location: Oslo, Norway

Elma library for Rust

Post by skint0r »

https://github.com/elmadev/elma-rust

Tried to make something akin to sigveseb's Python library, but for Rust. In addition to dealing with levels it can also read and write replays. Still kinda work in progress, just something I've been slowly working on while learning Rust. Probably no one else here will ever use this or anything, plus if you use Rust you could probably make something better yourself anyway.

I won't really write too much about how to use it here since I doubt anyone will try, but if you ever want to mongo around with it feel free to ask if you're just getting started with Rust. There's documentation for every function and structure on the github page though.

Some examples of retarded things you could do:
Play around with replays and change information in existing frames
Also using it for making this map/image maker

Some features still missing:
Checking topology stuff like head inside ground, intersecting polygon lines etc.
Reading Across lev and rec files (probably ez addition but not very priority)
Last edited by skint0r on 12 May 2018, 17:06, edited 1 time in total.
Prestigious member of 14.6x Tutor14 club
User avatar
Pab
38mins club
Posts: 887
Joined: 4 Apr 2008, 23:46

Re: Elma library for Rust

Post by Pab »

Someday... i'll use this, its already written in my future.

Also you could link your technical documentation on wiki elma :wink:
My Youtube Channel Level Stats Maker Battle Notifier!

Image
Image
Signatür ruined by SveinR - smaller plz :*
User avatar
skint0r
39mins club
Posts: 768
Joined: 16 Jun 2002, 07:36
Location: Oslo, Norway

Re: Elma library for Rust

Post by skint0r »

o yes... still need to put that rec info there also so didn't figure out where to post it yet. for mans who didn't see, there's already these text files with all rec and lev info, but I was working on putting it all to elma wiki in some form, but dunno quite how to best display it all. so far got this: http://wiki.elmaonline.net/Technical
Prestigious member of 14.6x Tutor14 club
User avatar
skint0r
39mins club
Posts: 768
Joined: 16 Jun 2002, 07:36
Location: Oslo, Norway

Re: Elma library for Rust

Post by skint0r »

Because of #developers talk in Discord recently, I finally had some reason to update this library a little bit. While very few, if any, people will still use this, guess I might as well write about it here. As in the first post, if you ever want to toy around with Rust and do Elma related stuff, feel free to ask for help.

Updated in library:
  • Support really basic state.dat reading and writing (best times only, needs a valid (can be empty) state.dat file as a base)
  • Full LGR reading and writing support (though it doesn't check if it's a valid LGR yet in terms of picture list and attributes like sizes, amount etc.)
  • Refactored a lot of stuff to be better.
Moved it to elmadev org here https://github.com/elmadev/elma-rust
Full documentation here https://docs.rs/elma/
Prestigious member of 14.6x Tutor14 club
sunl
Kuski
Posts: 346
Joined: 27 Jul 2013, 16:23

Re: Elma library for Rust

Post by sunl »

Beautiful! Too bad I've never used Rust :p. When I was writing my stuff, I discovered if I recall that some lgrs (about 10%) made using ?EasyLGR (the Russian one- I'm not on my computer atm so can't check) have corrupted transparency values for special pictures included from pictures.lst (e.g. grass pictures, apples) so in that case I wouldn't throw an error automatically per se
Last edited by sunl on 13 May 2018, 14:38, edited 1 time in total.
edahl
Kuski
Posts: 51
Joined: 14 May 2007, 20:58

Re: Elma library for Rust

Post by edahl »

I use this for some types and the state.dat-reading, works like a charm
New old newb :beer:
Image
User avatar
skint0r
39mins club
Posts: 768
Joined: 16 Jun 2002, 07:36
Location: Oslo, Norway

Re: Elma library for Rust

Post by skint0r »

Super big thanks to Smibu for adding these final things. The library now will give byte accurate saving of replay files (previously there were some random values that I had no idea how were generated, although it never impacted actual replay data). He also did the final state.dat parsing, which includes all the player specific settings stored in the file. Previously I had only bothered to add reading and writing of best times, now state.dat reading and writing is also accurate.

As always, if you want to try out programming any Elma related stuff that involves using any of its files, but you have no idea where to start: I'd be happy to help you out how to use Rust and this library, though it can maybe be a bit too daunting for complete beginners compared to using easier languages.

I eventually hope to add the missing pieces to the library, which right now is Across support (in the future I would like to be able to make smooth fps Across movies with big resolution and proper zoom etc like Elma has!), and topology checking of anything that can create invalid levels.
Prestigious member of 14.6x Tutor14 club
Post Reply