I've read the new materials, for the most part. I'd suggest including a set of melee weapons to replace the hardcoded ZC Link class objects (swords, hammers, hookshots) at some point, as these will be a very hot commodity.
I'm going to play with MeleeWeaponSlash180() and MeleeWeaponSlash360() to see what I can make with them, although having some default parameters for this sort of thing would be beneficial. In general, anything that demonstrates sprite set-up for radial motion, and the frames for animation, would be good. These will also be useful, for use on enemies, which you may want to consider as an additional plug-in to the package.
(Melee weapons, for enemies.)
I'm a bit perplexed by this function: MeleeWeaponEndStrike() '* Performs animation of Link putting weapon back into his pocket and terminates the script'
The...what? How precisely, is that animation defined?
I also suggested that Evan looks at this, as it might solve some of the issues he has with ZC hardcoded effects. A flag to keep weapons alive on the edge of screens, using OnScreenEdge() and some weapon flags would work well for a problem that he had recently, although I know that he found another way to solve it, involving increasing the hitbox of the lweapon.
void GetLweaponHitboxOffsets(lweapon l, int[] OFFSETS)
* Loads lweapon hitbox offsets into given array. Minimum size of input array is 4 units.
I think you mean:
void GetLweaponHitboxOffsets(lweapon l, int offsets[])
* Loads lweapon hitbox offsets into given array. Minimum size of input array is 4 units.
If SetLweaponHitboxOffsets() stores them in an array, it would be good to note that too. (That function is duplicated in the readme at lines 501, and 507. I'm pretty certain that the one at 501 is the erroneous copy.)
int NumScriptedLweapons (ffc f)
* Returns total number of ffc`s that run the same script as the given one, which is also counted.
I think this would be better suited to return the number of lweapons running any scripts with a misc index marked as running from stdWeapons.zh. Instead of this to return the number of weapons running a specific script, I'd suggest:
int NumScriptedLweapons()
* Returns the number of lweapons running a stdWeapons.zh script, as denoted by their l->Misc[INDEX}.
int NumScriptedLweaponsOf (int ffc_id)
* Returns total number of ffc`s that running a specific script.
The former would be good, to prevent overflowing the number of allowed FFCs. If you aren;t already doing it, storing a value in an index of each lweapon to denote that it is tied to an ffc from this header, would be prudent.
* *LWF_CAN_PICKUP_ITEMS - If set, lweapon can drag around dropped items.
*
* *LWF_CAN_INSTA_DELIVER_ITEMS - If set, any dropped item that touched this lweapon will be teleported to
* Link`s position. Takes priority over LWF_CAN_PICKUP_ITEMS.
These could use some engine priorities, to determine what items the item can retrieve, from lists, or via some kind of item flags.
void Bounce (ffc ball, lweapon l, int sound)
* Makes FFC bounce off solid combos by changing FFC`s velocity depending on lweapon`s position relative
* to solid combos. Don`t call it too often. Otherwise Lweapon can be stuck in a wall.
What precisely, is 'too often'?
void UseEnemyDefense(lweapon l, int npcid, int defense)
An extension of this, to use a custom set of stored script defs, would be a good addition.
[code=auto:0]
void KillRunScript( lweapon l, int d0, int d1, int d2, int d3, int d4,int d5, int d6, int d7, int scriptNum)
* Starts running another FFC script. Removes Lweapon if successful. Uses separate FFC.
[code=auto:0]
Did changing the f->Script attribute not work for this? Hmm...I'll need to toy with that. I presume that after launching the next ffc, the cleanup releases the first?
Edited by ZoriaRPG, 27 November 2015 - 04:59 AM.