himmlisches / csbreedmod

MIT License
1 stars 1 forks source link

cs development #3

Open picobyte opened 2 years ago

picobyte commented 2 years ago

With a more up to date push of the code I could develop therein, create a feature branch and make a pull request for merging. Do you use code revision locally git, or something else? My reverse compiled code builds and runs, but will differ from your code, which could complicate merging. Currently I'm just doing cleanup of code patterns, keeping semantics.

for code changes I use a tool I wrote a long time ago for Linux kernel source code janitoring. An old version is still available on kernelnewbies.org, not sure if anyone uses it, or something similar. A simplified version I just posted here: https://git.sr.ht/~rjck/regenerate

Besides the patterns included in the repo I used some specific patterns for corrupted saviors corrections after extraction from jar. Vim opens class files and allows writing jad files, which are java, but with some specific errors. closures do not convert well. also strings have issues, and large integers become hexadecimals.

picobyte commented 2 years ago

change in PerformDistract(), Chosen.java, below switch ((dignity / 33) | (debased ? 0 : 4) | (modest ? 8 : 0)) {

picobyte commented 2 years ago

If we're going to load text from json, toml or yaml then we cannot use the String.format approach but should adopt a tag approach I had earlier. Maybe the text is more readable using tags anyway. For text tags, I think it's best to adopt a scheme similar to the one used in the inform7 language. If you don't know about it, it's a very descriptive language and also uses tags. Maybe it's best to adopt tags similarly, to avoid future problems. Current tags are different.

Example of a clothing / stripping library in inform7: https://github.com/FictitiousFrode/AIF/blob/master/Erotic%20Storytelling.i7x#L438

himmlisches commented 2 years ago

I found that using decompiled code of this project ended up with some pretty terrible classes. The base files in my project (Project, Chosen, Forsaken, etc.) are based on the main dev's original source code, rather than decompiled versions of the releases. I'd recommend using those as well, as future releases from the main dev could change drastically when decompiled, even if the source code was changed in a fairly modular way.

I've only had dev experience with small teams where everyone was trusted with their changes, so I don't have any experience with public version control (I think what I'm doing is code revision locally git, but I've never heard that exact terminology used). If you've got a way you'd like to run version control I'd happily adopt your standard/give permissions.

himmlisches commented 2 years ago

Right now the original dev seems to have hard coded all the strings, so thats a mess. I was planning on loading descriptive text via a .csv file parse, but I haven't really considered how to code the portions beyond that.

picobyte commented 2 years ago

I found that using decompiled code of this project ended up with some pretty terrible classes

I agree, but without the source code, this was what I had available to get to the latest release. I'm in my current branch a bit reluctant to make changes, because after a new release, I may have to redo that all.

If you've got a way you'd like to run version control I'd happily adopt your standard/give permissions.

Thanks, if you have access to the original source code and permission to publish, then we could update. I just made one commit per release, because those jars were available. Ideal would be directly part of the development branch, but the dev can do what works best for him.

For work, research, I often write hands-on scripts. For larger projects I work with one or two colleagues, but I've worked on a bit larger on-line.

I was planning on loading descriptive text via a .csv file parse, but I haven't really considered how to code the portions beyond that.

I already wrote something like this, using toml files. In https://github.com/picobyte/cs_build I have a setup wherein my csbreedmod fork is a git submodule. A bit complex, but that's to be able to build. toml files in resources folder of cs_build. The java code is in my csbreedmod fork, default branch

picobyte commented 2 years ago

if you have difficulty with this, I also posted about it in the corrupted saviors blog. There's an added requirement in the pom.xml, included in my cs_build repo, and I have to build the cs jar with the toml4j jar included for this to work, beside the resource toml files.