-
Notifications
You must be signed in to change notification settings - Fork 520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Anchor Beta #4910
base: develop
Are you sure you want to change the base?
Anchor Beta #4910
Conversation
ccedfa7
to
b86ff22
Compare
468929e
to
5431caf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Want to bring up the naming point, and also tagged all the vanilla code changes. Most of these will likely just become a VB_Should. Might help with the effort to bring them over later, just figured it'd be nice to have an indication of how many there are and a list where we can cross them off as they are changed.
|
||
#include "Anchor.h" | ||
#include <nlohmann/json.hpp> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've thrown up this ball on discord recently, but I'd like to put it out there for more public consideration. So far, this has always been called Anchor, which makes sense when you're trying to communicate it being separate from SoH itself. However, now that we're looking to upstream this, I'd personally really like if we rename everything currently called anchor to something more directly descriptive.
For example, my personal recommendation: Online Multiplayer
.
I know a lot of people know the name Anchor by now, but I think there's going to be issues with people that download a normal SoH build and seeing "Anchor" in the network tab without having the description from the Anchor PR that people have now. Compare that to them seeing "Online Multiplayer", I don't think I have to explain people are going to understand what that means more quickly.
Just food for thought, I don't think I'll ever be in a position to force a change like this especially with Anchor's history, but I do think this is the right move.
// #region SOH [Co-op] | ||
if (Flags_GetCollectible(play, this->collectibleFlag)) { | ||
Actor_Kill(&this->actor); | ||
return; | ||
} | ||
// #endregion |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
if (this->collider.base.acFlags & AC_HIT) { | ||
// #region SOH [Co-op] | ||
if ((this->collider.base.acFlags & AC_HIT) || Flags_GetSwitch(play, this->dyna.actor.params & 0x3F)) { | ||
// #endregion |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
if (this->collider.base.acFlags & AC_HIT) { | ||
// #region SOH [Co-op] | ||
if ((this->collider.base.acFlags & AC_HIT) || Flags_GetSwitch(play, this->switchFlag)) { | ||
// #endregion | ||
Flags_SetSwitch(play, this->switchFlag); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
if ((this->collider.base.acFlags & AC_HIT) && !Player_InCsMode(play) && | ||
(player->meleeWeaponAnimation == 22 || player->meleeWeaponAnimation == 23)) { | ||
// #region SOH [Co-op] | ||
if (((this->collider.base.acFlags & AC_HIT) && !Player_InCsMode(play) && | ||
(player->meleeWeaponAnimation == 22 || player->meleeWeaponAnimation == 23)) || Flags_GetSwitch(play, this->switchFlag)) { | ||
// #endregion |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
// #region SOH [Co-op] | ||
if (GET_GS_FLAGS((thisx->params & 0x1F00) >> 8) & (thisx->params & 0xFF)) { | ||
Actor_Kill(&this->actor); | ||
return; | ||
} | ||
// #endregion | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
// #region SOH [Co-op] | ||
if (GET_GS_FLAGS((thisx->params & 0x1F00) >> 8) & (thisx->params & 0xFF)) { | ||
Actor_Kill(&this->actor); | ||
return; | ||
} | ||
// #endregion | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
// #region SOH [Co-op] | ||
if (Flags_GetCollectible(play, 0x1F)) { | ||
Actor_Kill(&this->actor); | ||
return; | ||
} | ||
// #endregion | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
// #region SOH [Co-op] | ||
if ((func_80033684(play, &this->actor) != NULL) || | ||
((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x40000040))) { | ||
((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x40000040)) || Flags_GetSwitch(play, this->actor.params & 0x3F)) { | ||
// #endregion |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
if ((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x40000040)) { | ||
// #region SOH [Co-op] | ||
if (((this->collider.base.acFlags & AC_HIT) && (this->collider.info.acHitInfo->toucher.dmgFlags & 0x40000040)) || Flags_GetSwitch(play, this->actor.params & 0x3F)) { | ||
this->collider.base.acFlags &= ~AC_HIT; | ||
this->hitCount++; | ||
if (this->hitCount < 2) { | ||
if (this->hitCount < 2 && !Flags_GetSwitch(play, this->actor.params & 0x3F)) { | ||
// #endregion |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hook material
5431caf
to
3e15516
Compare
Please read the known issues & TODO lists below before reporting any bugs or requesting any features.
This is a beta version, be prepared to encounter issues. The stable version can be found here. I am pushing this up now to encourage people to move off of the holiday build, as well as get some broader playtesting on the nightlies in preparation for the 9.0.0 release.
What is this?
Anchor is a co-op mode for Ship of Harkinian. It allows multiple people to play the game together, vanilla or randomizer, sharing inventory items and world flags.
Downloads
How To
Known Issues:
TODO:
// #region SOH [Co-op]
to VB hooks