vrtc / honeydew (public) (License: CC0) (since 2023-12-20) (hash sha1)
Warcraft 3: The Frozen Throne 1.27 custom scenario.
List of commits:
Subject Hash Author Date (UTC)
doc: add basic build instructions 0fbeb1f61f266b7430d9365e3c282e64f751487d Vladyslav Bondarenko 2023-12-20 01:32:07
feat: add script dependency declarations 4dc32d10ed485bc6fd6856bffa269d4dcd2be4e0 Vladyslav Bondarenko 2023-12-20 01:30:33
feat!: improve Jass preprocessor ef275cd4087e2023c7107583685a5d1e40395786 Vladyslav Bondarenko 2023-12-20 01:21:07
feat: add arcane blast spell 1c2e8853a32b2c35ffdb1ea9d2342ff9bd9b8669 Vladyslav Bondarenko 2023-12-19 13:07:09
fix: unique hero per player c7910812bf1957513aab9067e817ca57634d4834 Vladyslav Bondarenko 2023-12-19 13:05:50
feat: heroes do not require resources to hire 717364a931afcde3496058a3f6100d95c92f7fe7 Vladyslav Bondarenko 2023-12-18 15:47:54
fix: add user force singleton 62f7007392e88829951855f9bd5eab3e7a5552aa Vladyslav Bondarenko 2023-12-17 13:02:08
doc: update design notes to self d8caf093082f02efc919b01cc7bfddd9193d0531 Vladyslav Bondarenko 2023-12-17 12:35:50
feat: add victory script 8d0299b42a3e61ffee708395017967dc288ed1b8 Vladyslav Bondarenko 2023-12-17 12:28:18
feat: summon any hero instantly b3657cf44de4558f3e6a2eac5d7916a036aa3dad Vladyslav Bondarenko 2023-12-16 04:19:10
fix: remove debug trace 7022f33a403d9d37f3f84acda98501ca76e1f981 Vladyslav Bondarenko 2023-12-16 04:18:53
feat: add hero selection 230e7f365c3b564c39edeb7a5d76ceb343234da1 Vladyslav Bondarenko 2023-12-14 16:26:23
build: Use git-archive to package bundles 666f7110532eba52212a35290a9e194170a00bc7 Vladyslav Bondarenko 2023-12-14 12:11:09
feat!: build skeleton project da405d9978fcb6c8414249ceda4e07848e34f62a Vladyslav Bondarenko 2023-12-14 11:59:17
Commit 0fbeb1f61f266b7430d9365e3c282e64f751487d - doc: add basic build instructions
Author: Vladyslav Bondarenko
Author date (UTC): 2023-12-20 01:32
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2023-12-20 01:32
Parent(s): 4dc32d10ed485bc6fd6856bffa269d4dcd2be4e0
Signer:
Signing key: EFF9624877D25D02
Signing status: E
Tree: 0c45e6fc06a3343bfd8b7e84ef21eba2ee633295
File Lines added Lines deleted
AUTHORS.txt 1 0
COPYING.txt 121 0
README.md 40 0
doc/build.md 99 0
File AUTHORS.txt added (mode: 100644) (index 0000000..b8691bd)
1 Vladyslav Bondarenko <vladyslavbond@pm.me> (design, level design, scripting)
File COPYING.txt added (mode: 100644) (index 0000000..0e259d4)
1 Creative Commons Legal Code
2
3 CC0 1.0 Universal
4
5 CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 HEREUNDER.
13
14 Statement of Purpose
15
16 The laws of most jurisdictions throughout the world automatically confer
17 exclusive Copyright and Related Rights (defined below) upon the creator
18 and subsequent owner(s) (each and all, an "owner") of an original work of
19 authorship and/or a database (each, a "Work").
20
21 Certain owners wish to permanently relinquish those rights to a Work for
22 the purpose of contributing to a commons of creative, cultural and
23 scientific works ("Commons") that the public can reliably and without fear
24 of later claims of infringement build upon, modify, incorporate in other
25 works, reuse and redistribute as freely as possible in any form whatsoever
26 and for any purposes, including without limitation commercial purposes.
27 These owners may contribute to the Commons to promote the ideal of a free
28 culture and the further production of creative, cultural and scientific
29 works, or to gain reputation or greater distribution for their Work in
30 part through the use and efforts of others.
31
32 For these and/or other purposes and motivations, and without any
33 expectation of additional consideration or compensation, the person
34 associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 is an owner of Copyright and Related Rights in the Work, voluntarily
36 elects to apply CC0 to the Work and publicly distribute the Work under its
37 terms, with knowledge of his or her Copyright and Related Rights in the
38 Work and the meaning and intended legal effect of CC0 on those rights.
39
40 1. Copyright and Related Rights. A Work made available under CC0 may be
41 protected by copyright and related or neighboring rights ("Copyright and
42 Related Rights"). Copyright and Related Rights include, but are not
43 limited to, the following:
44
45 i. the right to reproduce, adapt, distribute, perform, display,
46 communicate, and translate a Work;
47 ii. moral rights retained by the original author(s) and/or performer(s);
48 iii. publicity and privacy rights pertaining to a person's image or
49 likeness depicted in a Work;
50 iv. rights protecting against unfair competition in regards to a Work,
51 subject to the limitations in paragraph 4(a), below;
52 v. rights protecting the extraction, dissemination, use and reuse of data
53 in a Work;
54 vi. database rights (such as those arising under Directive 96/9/EC of the
55 European Parliament and of the Council of 11 March 1996 on the legal
56 protection of databases, and under any national implementation
57 thereof, including any amended or successor version of such
58 directive); and
59 vii. other similar, equivalent or corresponding rights throughout the
60 world based on applicable law or treaty, and any national
61 implementations thereof.
62
63 2. Waiver. To the greatest extent permitted by, but not in contravention
64 of, applicable law, Affirmer hereby overtly, fully, permanently,
65 irrevocably and unconditionally waives, abandons, and surrenders all of
66 Affirmer's Copyright and Related Rights and associated claims and causes
67 of action, whether now known or unknown (including existing as well as
68 future claims and causes of action), in the Work (i) in all territories
69 worldwide, (ii) for the maximum duration provided by applicable law or
70 treaty (including future time extensions), (iii) in any current or future
71 medium and for any number of copies, and (iv) for any purpose whatsoever,
72 including without limitation commercial, advertising or promotional
73 purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 member of the public at large and to the detriment of Affirmer's heirs and
75 successors, fully intending that such Waiver shall not be subject to
76 revocation, rescission, cancellation, termination, or any other legal or
77 equitable action to disrupt the quiet enjoyment of the Work by the public
78 as contemplated by Affirmer's express Statement of Purpose.
79
80 3. Public License Fallback. Should any part of the Waiver for any reason
81 be judged legally invalid or ineffective under applicable law, then the
82 Waiver shall be preserved to the maximum extent permitted taking into
83 account Affirmer's express Statement of Purpose. In addition, to the
84 extent the Waiver is so judged Affirmer hereby grants to each affected
85 person a royalty-free, non transferable, non sublicensable, non exclusive,
86 irrevocable and unconditional license to exercise Affirmer's Copyright and
87 Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 maximum duration provided by applicable law or treaty (including future
89 time extensions), (iii) in any current or future medium and for any number
90 of copies, and (iv) for any purpose whatsoever, including without
91 limitation commercial, advertising or promotional purposes (the
92 "License"). The License shall be deemed effective as of the date CC0 was
93 applied by Affirmer to the Work. Should any part of the License for any
94 reason be judged legally invalid or ineffective under applicable law, such
95 partial invalidity or ineffectiveness shall not invalidate the remainder
96 of the License, and in such case Affirmer hereby affirms that he or she
97 will not (i) exercise any of his or her remaining Copyright and Related
98 Rights in the Work or (ii) assert any associated claims and causes of
99 action with respect to the Work, in either case contrary to Affirmer's
100 express Statement of Purpose.
101
102 4. Limitations and Disclaimers.
103
104 a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 surrendered, licensed or otherwise affected by this document.
106 b. Affirmer offers the Work as-is and makes no representations or
107 warranties of any kind concerning the Work, express, implied,
108 statutory or otherwise, including without limitation warranties of
109 title, merchantability, fitness for a particular purpose, non
110 infringement, or the absence of latent or other defects, accuracy, or
111 the present or absence of errors, whether or not discoverable, all to
112 the greatest extent permissible under applicable law.
113 c. Affirmer disclaims responsibility for clearing rights of other persons
114 that may apply to the Work or any use thereof, including without
115 limitation any person's Copyright and Related Rights in the Work.
116 Further, Affirmer disclaims responsibility for obtaining any necessary
117 consents, permissions or other rights required for any use of the
118 Work.
119 d. Affirmer understands and acknowledges that Creative Commons is not a
120 party to this document and has no duty or obligation with respect to
121 this CC0 or use of the Work.
File README.md added (mode: 100644) (index 0000000..eca50c7)
1 # honeydew
2
3 This is a custom scenario for an old computer game WarCraft 3: The Frozen
4 Throne, made by fan community of modders.
5
6 The only supported version of the game is 1.27.
7
8 ## Players
9
10 Players should only be interested in the map archive file, recognizeable by the
11 file extension `*.w3x`. This repository contains scripts that are used to
12 produce the complete map archive file ready to be played. These scripts
13 themselves are not needed at runtime during play.
14
15 The complete scenario that is ready to be played or tested should be found
16 naturally on fan websites. This repository and instructions it contains are
17 aimed at developers first.
18
19 ## Developers
20
21 TODO add detailed build instructions
22
23 Instructions on how to build the project are contained in `doc/build.md` text
24 file. Beside the original game itself (patch 1.27), required tools include:
25 `git`, `pjass`, `m4`, `smpq`, `make`.
26
27 Source scripts for custom spells and other Jass utilities are under `src/`
28 directory. Most of these may be easily exported to other projects, without
29 understanding the whole build process.
30
31 ## Copying
32
33 Everyone is free to use, modify or share this project. Text file `COPYING.txt`
34 contains more details on the mode in which this project is shared.
35
36 ## Authors
37
38 Text file `AUTHORS.txt` contains list of contributions that were made
39 explicitly for this project alone. Tools and experience employed are outside of
40 it's scope, and are tracked entirely separately in their respective projects.
File doc/build.md added (mode: 100644) (index 0000000..7da0945)
1 # honeydew build instructions
2
3 ## Motivation
4
5 The purpose of the custom build process is to aid script developer convenience
6 and add some advanced development features. Specifically, macro preprocessor,
7 dependency management, detailed error messages, automated packaging,
8 versioning. Also planned for eventual implementation are globalization and
9 semi-automated testing.
10
11 Most of the major features were implemented in the past by Word Editor
12 modifications, like Jass New Gen Pack or vjass. Instead of implementing a
13 custom integrated solution, this project relies much more on free generic
14 software development tools.
15
16 ## Dependencies
17
18 ### Windows
19
20 To build this project on Windows advanced user knowledge is required.
21 Contributions to the instructions are welcome. Obviously, the resulting map
22 archive file must work in game regardless of the underlying operating system.
23
24 ### Debian 12 (bullseye)
25
26 ```
27 apt-get install git m4 make smpq
28 ```
29
30 Most importantly, it requires pjass. Some distributions of the game may bundle
31 pjass.
32
33 Upstream pjass repository may be found here:
34
35 https://github.com/lep/pjass
36
37 Fork of pjass with Debian 12 packaging may be found here:
38
39 https://rocketgit.com/user/vrtc/pjass
40
41 ## Build
42
43 After the map is saved in the World Editor, the World Editor will remove all
44 the patches this project makes to the map archive file. Therefore, the map will
45 become unplayable.
46
47 To make the scripts work this build process must be followed. Every time
48 updates to terrain or objects need to be saved, the build process for scripts
49 must be repeated again, to make sure the map archive file is patched correctly.
50
51 The only supported version of the game is 1.27. It may work on some slightly
52 older or slightly newer versions.
53
54 In an ideal world, simply executing the Makefile should produce a valid map
55 archive file. The instructions assume that the current directory is the
56 project's root.
57
58 ```
59 make
60 ```
61
62 The following make tasks should help troubleshooting.
63
64 Check Jass script snippets for validity. This does not necessarily require the
65 game installed, only pjass, m4 and make.
66
67 ```
68 make compile
69 ```
70
71 Build playable map archive file.
72
73 ```
74 make build
75 ```
76
77 Assemble a distribution zip package, that contains the playable map and all the
78 sources needed to rebuild it. This requires all of the above and git.
79
80 ```
81 make binary
82 ```
83
84 Test the map in the game.
85
86 ```
87 make test
88 ```
89
90 This requires the game to be installed. Additionally, this requires the
91 developer to create a local Makefile.config that is not commited to the
92 project's repository. Makefile.config must be placed in the same directory as
93 the Makefile (normally project root directory).
94
95 Example Makefile.config.
96
97 ```
98 WAR3EXE=wine64 ~/local/share/wine-devel/drive_c/games/warcraft3-1.27/Frozen\ Throne.exe -opengl -window
99 ```
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/vrtc/honeydew

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/vrtc/honeydew

Clone this repository using git:
git clone git://git.rocketgit.com/user/vrtc/honeydew

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main