Skip to content
Snippets Groups Projects
Commit 2914ab6b authored by Arkerthan's avatar Arkerthan
Browse files

Cleanup README

parent b2d44db9
No related branches found
No related tags found
No related merge requests found
# Free Cities - pregmod
## Common problems
Pregmod is a modification of the original [Free Cities](https://freecitiesblog.blogspot.com/) created by FCdev.
* How do I start the game?
- Run the compile file, go to folder "bin", click the "FC_Pregmod" and play. (Recommendation: Drag it into incognito mode)
## Play the game
* I get an error on gamestart reading "Apologies! A fatal error has occurred. Aborting. Error: Unexpected token @ in JSON at position 0. Stack Trace: SyntaxError: Unexpected token @ in JSON at position 0 at JSON.parse (<anonymous>) at JSON.value" or some variant
- clear cookies
To play the game you have to download the sources first. You can either download an archive of the current state or, if
you plan to keep up to date with current progress, clone the repository.
* Everything is broken!
- Do not copy over your existing download as it may leave old files behind, replace it entirely
* I can't save more than once or twice.
- Known issue caused by sugarcube level changes. Save to file doesn't have this problem and will likely avoid the first problem as well.
- It is possible to increase the memory utilized by your browser to delay this
* I wish to report a sanityCheck issue.
- Great, however a large majority of the results are false positives coming from those specific sections being split over several lines in the name of readability and git grep's intentionally (http://git.661346.n2.nabble.com/bug-git-grep-P-and-multiline-mode-td7613900.html ) lacking support for multiline. An Attempt to add -Pzl (https://gitgud.io/pregmodfan/fc-pregmod/merge_requests/2108 ) created a sub condition black hole. What follows are examples of common false positives that can safely be ignored:
```
[MissingClosingAngleBracket]src/art/vector/Generate_Stylesheet.tw:11:<<print "<style>."+_art_display_class+" {
<<print "<style>."+_art_display_class+" {
position: absolute;
height: 100%;
margin-left: auto;
margin-right: auto;
left: 0;
right: 0;
}
```
Clone the repo:
## How to mod (basic doc):
1. [Install Git for terminal](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) or a Git GUI of your choice.
2. Clone the repo
* Via terminal: `git clone --single-branch https://gitgud.io/pregmodfan/fc-pregmod.git`
3. Get updates
* Via terminal: `git pull`
1. All sources now in the src subdir, in separate files. 1 passage = 1 file.
Compile the game:
2. Special files and dir's:
- src/config - configuration of the story is here.
- src/config/start.tw - contains list of .tw passage files, regenerated automatic, by building scripts. Do not change by hands. (original passage Start from pregmod renamed and moved to src/events/intro/introSummary.tw)
- src/js/storyJS.tw - special passage with [script] tag - contain all native JavaScript from pregmod.
- devTools/tweeGo/targets/sugarcube-2/userlib.js - on original FC JS moved here (I deleted it after moving JS to storyJS.tw). Compare to storyJS.tw but do not copy file here. May conflict with src/js/storyJS.tw if copied.
- src/pregmod - I put all pregmod-only passages here.
- .gitignore - special file for git - to ignore some files. For example - compilation results.
* Windows
* Run compile.bat
* Second run of compile.bat will overwrite without prompt
3. Compilation:
* Linux
1. Ensure executable permission on file `devTools/tweeGo/tweego` (not tweego.exe!)
2. Ensure executable permission on file `compile.sh`
3. In the root dir of sources (where you see src, devTools, bin...) run command `./compile.sh` from console.
Alternatively, if you have make installed, run `make all` in the root directory.
Windows:
Run compile.bat - result will be file bin/FC_pregmod.html
Second run of compile.but will overwrite bin/FC_pregmod.html without prompt.
* Mac
* Not supported directly, but you can use linux compilation script if you download
[tweego for mac](https://github.com/tmedwards/tweego/releases) and replace linux executable with mac executable
in ./devTools/tweeGo/ folder. This is not tested though, so be warned.
Linux:
Ensure executable permission on file "devTools/tweeGo/tweego" (not tweego.exe!)
Ensure executable permission on file "compile.sh"
In the root dir of sources (where you see src, devTools, bin...) run command "./compile.sh" from console
Alternatively, if you have make installed, run "make all" in the root directory
To play open FCpregmod.html in bin/ (Recommendation: Drag it into incognito mode)
Mac:
Not supported directly (I don't have access to Mac for testing).
But you can use linux compilation script if you download tweego for mac from here: https://bitbucket.org/tmedwards/tweego/downloads/ and replace linux executable with mac executable in ./devTools/tweeGo/ folder. This is not tested though, so be warned.
4. Simple comparing and merging with original FC:
## Common problems
Use meld tool. Place folder FreeCities (original FC sources tree) near FreeCitiesPregmod (this sources tree) and use command:
meld FreeCities FreeCitiesPregmod
or just select these folders in meld's GUI.
* I get an error on gamestart reading `Apologies! A fatal error has occurred. Aborting. Error: Unexpected token @ in
JSON at position 0. Stack Trace: SyntaxError: Unexpected token @ in JSON at position 0 at JSON.parse (<anonymous>)
at JSON.value` or some variant
- clear cookies
5. All modders will be very grateful if anyone who makes some changes to game with .html file also post their resulting src folder tree.
* Everything is broken!
- Do not copy over your existing download as it may leave old files behind, replace it entirely
6. For contributors to pregmod: if you don't use git, then you need to post your version of src folder tree, not just produced FC_pregmod.html file!!! This html file can't be reverted to proper sources, and useless as contribution!
* I can't save more than once or twice.
- Known issue caused by sugarcube level changes. Save to file doesn't have this problem and will likely avoid the first problem as well.
- It is possible to increase the memory utilized by your browser to delay this
7. Git workflow:
- Master branch is pregmod-master. Only Pregmodder can add something to it directly. Always contain his last public changes.
- pregmod-dev - branch with experimental code mainly by pregmodfan.
- Any contributions will be placed in separate branches like pregmod-mod-<something> (if it's ready to merge with master complete feature/mod) or pregmod-contrib-<something> if it's partial work until contributions is reviewed.
* I wish to report a sanityCheck issue.
- Great, however a large majority of the results are false positives coming from those specific sections being split
over several lines in the name of readability and git grep's
[intentionally](http://git.661346.n2.nabble.com/bug-git-grep-P-and-multiline-mode-td7613900.html ) lacking support
for multiline. An Attempt to add -Pzl (https://gitgud.io/pregmodfan/fc-pregmod/merge_requests/2108 ) created a
sub condition black hole. What follows are examples of common false positives that can safely be ignored:
```
[MissingClosingAngleBracket]src/art/vector/Generate_Stylesheet.tw:11:<<print "<style>."+_art_display_class+" {
<<print "<style>."+_art_display_class+" {
position: absolute;
height: 100%;
margin-left: auto;
margin-right: auto;
left: 0;
right: 0;
}
```
Typical cycle with git:
1. Make account on gitgud if you don't have usable one.
2. Fork main repository through gitgud interface. (Or pull changes from main repo if you already have fork.)
3. Clone your fork to local machine with git client (Or pull changes if already cloned.)
4. Make you changes as you like, commit, and push result into your forked repository (with git client).
5. (optional, but recommended) Run sanityCheck before final push to catch any errors you missed. (You can ignore errors unrelated to files you changed.)
6. Make merge request through gitgud interface.
## Contribute
First time setup:
0. Follow the steps clone the main repository if you haven't already.
1. Create an account on gitgud if you don't have a usable one.
* (optional) Add an SSH key to your account for easier pushing. This allows you to connect to gitgud through SHH,
which doesn't require your credentials every time.
2. Fork the main repository through gitgud interface.
* (optional) Delete all branches other than pregmod-master, so you don't get them locally when fetching.
3. Setup your fork as a remote
* (optional) Rename the main repository to upstream
* Via terminal: `git remote rename origin upstream`
* Add your repo as remote
* Via terminal: `git remote add origin <url-to-your-fork>`
* The big clone button in the gitgud interface on your fork gives you the relevant URLs.
Typical cycle with Git:
1. Get changes from upstream
* Via terminal: `git pull`
2. Checkout a new branch for your work
* Via terminal: `git checkout -b <branch-name>`
3. Make your changes as you like
4. Commit your changes
* Via terminal: `git commit <files>`
* Make the commit message useful (`Fix X`, `Add Y`, etc.)
5. (optional, but recommended) Run sanityCheck before final push to catch any errors you missed. (You can ignore errors unrelated to files you changed.)
6. Push result into your forked repository
* Via terminal:
* Initially `git push --set-upstream origin <branch-name>`
* Afterwards `git push` will suffice.
7. Create merge request through gitgud interface.
8. Checkout `pregmod-master` in preparation of next change.
9. Once the merge request was accepted, delete your local branch.
* Via terminal: `git branch -d <branch-name>`
## Submodules
......
Subproject commit 813625f280aecab97e00eee3eb76acfbc2e15e5c
Subproject commit d6a74e05d5a2367355f52eddd2840d4e11510668
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment