diff --git a/src/system/char/CharBoneOffset.cpp b/src/system/char/CharBoneOffset.cpp index 52c1e33e..c0c07724 100644 --- a/src/system/char/CharBoneOffset.cpp +++ b/src/system/char/CharBoneOffset.cpp @@ -19,11 +19,11 @@ void CharBoneOffset::Load(BinStream& bs){ BEGIN_COPYS(CharBoneOffset) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharBoneOffset) - BEGIN_COPY_CHECKED + CREATE_COPY(CharBoneOffset) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mDest) COPY_MEMBER(mOffset) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharBoneOffset) diff --git a/src/system/char/CharBoneTwist.cpp b/src/system/char/CharBoneTwist.cpp index 197a49b5..55142afd 100644 --- a/src/system/char/CharBoneTwist.cpp +++ b/src/system/char/CharBoneTwist.cpp @@ -28,11 +28,11 @@ void CharBoneTwist::Load(BinStream& bs){ BEGIN_COPYS(CharBoneTwist) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(CharWeightable) - GET_COPY(CharBoneTwist) - BEGIN_COPY_CHECKED + CREATE_COPY(CharBoneTwist) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mBone) COPY_MEMBER(mTargets) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharBoneTwist) diff --git a/src/system/char/CharEyeDartRuleset.cpp b/src/system/char/CharEyeDartRuleset.cpp index 8a9e46f1..9c1b4138 100644 --- a/src/system/char/CharEyeDartRuleset.cpp +++ b/src/system/char/CharEyeDartRuleset.cpp @@ -41,8 +41,8 @@ void CharEyeDartRuleset::Load(BinStream& bs){ BEGIN_COPYS(CharEyeDartRuleset) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharEyeDartRuleset) - BEGIN_COPY_CHECKED + CREATE_COPY(CharEyeDartRuleset) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mData.mMinRadius) // COPY_MEMBER(mData.mMaxRadius) mData.mMaxRadius = c->mData.mMinRadius; @@ -55,7 +55,7 @@ BEGIN_COPYS(CharEyeDartRuleset) COPY_MEMBER(mData.mMaxSecsBetweenSequences) COPY_MEMBER(mData.mScaleWithDistance) COPY_MEMBER(mData.mReferenceDistance) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_PROPSYNCS(CharEyeDartRuleset) diff --git a/src/system/char/CharForeTwist.cpp b/src/system/char/CharForeTwist.cpp index 16c0f9d5..55eaa86a 100644 --- a/src/system/char/CharForeTwist.cpp +++ b/src/system/char/CharForeTwist.cpp @@ -31,13 +31,13 @@ void CharForeTwist::Load(BinStream& bs){ BEGIN_COPYS(CharForeTwist) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharForeTwist) - BEGIN_COPY_CHECKED + CREATE_COPY(CharForeTwist) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mOffset) COPY_MEMBER(mHand) COPY_MEMBER(mTwist2) COPY_MEMBER(mBias) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharForeTwist) diff --git a/src/system/char/CharGuitarString.cpp b/src/system/char/CharGuitarString.cpp index 6ab94d3c..02c2d8b1 100644 --- a/src/system/char/CharGuitarString.cpp +++ b/src/system/char/CharGuitarString.cpp @@ -27,13 +27,13 @@ void CharGuitarString::Load(BinStream& bs){ BEGIN_COPYS(CharGuitarString) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharGuitarString) - BEGIN_COPY_CHECKED + CREATE_COPY(CharGuitarString) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mTarget) COPY_MEMBER(mNut) COPY_MEMBER(mBridge) COPY_MEMBER(mBend) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharGuitarString) diff --git a/src/system/char/CharIKScale.cpp b/src/system/char/CharIKScale.cpp index 50fd6d5a..9340d05f 100644 --- a/src/system/char/CharIKScale.cpp +++ b/src/system/char/CharIKScale.cpp @@ -37,15 +37,15 @@ void CharIKScale::Load(BinStream& bs){ BEGIN_COPYS(CharIKScale) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(CharWeightable) - GET_COPY(CharIKScale) - BEGIN_COPY_CHECKED + CREATE_COPY(CharIKScale) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mDest) COPY_MEMBER(mScale) COPY_MEMBER(mSecondaryTargets) COPY_MEMBER(mAutoWeight) COPY_MEMBER(mBottomHeight) COPY_MEMBER(mTopHeight) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharIKScale) diff --git a/src/system/char/CharIKSliderMidi.cpp b/src/system/char/CharIKSliderMidi.cpp index e202a142..506b641f 100644 --- a/src/system/char/CharIKSliderMidi.cpp +++ b/src/system/char/CharIKSliderMidi.cpp @@ -48,13 +48,13 @@ void CharIKSliderMidi::Load(BinStream& bs){ BEGIN_COPYS(CharIKSliderMidi) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(CharWeightable) - GET_COPY(CharIKSliderMidi) - BEGIN_COPY_CHECKED + CREATE_COPY(CharIKSliderMidi) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mTarget) COPY_MEMBER(mFirstSpot) COPY_MEMBER(mSecondSpot) COPY_MEMBER(mTolerance) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharIKSliderMidi) @@ -66,9 +66,9 @@ BEGIN_HANDLERS(CharIKSliderMidi) END_HANDLERS BEGIN_PROPSYNCS(CharIKSliderMidi) - SYNC_PROP_ACTION(target, mTarget, kPropSize|kPropGet, SetupTransforms()) - SYNC_PROP_ACTION(first_spot, mFirstSpot, kPropSize|kPropGet, SetupTransforms()) - SYNC_PROP_ACTION(second_spot, mSecondSpot, kPropSize|kPropGet, SetupTransforms()) + SYNC_PROP_MODIFY(target, mTarget, SetupTransforms()) + SYNC_PROP_MODIFY(first_spot, mFirstSpot, SetupTransforms()) + SYNC_PROP_MODIFY(second_spot, mSecondSpot, SetupTransforms()) SYNC_PROP(tolerance, mTolerance) SYNC_SUPERCLASS(CharWeightable) END_PROPSYNCS \ No newline at end of file diff --git a/src/system/char/CharMirror.cpp b/src/system/char/CharMirror.cpp index 73307cc6..929f10fb 100644 --- a/src/system/char/CharMirror.cpp +++ b/src/system/char/CharMirror.cpp @@ -40,11 +40,11 @@ void CharMirror::Load(BinStream& bs){ BEGIN_COPYS(CharMirror) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(CharWeightable) - GET_COPY(CharMirror) - BEGIN_COPY_CHECKED + CREATE_COPY(CharMirror) + BEGIN_COPYING_MEMBERS SetMirrorServo(c->mMirrorServo); SetServo(c->mServo); - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharMirror) @@ -54,7 +54,7 @@ BEGIN_HANDLERS(CharMirror) END_HANDLERS BEGIN_PROPSYNCS(CharMirror) - SYNC_PROP_METHOD(servo, (Hmx::Object*)mServo, SetServo(_val.Obj(0))); - SYNC_PROP_METHOD(mirror_servo, (Hmx::Object*)mMirrorServo, SetMirrorServo(_val.Obj(0))); + SYNC_PROP_SET(servo, (Hmx::Object*)mServo, SetServo(_val.Obj(0))); + SYNC_PROP_SET(mirror_servo, (Hmx::Object*)mMirrorServo, SetMirrorServo(_val.Obj(0))); SYNC_SUPERCLASS(CharWeightable); END_PROPSYNCS \ No newline at end of file diff --git a/src/system/char/CharNeckTwist.cpp b/src/system/char/CharNeckTwist.cpp index a0559253..7add8fa6 100644 --- a/src/system/char/CharNeckTwist.cpp +++ b/src/system/char/CharNeckTwist.cpp @@ -25,11 +25,11 @@ void CharNeckTwist::Load(BinStream& bs){ BEGIN_COPYS(CharNeckTwist) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharNeckTwist) - BEGIN_COPY_CHECKED + CREATE_COPY(CharNeckTwist) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mHead) COPY_MEMBER(mTwist) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharNeckTwist) diff --git a/src/system/char/CharPosConstraint.cpp b/src/system/char/CharPosConstraint.cpp index c1f7b669..4845c8d8 100644 --- a/src/system/char/CharPosConstraint.cpp +++ b/src/system/char/CharPosConstraint.cpp @@ -39,12 +39,12 @@ void CharPosConstraint::Load(BinStream& bs){ BEGIN_COPYS(CharPosConstraint) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharPosConstraint) - BEGIN_COPY_CHECKED + CREATE_COPY(CharPosConstraint) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mTargets) COPY_MEMBER(mSrc) COPY_MEMBER(mBox) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharPosConstraint) diff --git a/src/system/char/CharSleeve.cpp b/src/system/char/CharSleeve.cpp index 2afc61d0..9c6c237b 100644 --- a/src/system/char/CharSleeve.cpp +++ b/src/system/char/CharSleeve.cpp @@ -43,8 +43,8 @@ void CharSleeve::Load(BinStream& bs){ BEGIN_COPYS(CharSleeve) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharSleeve) - BEGIN_COPY_CHECKED + CREATE_COPY(CharSleeve) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mSleeve) COPY_MEMBER(mTopSleeve) COPY_MEMBER(mInertia) @@ -53,7 +53,7 @@ BEGIN_COPYS(CharSleeve) COPY_MEMBER(mRange) COPY_MEMBER(mNegLength) COPY_MEMBER(mPosLength) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharSleeve) diff --git a/src/system/char/CharTransCopy.cpp b/src/system/char/CharTransCopy.cpp index 38987a58..3ac83bbe 100644 --- a/src/system/char/CharTransCopy.cpp +++ b/src/system/char/CharTransCopy.cpp @@ -37,11 +37,11 @@ void CharTransCopy::Load(BinStream& bs){ BEGIN_COPYS(CharTransCopy) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharTransCopy) - BEGIN_COPY_CHECKED + CREATE_COPY(CharTransCopy) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mSrc) COPY_MEMBER(mDest) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharTransCopy) diff --git a/src/system/char/CharUpperTwist.cpp b/src/system/char/CharUpperTwist.cpp index b29fefd0..c60e145e 100644 --- a/src/system/char/CharUpperTwist.cpp +++ b/src/system/char/CharUpperTwist.cpp @@ -30,12 +30,12 @@ void CharUpperTwist::Load(BinStream& bs){ BEGIN_COPYS(CharUpperTwist) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(CharUpperTwist) - BEGIN_COPY_CHECKED + CREATE_COPY(CharUpperTwist) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mTwist2) COPY_MEMBER(mUpperArm) COPY_MEMBER(mTwist1) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharUpperTwist) diff --git a/src/system/char/CharWeightable.cpp b/src/system/char/CharWeightable.cpp index 7fa39c2a..b916eeec 100644 --- a/src/system/char/CharWeightable.cpp +++ b/src/system/char/CharWeightable.cpp @@ -28,8 +28,8 @@ void CharWeightable::Load(BinStream& bs){ } BEGIN_COPYS(CharWeightable) - GET_COPY(CharWeightable) - BEGIN_COPY_CHECKED + CREATE_COPY(CharWeightable) + BEGIN_COPYING_MEMBERS if(ty == kCopyShallow){ mWeightOwner = c->mWeightOwner.mPtr; } @@ -37,7 +37,7 @@ BEGIN_COPYS(CharWeightable) mWeightOwner = this; mWeight = c->mWeightOwner->mWeight; } - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(CharWeightable) diff --git a/src/system/obj/ObjMacros.h b/src/system/obj/ObjMacros.h index adb3e02c..7a80ad0c 100644 --- a/src/system/obj/ObjMacros.h +++ b/src/system/obj/ObjMacros.h @@ -128,9 +128,14 @@ bool PropSync(objType& o, DataNode& _val, DataArray* _prop, int _i, PropOp _op){ #define SYNC_PROP(symbol, member) \ if(sym == symbol) return PropSync(member, _val, _prop, _i + 1, _op); -#define SYNC_PROP_METHOD(symbol, member, method) \ +// TODO: make specific sync macros for objects and bitfields? + +// for propsyncs that do something extra if the prop op is specifically kPropSet +#define SYNC_PROP_SET(symbol, member, func) \ if(sym == symbol){ \ - if(_op == kPropSet) method; \ + if(_op == kPropSet){ \ + func; \ + } \ else { \ if(_op == (PropOp)0x40) return false; \ _val = DataNode(member); \ @@ -138,30 +143,47 @@ bool PropSync(objType& o, DataNode& _val, DataArray* _prop, int _i, PropOp _op){ return true; \ } -#define SYNC_PROP_ACTION(symbol, member, opmask, action) \ +// for propsyncs that do NOT use size or get - aka, any combo of set, insert, remove, and handle is used +#define SYNC_PROP_MODIFY(symbol, member, func) \ if(sym == symbol){ \ bool synced = PropSync(member, _val, _prop, _i + 1, _op); \ if(!synced) return false; \ else { \ - if(!(_op & (opmask))){ \ - action; \ + if(!(_op & (kPropSize|kPropGet))){ \ + func; \ } \ return true; \ } \ } +// for SYNC_PROP_MODIFY uses where the condition order is flipped +// if you know how to make this macro and SYNC_PROP_MODIFY into one singular macro, +// while still matching every instance of SYNC_PROP_MODIFY being used regardless of condition order, +// by all means please do so, because idk how to do it here +#define SYNC_PROP_MODIFY_ALT(symbol, member, func) \ + if(sym == symbol){ \ + bool synced = PropSync(member, _val, _prop, _i + 1, _op); \ + if(synced){ \ + if(!(_op & (kPropSize|kPropGet))){ \ + func; \ + } \ + return true; \ + } \ + else return false; \ + } + #define SYNC_PROP_STATIC(symbol, member) { \ NEW_STATIC_SYMBOL(symbol) \ SYNC_PROP(_s, member) \ } -#define SYNC_PROP_ACTION_STATIC(symbol, member, opmask, action) { \ +#define SYNC_PROP_MODIFY_STATIC(symbol, member, func) { \ NEW_STATIC_SYMBOL(symbol) \ - SYNC_PROP_ACTION(_s, member, opmask, action) \ + SYNC_PROP_MODIFY(_s, member, func) \ } #define SYNC_SUPERCLASS(parent) \ - return parent::SyncProperty(_val, _prop, _i, _op); + if(parent::SyncProperty(_val, _prop, _i, _op)) return true; #define END_PROPSYNCS \ return false; \ @@ -192,20 +214,28 @@ void objType::Copy(const Hmx::Object* o, Hmx::Object::CopyType ty){ #define COPY_SUPERCLASS(parent) \ parent::Copy(o, ty); -#define GET_COPY(objType) \ +#define CREATE_COPY(objType) \ const objType* c = dynamic_cast(o); -#define GET_COPY_AND_ASSERT(objType, line_num) \ - const objType* c = dynamic_cast(o); \ - MILO_ASSERT(c, line_num); +// copy macro where you specify the variable name (used in asserts in some copy methods) +#define CREATE_COPY_AS(objType, var_name) \ + const objType* var_name = dynamic_cast(o); -#define BEGIN_COPY_CHECKED \ +#define BEGIN_COPYING_MEMBERS \ if(c){ +// copy macro where you specify the variable name (used in asserts in some copy methods) +#define BEGIN_COPYING_MEMBERS_FROM(copy_name) \ + if(copy_name){ + #define COPY_MEMBER(mem) \ mem = c->mem; -#define END_COPY_CHECKED \ +// copy macro where you specify the variable name (used in asserts in some copy methods) +#define COPY_MEMBER_FROM(copy_name, member) \ + member = copy_name->member; + +#define END_COPYING_MEMBERS \ } #define END_COPYS \ diff --git a/src/system/rndobj/Anim.cpp b/src/system/rndobj/Anim.cpp index e7344938..4c1e0e8d 100644 --- a/src/system/rndobj/Anim.cpp +++ b/src/system/rndobj/Anim.cpp @@ -236,7 +236,7 @@ DataNode RndAnimatable::OnConvertFrames(DataArray* arr){ BEGIN_PROPSYNCS(RndAnimatable); SYNC_PROP(rate, (int&)mRate); - SYNC_PROP_ACTION(frame, mFrame, kPropGet|kPropSize, SetFrame(mFrame, 1.0f)); + SYNC_PROP_MODIFY(frame, mFrame, SetFrame(mFrame, 1.0f)); END_PROPSYNCS; AnimTask::AnimTask(RndAnimatable* anim, float start, float end, float fpu, bool loop, float blend) : diff --git a/src/system/rndobj/AnimFilter.cpp b/src/system/rndobj/AnimFilter.cpp index aabd5b61..f87fb41c 100644 --- a/src/system/rndobj/AnimFilter.cpp +++ b/src/system/rndobj/AnimFilter.cpp @@ -19,18 +19,20 @@ void RndAnimFilter::ListAnimChildren(std::list& theList) const { BEGIN_COPYS(RndAnimFilter) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndAnimatable) - GET_COPY(RndAnimFilter) - if(c && ty != kCopyFromMax){ - COPY_MEMBER(mScale) - COPY_MEMBER(mOffset) - COPY_MEMBER(mStart) - COPY_MEMBER(mEnd) - COPY_MEMBER(mType) - COPY_MEMBER(mAnim) - COPY_MEMBER(mPeriod) - COPY_MEMBER(mSnap) - COPY_MEMBER(mJitter) - } + CREATE_COPY(RndAnimFilter) + BEGIN_COPYING_MEMBERS + if(ty != kCopyFromMax){ + COPY_MEMBER(mScale) + COPY_MEMBER(mOffset) + COPY_MEMBER(mStart) + COPY_MEMBER(mEnd) + COPY_MEMBER(mType) + COPY_MEMBER(mAnim) + COPY_MEMBER(mPeriod) + COPY_MEMBER(mSnap) + COPY_MEMBER(mJitter) + } + END_COPYING_MEMBERS END_COPYS RndAnimFilter::RndAnimFilter() : mAnim(this, 0), mPeriod(0.0f), mStart(0.0f), mEnd(0.0f), mScale(1.0f), mOffset(0.0f), mSnap(0.0f), mJitter(0.0f), mJitterFrame(0.0f), mType(kRange) { diff --git a/src/system/rndobj/Cam.cpp b/src/system/rndobj/Cam.cpp index 09b26275..728cccf1 100644 --- a/src/system/rndobj/Cam.cpp +++ b/src/system/rndobj/Cam.cpp @@ -55,15 +55,17 @@ void RndCam::Load(BinStream& bs) { BEGIN_COPYS(RndCam) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndTransformable) - GET_COPY(RndCam) - if(c && ty != kCopyFromMax){ - COPY_MEMBER(mNearPlane) - COPY_MEMBER(mFarPlane) - COPY_MEMBER(mYFov) - COPY_MEMBER(mScreenRect) - COPY_MEMBER(mZRange) - COPY_MEMBER(mTargetTex) - } + CREATE_COPY(RndCam) + BEGIN_COPYING_MEMBERS + if(ty != kCopyFromMax){ + COPY_MEMBER(mNearPlane) + COPY_MEMBER(mFarPlane) + COPY_MEMBER(mYFov) + COPY_MEMBER(mScreenRect) + COPY_MEMBER(mZRange) + COPY_MEMBER(mTargetTex) + } + END_COPYING_MEMBERS UpdateLocal(); END_COPYS @@ -131,7 +133,7 @@ DataNode RndCam::OnFarPlane(const DataArray*){ BEGIN_PROPSYNCS(RndCam) //SYNC_SUPERCLASS(RndTransformable) - SYNC_PROP_ACTION(near_plane, mNearPlane, 0x11, ) + SYNC_PROP_MODIFY(near_plane, mNearPlane, ) SYNC_PROP(z_range, mZRange) - SYNC_PROP_ACTION(screen_rect, mScreenRect, 0x11, UpdateLocal()) + SYNC_PROP_MODIFY(screen_rect, mScreenRect, UpdateLocal()) END_PROPSYNCS diff --git a/src/system/rndobj/CamAnim.cpp b/src/system/rndobj/CamAnim.cpp index af815ef6..174d5c4a 100644 --- a/src/system/rndobj/CamAnim.cpp +++ b/src/system/rndobj/CamAnim.cpp @@ -7,8 +7,8 @@ INIT_REVS(RndCamAnim); BEGIN_COPYS(RndCamAnim) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndAnimatable) - GET_COPY(RndCamAnim) - BEGIN_COPY_CHECKED + CREATE_COPY(RndCamAnim) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mCam) if(ty == kCopyShallow || ty == kCopyFromMax && c->mKeysOwner != c){ COPY_MEMBER(mKeysOwner) @@ -17,7 +17,7 @@ BEGIN_COPYS(RndCamAnim) mKeysOwner = this; mFovKeys = c->mKeysOwner->mFovKeys; } - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS void RndCamAnim::Print(){ diff --git a/src/system/rndobj/Draw.cpp b/src/system/rndobj/Draw.cpp index 8f3dcaaf..462179e8 100644 --- a/src/system/rndobj/Draw.cpp +++ b/src/system/rndobj/Draw.cpp @@ -51,8 +51,8 @@ void RndDrawable::Highlight(){ } BEGIN_COPYS(RndDrawable) - GET_COPY(RndDrawable) - BEGIN_COPY_CHECKED + CREATE_COPY(RndDrawable) + BEGIN_COPYING_MEMBERS if(ty != kCopyFromMax){ COPY_MEMBER(mShowing) COPY_MEMBER(mOrder) @@ -63,7 +63,7 @@ BEGIN_COPYS(RndDrawable) COPY_MEMBER(mSphere) } } - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(RndDrawable, 0xAE) diff --git a/src/system/rndobj/Env.cpp b/src/system/rndobj/Env.cpp index 797bcc38..2ae73c49 100644 --- a/src/system/rndobj/Env.cpp +++ b/src/system/rndobj/Env.cpp @@ -63,8 +63,8 @@ SAVE_OBJ(RndEnviron, 119) BEGIN_COPYS(RndEnviron) COPY_SUPERCLASS(Hmx::Object) if(ty != kCopyFromMax){ - GET_COPY(RndEnviron) - BEGIN_COPY_CHECKED + CREATE_COPY(RndEnviron) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mLightsReal) COPY_MEMBER(mLightsApprox) COPY_MEMBER(mLightsOld) @@ -94,7 +94,7 @@ BEGIN_COPYS(RndEnviron) mFogEnd = mAmbientFogOwner->mFogEnd; mFogEnable = mAmbientFogOwner->mFogEnable; } - END_COPY_CHECKED + END_COPYING_MEMBERS } END_COPYS diff --git a/src/system/rndobj/EnvAnim.cpp b/src/system/rndobj/EnvAnim.cpp index 457e647e..71f13445 100644 --- a/src/system/rndobj/EnvAnim.cpp +++ b/src/system/rndobj/EnvAnim.cpp @@ -36,13 +36,13 @@ BEGIN_LOADS(RndEnvAnim) END_LOADS BEGIN_COPYS(RndEnvAnim) - const RndEnvAnim* l = dynamic_cast(o); + CREATE_COPY_AS(RndEnvAnim, l); MILO_ASSERT(l, 0x6B); COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndAnimatable) - mEnviron = l->mEnviron; + COPY_MEMBER_FROM(l, mEnviron) if(ty == kCopyShallow){ - mKeysOwner = l->mKeysOwner; + COPY_MEMBER_FROM(l, mKeysOwner) } else { mKeysOwner = this; diff --git a/src/system/rndobj/EventTrigger.cpp b/src/system/rndobj/EventTrigger.cpp index 2908326f..f138d445 100644 --- a/src/system/rndobj/EventTrigger.cpp +++ b/src/system/rndobj/EventTrigger.cpp @@ -146,8 +146,8 @@ EventTrigger::HideDelay::HideDelay(Hmx::Object* o) : mHide(o, 0), mDelay(0.0f), BEGIN_COPYS(EventTrigger) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndAnimatable) - GET_COPY(EventTrigger) - BEGIN_COPY_CHECKED + CREATE_COPY(EventTrigger) + BEGIN_COPYING_MEMBERS UnregisterEvents(); COPY_MEMBER(mTriggerEvents) COPY_MEMBER(mAnims) @@ -167,7 +167,7 @@ BEGIN_COPYS(EventTrigger) COPY_MEMBER(mPartLaunchers) RegisterEvents(); CleanupHideShow(); - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS #pragma pop @@ -249,7 +249,7 @@ BEGIN_HANDLERS(EventTrigger) END_HANDLERS BEGIN_CUSTOM_PROPSYNC(EventTrigger::Anim) - SYNC_PROP_ACTION(anim, o.mAnim, kPropSize|kPropGet, ResetAnim(o)) + SYNC_PROP_MODIFY_ALT(anim, o.mAnim, ResetAnim(o)) SYNC_PROP(blend, o.mBlend) SYNC_PROP(wait, o.mWait) SYNC_PROP(delay, o.mDelay) @@ -263,7 +263,7 @@ BEGIN_CUSTOM_PROPSYNC(EventTrigger::Anim) END_CUSTOM_PROPSYNC BEGIN_CUSTOM_PROPSYNC(EventTrigger::ProxyCall) - SYNC_PROP_ACTION(proxy, o.mProxy, kPropSize|kPropGet, o.mCall = Symbol("")) + SYNC_PROP_MODIFY_ALT(proxy, o.mProxy, o.mCall = Symbol("")) SYNC_PROP(call, o.mCall) SYNC_PROP(event, o.mEvent) END_CUSTOM_PROPSYNC @@ -275,13 +275,13 @@ BEGIN_CUSTOM_PROPSYNC(EventTrigger::HideDelay) END_CUSTOM_PROPSYNC BEGIN_PROPSYNCS(EventTrigger) - SYNC_PROP_ACTION_STATIC(trigger_events, mTriggerEvents, kPropSize|kPropGet, UnregisterEvents()) - SYNC_PROP_ACTION(anims, mAnims, kPropSize|kPropGet, CheckAnims()) + SYNC_PROP_MODIFY_STATIC(trigger_events, mTriggerEvents, UnregisterEvents()) + SYNC_PROP_MODIFY(anims, mAnims, CheckAnims()) SYNC_PROP(proxy_calls, mProxyCalls) SYNC_PROP(sounds, mSounds) SYNC_PROP(shows, mShows) SYNC_PROP(hide_delays, mHideDelays) SYNC_PROP(part_launchers, mPartLaunchers) - SYNC_PROP_ACTION_STATIC(enable_events, mEnableEvents, kPropSize|kPropGet, UnregisterEvents()) - SYNC_PROP_ACTION_STATIC(disable_events, mDisableEvents, kPropSize|kPropGet, UnregisterEvents()) + SYNC_PROP_MODIFY_STATIC(enable_events, mEnableEvents, UnregisterEvents()) + SYNC_PROP_MODIFY_STATIC(disable_events, mDisableEvents, UnregisterEvents()) END_PROPSYNCS \ No newline at end of file diff --git a/src/system/rndobj/Fur.cpp b/src/system/rndobj/Fur.cpp index 757e2e3a..7eb08906 100644 --- a/src/system/rndobj/Fur.cpp +++ b/src/system/rndobj/Fur.cpp @@ -12,8 +12,7 @@ RndFur::RndFur() { } BEGIN_COPYS(RndFur) - // GET_COPY_AND_ASSERT(RndFur, 23) - const RndFur* m = dynamic_cast(o); + CREATE_COPY_AS(RndFur, m) MILO_ASSERT(m, 23); COPY_SUPERCLASS(Hmx::Object) END_COPYS diff --git a/src/system/rndobj/Group.cpp b/src/system/rndobj/Group.cpp index 122906de..e7491501 100644 --- a/src/system/rndobj/Group.cpp +++ b/src/system/rndobj/Group.cpp @@ -38,8 +38,8 @@ BEGIN_COPYS(RndGroup) COPY_SUPERCLASS(RndAnimatable) COPY_SUPERCLASS(RndDrawable) COPY_SUPERCLASS(RndTransformable) - GET_COPY(RndGroup) - BEGIN_COPY_CHECKED + CREATE_COPY(RndGroup) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mEnv) COPY_MEMBER(mDrawOnly) COPY_MEMBER(mLod) @@ -47,6 +47,6 @@ BEGIN_COPYS(RndGroup) COPY_MEMBER(unk8p1) if(ty == kCopyDeep) COPY_MEMBER(mObjects) else if(ty == kCopyFromMax) Merge(c); - END_COPY_CHECKED + END_COPYING_MEMBERS Update(); END_COPYS diff --git a/src/system/rndobj/Lit.cpp b/src/system/rndobj/Lit.cpp index 67c4f6a0..f4939c36 100644 --- a/src/system/rndobj/Lit.cpp +++ b/src/system/rndobj/Lit.cpp @@ -14,7 +14,7 @@ RndLight::RndLight() : mColor(), mColorOwner(this, this), mRange(1000.0f), mFall SAVE_OBJ(RndLight, 0x33); BEGIN_COPYS(RndLight) - const RndLight* l = dynamic_cast(o); + CREATE_COPY_AS(RndLight, l) MILO_ASSERT(l, 0xD6); COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndTransformable) diff --git a/src/system/rndobj/LitAnim.cpp b/src/system/rndobj/LitAnim.cpp index b6b7a3b2..577e16ad 100644 --- a/src/system/rndobj/LitAnim.cpp +++ b/src/system/rndobj/LitAnim.cpp @@ -48,13 +48,13 @@ void RndLightAnim::Load(BinStream& bs){ } BEGIN_COPYS(RndLightAnim) - const RndLightAnim* l = dynamic_cast(o); + CREATE_COPY_AS(RndLightAnim, l) MILO_ASSERT(l, 0x6B); COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndAnimatable) - mLight = l->mLight; + COPY_MEMBER_FROM(l, mLight) if(ty == kCopyShallow || (ty == kCopyFromMax && l->mKeysOwner != l)){ - mKeysOwner = l->mKeysOwner; + COPY_MEMBER_FROM(l, mKeysOwner) } else { mKeysOwner = this; diff --git a/src/system/rndobj/MotionBlur.cpp b/src/system/rndobj/MotionBlur.cpp index 02ded3a6..83f3b0f9 100644 --- a/src/system/rndobj/MotionBlur.cpp +++ b/src/system/rndobj/MotionBlur.cpp @@ -14,10 +14,10 @@ RndMotionBlur::RndMotionBlur() : mDrawList(this, kObjListNoNull) { BEGIN_COPYS(RndMotionBlur) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndDrawable) - GET_COPY(RndMotionBlur) - BEGIN_COPY_CHECKED + CREATE_COPY(RndMotionBlur) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mDrawList) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(RndMotionBlur, 0x2B) diff --git a/src/system/rndobj/Movie.cpp b/src/system/rndobj/Movie.cpp index 942b78b4..b8737585 100644 --- a/src/system/rndobj/Movie.cpp +++ b/src/system/rndobj/Movie.cpp @@ -45,12 +45,12 @@ void RndMovie::SetFile(const FilePath& fp, bool b){ } BEGIN_COPYS(RndMovie) - const RndMovie* t = dynamic_cast(o); + CREATE_COPY_AS(RndMovie, t); MILO_ASSERT(t, 0x52); COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndAnimatable) - mLoop = t->mLoop; - mTex = t->mTex; + COPY_MEMBER_FROM(t, mLoop) + COPY_MEMBER_FROM(t, mTex) SetFile(t->mFile, t->mStream); END_COPYS diff --git a/src/system/rndobj/PollAnim.cpp b/src/system/rndobj/PollAnim.cpp index 1d2d1852..405baeba 100644 --- a/src/system/rndobj/PollAnim.cpp +++ b/src/system/rndobj/PollAnim.cpp @@ -75,10 +75,10 @@ BEGIN_COPYS(RndPollAnim) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndAnimatable) COPY_SUPERCLASS(RndPollable) - GET_COPY(RndPollAnim) - BEGIN_COPY_CHECKED + CREATE_COPY(RndPollAnim) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mAnims) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(RndPollAnim) diff --git a/src/system/rndobj/ScreenMask.cpp b/src/system/rndobj/ScreenMask.cpp index 8511c859..cda02566 100644 --- a/src/system/rndobj/ScreenMask.cpp +++ b/src/system/rndobj/ScreenMask.cpp @@ -18,13 +18,13 @@ RndScreenMask::RndScreenMask() : mMat(this, 0), mColor(), mRect(0.0f, 0.0f, 1.0f BEGIN_COPYS(RndScreenMask) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndDrawable) - GET_COPY(RndScreenMask) - BEGIN_COPY_CHECKED + CREATE_COPY(RndScreenMask) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mMat) COPY_MEMBER(mColor) COPY_MEMBER(mRect) COPY_MEMBER(mUseCurrentRect) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(RndScreenMask, 0x38) diff --git a/src/system/rndobj/Set.cpp b/src/system/rndobj/Set.cpp index 5728a05c..7d30ffc0 100644 --- a/src/system/rndobj/Set.cpp +++ b/src/system/rndobj/Set.cpp @@ -57,10 +57,10 @@ END_LOADS BEGIN_COPYS(RndSet) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(RndSet) - BEGIN_COPY_CHECKED + CREATE_COPY(RndSet) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mObjects) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(RndSet) diff --git a/src/system/rndobj/Tex.cpp b/src/system/rndobj/Tex.cpp index 758f3518..ea6dcd03 100644 --- a/src/system/rndobj/Tex.cpp +++ b/src/system/rndobj/Tex.cpp @@ -402,8 +402,8 @@ void RndTex::PostLoad(BinStream& bs){ BEGIN_COPYS(RndTex) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(RndTex) - BEGIN_COPY_CHECKED + CREATE_COPY(RndTex) + BEGIN_COPYING_MEMBERS if(ty != kCopyFromMax){ COPY_MEMBER(mMipMapK) } @@ -420,7 +420,7 @@ BEGIN_COPYS(RndTex) COPY_MEMBER(mOptimizeForPS3) mBitmap.Create(c->mBitmap, c->mBitmap.mBpp, c->mBitmap.mOrder, 0); SyncBitmap(); - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS // enum Type { diff --git a/src/system/rndobj/TexBlendController.cpp b/src/system/rndobj/TexBlendController.cpp index a7bd19cf..1870f67d 100644 --- a/src/system/rndobj/TexBlendController.cpp +++ b/src/system/rndobj/TexBlendController.cpp @@ -22,8 +22,8 @@ void RndTexBlendController::UpdateMinDistance(){ BEGIN_COPYS(RndTexBlendController) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(RndTexBlendController) - BEGIN_COPY_CHECKED + CREATE_COPY(RndTexBlendController) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mMesh) COPY_MEMBER(mObject1) COPY_MEMBER(mObject2) @@ -31,7 +31,7 @@ BEGIN_COPYS(RndTexBlendController) COPY_MEMBER(mMinDistance) COPY_MEMBER(mMaxDistance) COPY_MEMBER(mTex) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(RndTexBlendController, 0xF5) @@ -60,8 +60,8 @@ BEGIN_HANDLERS(RndTexBlendController) END_HANDLERS BEGIN_PROPSYNCS(RndTexBlendController) - SYNC_PROP_ACTION(reference_object_1, mObject1, kPropSize|kPropGet, UpdateAllDistances()) - SYNC_PROP_ACTION(reference_object_2, mObject2, kPropSize|kPropGet, UpdateAllDistances()) + SYNC_PROP_MODIFY(reference_object_1, mObject1, UpdateAllDistances()) + SYNC_PROP_MODIFY(reference_object_2, mObject2, UpdateAllDistances()) SYNC_PROP(mesh, mMesh) SYNC_PROP(base_distance, mReferenceDistance) SYNC_PROP(min_distance, mMinDistance) diff --git a/src/system/rndobj/TexBlender.cpp b/src/system/rndobj/TexBlender.cpp index eda8791a..06dee7ac 100644 --- a/src/system/rndobj/TexBlender.cpp +++ b/src/system/rndobj/TexBlender.cpp @@ -11,8 +11,8 @@ RndTexBlender::RndTexBlender() : mBaseMap(this, 0), mNearMap(this, 0), mFarMap(t BEGIN_COPYS(RndTexBlender) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndDrawable) - GET_COPY(RndTexBlender) - BEGIN_COPY_CHECKED + CREATE_COPY(RndTexBlender) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mOutputTextures) COPY_MEMBER(mBaseMap) COPY_MEMBER(mNearMap) @@ -20,7 +20,7 @@ BEGIN_COPYS(RndTexBlender) COPY_MEMBER(mControllerList) COPY_MEMBER(mOwner) COPY_MEMBER(mControllerInfluence) - END_COPY_CHECKED + END_COPYING_MEMBERS unk70 = 0; END_COPYS diff --git a/src/system/rndobj/Text.cpp b/src/system/rndobj/Text.cpp index 2c8f7921..bee70442 100644 --- a/src/system/rndobj/Text.cpp +++ b/src/system/rndobj/Text.cpp @@ -50,10 +50,10 @@ BEGIN_COPYS(RndText) COPY_SUPERCLASS(RndDrawable) COPY_SUPERCLASS(RndTransformable) if (ty == kCopyFromMax) return; - GET_COPY(RndText) - BEGIN_COPY_CHECKED + CREATE_COPY(RndText) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mFont) - END_COPY_CHECKED + END_COPYING_MEMBERS UpdateText(true); END_COPYS diff --git a/src/system/rndobj/Trans.cpp b/src/system/rndobj/Trans.cpp index 6e21d37f..d6aafbda 100644 --- a/src/system/rndobj/Trans.cpp +++ b/src/system/rndobj/Trans.cpp @@ -134,8 +134,8 @@ END_HANDLERS #pragma pop BEGIN_PROPSYNCS(RndTransformable) - SYNC_PROP_METHOD(trans_parent, mParent, SetTransParent(_val.Obj(0), true)) - SYNC_PROP_METHOD(trans_constraint, mConstraint, SetTransConstraint((Constraint)_val.Int(0), mTarget, mPreserveScale)) - SYNC_PROP_METHOD(trans_target, (Hmx::Object*)mTarget, SetTransConstraint((Constraint)mConstraint, _val.Obj(0), mPreserveScale)) - SYNC_PROP_METHOD(preserve_scale, mPreserveScale, SetTransConstraint((Constraint)mConstraint, mTarget, _val.Int(0))) + SYNC_PROP_SET(trans_parent, mParent, SetTransParent(_val.Obj(0), true)) + SYNC_PROP_SET(trans_constraint, mConstraint, SetTransConstraint((Constraint)_val.Int(0), mTarget, mPreserveScale)) + SYNC_PROP_SET(trans_target, (Hmx::Object*)mTarget, SetTransConstraint((Constraint)mConstraint, _val.Obj(0), mPreserveScale)) + SYNC_PROP_SET(preserve_scale, mPreserveScale, SetTransConstraint((Constraint)mConstraint, mTarget, _val.Int(0))) END_PROPSYNCS diff --git a/src/system/rndobj/TransAnim.cpp b/src/system/rndobj/TransAnim.cpp index 3a4ba5b2..3bc03f51 100644 --- a/src/system/rndobj/TransAnim.cpp +++ b/src/system/rndobj/TransAnim.cpp @@ -43,7 +43,7 @@ void RndTransAnim::Load(BinStream& bs){ } BEGIN_COPYS(RndTransAnim) - const RndTransAnim* t = dynamic_cast(o); + CREATE_COPY_AS(RndTransAnim, t) MILO_ASSERT(t, 0xE8); COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndAnimatable) diff --git a/src/system/rndobj/TransProxy.cpp b/src/system/rndobj/TransProxy.cpp index f241e3e8..d5ac47ee 100644 --- a/src/system/rndobj/TransProxy.cpp +++ b/src/system/rndobj/TransProxy.cpp @@ -66,12 +66,12 @@ void RndTransProxy::Load(BinStream& bs){ BEGIN_COPYS(RndTransProxy) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndTransformable) - GET_COPY(RndTransProxy) - BEGIN_COPY_CHECKED + CREATE_COPY(RndTransProxy) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mProxy) COPY_MEMBER(mPart) Sync(); - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(RndTransProxy) @@ -81,16 +81,8 @@ BEGIN_HANDLERS(RndTransProxy) END_HANDLERS BEGIN_PROPSYNCS(RndTransProxy) - // SYNC_PROP_ACTION(proxy, mProxy, kPropSize|kPropGet, Sync()) - if(sym == proxy){ - bool synced = PropSync(mProxy, _val, _prop, _i + 1, _op); - if(synced){ - if(!(_op & (kPropSize|kPropGet))){ Sync(); } - return true; - } - else return false; - } - SYNC_PROP_ACTION(part, mPart, kPropSize|kPropGet, Sync()) + SYNC_PROP_MODIFY_ALT(proxy, mProxy, Sync()) + SYNC_PROP_MODIFY(part, mPart, Sync()) SYNC_SUPERCLASS(RndTransformable) END_PROPSYNCS diff --git a/src/system/rndobj/Wind.cpp b/src/system/rndobj/Wind.cpp index e9dce30d..cb40159e 100644 --- a/src/system/rndobj/Wind.cpp +++ b/src/system/rndobj/Wind.cpp @@ -52,8 +52,8 @@ END_LOADS BEGIN_COPYS(RndWind) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(RndWind) - BEGIN_COPY_CHECKED + CREATE_COPY(RndWind) + BEGIN_COPYING_MEMBERS if(ty == kCopyShallow) mWindOwner = c->mWindOwner; else { mWindOwner = this; @@ -64,7 +64,7 @@ BEGIN_COPYS(RndWind) COPY_MEMBER(mSpaceLoop) SyncLoops(); } - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS void RndWind::Replace(Hmx::Object* from, Hmx::Object* to){ @@ -84,7 +84,7 @@ END_HANDLERS BEGIN_PROPSYNCS(RndWind) SYNC_PROP(prevailing, mPrevailing) SYNC_PROP(random, mRandom) - SYNC_PROP_METHOD(wind_owner, mWindOwner, SetWindOwner(_val.Obj(0))) - SYNC_PROP_ACTION(time_loop, mTimeLoop, kPropSize|kPropGet, SyncLoops()) - SYNC_PROP_ACTION(space_loop, mSpaceLoop, kPropSize|kPropGet, SyncLoops()) + SYNC_PROP_SET(wind_owner, mWindOwner, SetWindOwner(_val.Obj(0))) + SYNC_PROP_MODIFY(time_loop, mTimeLoop, SyncLoops()) + SYNC_PROP_MODIFY(space_loop, mSpaceLoop, SyncLoops()) END_PROPSYNCS \ No newline at end of file diff --git a/src/system/synth/Emitter.cpp b/src/system/synth/Emitter.cpp index 2f421a2f..5b783a6a 100644 --- a/src/system/synth/Emitter.cpp +++ b/src/system/synth/Emitter.cpp @@ -14,8 +14,8 @@ BEGIN_COPYS(SynthEmitter) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndTransformable) COPY_SUPERCLASS(RndDrawable) - GET_COPY(SynthEmitter) - BEGIN_COPY_CHECKED + CREATE_COPY(SynthEmitter) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mSfx) COPY_MEMBER(mListener) COPY_MEMBER(mSynthEmitterEnabled) @@ -24,7 +24,7 @@ BEGIN_COPYS(SynthEmitter) COPY_MEMBER(mVolOuter) COPY_MEMBER(mVolInner) delete mInst; - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(SynthEmitter, 0x30) @@ -92,8 +92,8 @@ BEGIN_HANDLERS(SynthEmitter) END_HANDLERS BEGIN_PROPSYNCS(SynthEmitter) - SYNC_PROP_ACTION(sfx, mSfx, kPropSize|kPropGet, delete mInst) - SYNC_PROP_ACTION(listener, mListener, kPropSize|kPropGet, delete mInst) + SYNC_PROP_MODIFY_ALT(sfx, mSfx, delete mInst) + SYNC_PROP_MODIFY_ALT(listener, mListener, delete mInst) { static Symbol _s("enabled"); bool b = mSynthEmitterEnabled; @@ -111,6 +111,6 @@ BEGIN_PROPSYNCS(SynthEmitter) SYNC_PROP(inner_radius, mRadInner) SYNC_PROP(outer_volume, mVolOuter) SYNC_PROP(inner_volume, mVolInner) - if(RndTransformable::SyncProperty(_val, _prop, _i, _op)) return true; + SYNC_SUPERCLASS(RndTransformable) SYNC_SUPERCLASS(RndDrawable) END_PROPSYNCS \ No newline at end of file diff --git a/src/system/synth/FxSend.cpp b/src/system/synth/FxSend.cpp index 3258f40b..71ed0a7f 100644 --- a/src/system/synth/FxSend.cpp +++ b/src/system/synth/FxSend.cpp @@ -134,8 +134,8 @@ void FxSend::Load(BinStream& bs){ BEGIN_COPYS(FxSend) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(FxSend) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSend) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mNextSend) COPY_MEMBER(mStage) COPY_MEMBER(mWetGain) @@ -145,7 +145,7 @@ BEGIN_COPYS(FxSend) COPY_MEMBER(mBypass) COPY_MEMBER(mReverbMixDb) COPY_MEMBER(mReverbEnable) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS void FxSend::TestWithMic(){ @@ -169,31 +169,13 @@ BEGIN_HANDLERS(FxSend) END_HANDLERS BEGIN_PROPSYNCS(FxSend) - if(sym == next_send){ - if(_op == kPropSet){ - SetNextSend(_val.Obj(0)); - } - else { - if(_op == (PropOp)0x40) return false; - _val = DataNode(mNextSend); - } - return true; - } - if(sym == stage){ - if(_op == kPropSet){ - SetStage(_val.Int(0)); - } - else { - if(_op == (PropOp)0x40) return false; - _val = DataNode(mStage); - } - return true; - } - SYNC_PROP_ACTION(dry_gain, mDryGain, kPropSize|kPropGet, UpdateMix()) - SYNC_PROP_ACTION(wet_gain, mWetGain, kPropSize|kPropGet, UpdateMix()) - SYNC_PROP_ACTION(input_gain, mInputGain, kPropSize|kPropGet, UpdateMix()) - SYNC_PROP_ACTION(reverb_mix_db, mReverbMixDb, kPropSize|kPropGet, UpdateMix()) - SYNC_PROP_ACTION(reverb_enable, mReverbEnable, kPropSize|kPropGet, RebuildChain()) - SYNC_PROP_ACTION(channels, (int&)mChannels, kPropSize|kPropGet, RebuildChain()) - SYNC_PROP_ACTION(bypass, mBypass, kPropSize|kPropGet, UpdateMix()) + SYNC_PROP_SET(next_send, mNextSend, SetNextSend(_val.Obj(0))) + SYNC_PROP_SET(stage, mStage, SetStage(_val.Int(0))) + SYNC_PROP_MODIFY(dry_gain, mDryGain, UpdateMix()) + SYNC_PROP_MODIFY(wet_gain, mWetGain, UpdateMix()) + SYNC_PROP_MODIFY(input_gain, mInputGain, UpdateMix()) + SYNC_PROP_MODIFY(reverb_mix_db, mReverbMixDb, UpdateMix()) + SYNC_PROP_MODIFY(reverb_enable, mReverbEnable, RebuildChain()) + SYNC_PROP_MODIFY(channels, (int&)mChannels, RebuildChain()) + SYNC_PROP_MODIFY(bypass, mBypass, UpdateMix()) END_PROPSYNCS \ No newline at end of file diff --git a/src/system/synth/FxSendChorus.cpp b/src/system/synth/FxSendChorus.cpp index a585bb88..5fce62dd 100644 --- a/src/system/synth/FxSendChorus.cpp +++ b/src/system/synth/FxSendChorus.cpp @@ -32,8 +32,8 @@ void FxSendChorus::Load(BinStream& bs){ BEGIN_COPYS(FxSendChorus) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendChorus) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendChorus) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mDelayMs) COPY_MEMBER(mRate) COPY_MEMBER(mDepth) @@ -42,7 +42,7 @@ BEGIN_COPYS(FxSendChorus) COPY_MEMBER(mTempoSync) COPY_MEMBER(mSyncType) COPY_MEMBER(mTempo) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(FxSendChorus) @@ -51,13 +51,13 @@ BEGIN_HANDLERS(FxSendChorus) END_HANDLERS BEGIN_PROPSYNCS(FxSendChorus) - SYNC_PROP_ACTION(delay_ms, mDelayMs, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(rate, mRate, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(depth, mDepth, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(feedback_pct, mFeedbackPct, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(offset_pct, mOffsetPct, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(tempo_sync, mTempoSync, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(sync_type, mSyncType, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(tempo, mTempo, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(delay_ms, mDelayMs, OnParametersChanged()) + SYNC_PROP_MODIFY(rate, mRate, OnParametersChanged()) + SYNC_PROP_MODIFY(depth, mDepth, OnParametersChanged()) + SYNC_PROP_MODIFY(feedback_pct, mFeedbackPct, OnParametersChanged()) + SYNC_PROP_MODIFY(offset_pct, mOffsetPct, OnParametersChanged()) + SYNC_PROP_MODIFY(tempo_sync, mTempoSync, OnParametersChanged()) + SYNC_PROP_MODIFY(sync_type, mSyncType, OnParametersChanged()) + SYNC_PROP_MODIFY(tempo, mTempo, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/FxSendCompress.cpp b/src/system/synth/FxSendCompress.cpp index 2436d018..f88c5dcb 100644 --- a/src/system/synth/FxSendCompress.cpp +++ b/src/system/synth/FxSendCompress.cpp @@ -33,8 +33,8 @@ void FxSendCompress::Load(BinStream& bs){ BEGIN_COPYS(FxSendCompress) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendCompress) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendCompress) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mThresholdDB) COPY_MEMBER(mRatio) COPY_MEMBER(mOutputLevel) @@ -44,7 +44,7 @@ BEGIN_COPYS(FxSendCompress) COPY_MEMBER(mExpAttack) COPY_MEMBER(mExpRelease) COPY_MEMBER(mGateThresholdDB) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(FxSendCompress) @@ -53,14 +53,14 @@ BEGIN_HANDLERS(FxSendCompress) END_HANDLERS BEGIN_PROPSYNCS(FxSendCompress) - SYNC_PROP_ACTION(threshold, mThresholdDB, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(comp_ratio, mRatio, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(output_level, mOutputLevel, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(attack, mAttack, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(release, mRelease, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(exp_ratio, mExpRatio, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(exp_attack, mExpAttack, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(exp_release, mExpRelease, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(gate_threshold, mGateThresholdDB, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(threshold, mThresholdDB, OnParametersChanged()) + SYNC_PROP_MODIFY(comp_ratio, mRatio, OnParametersChanged()) + SYNC_PROP_MODIFY(output_level, mOutputLevel, OnParametersChanged()) + SYNC_PROP_MODIFY(attack, mAttack, OnParametersChanged()) + SYNC_PROP_MODIFY(release, mRelease, OnParametersChanged()) + SYNC_PROP_MODIFY(exp_ratio, mExpRatio, OnParametersChanged()) + SYNC_PROP_MODIFY(exp_attack, mExpAttack, OnParametersChanged()) + SYNC_PROP_MODIFY(exp_release, mExpRelease, OnParametersChanged()) + SYNC_PROP_MODIFY(gate_threshold, mGateThresholdDB, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/FxSendDelay.cpp b/src/system/synth/FxSendDelay.cpp index a95ee001..6e9c702a 100644 --- a/src/system/synth/FxSendDelay.cpp +++ b/src/system/synth/FxSendDelay.cpp @@ -32,15 +32,15 @@ void FxSendDelay::Load(BinStream& bs){ BEGIN_COPYS(FxSendDelay) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendDelay) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendDelay) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mDelayTime) COPY_MEMBER(mGain) COPY_MEMBER(mTempoSync) COPY_MEMBER(mSyncType) COPY_MEMBER(mTempo) COPY_MEMBER(mPingPongPct) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(FxSendDelay) @@ -49,11 +49,11 @@ BEGIN_HANDLERS(FxSendDelay) END_HANDLERS BEGIN_PROPSYNCS(FxSendDelay) - SYNC_PROP_ACTION(delay_time, mDelayTime, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(feedback, mGain, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(tempo_sync, mTempoSync, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(sync_type, mSyncType, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(tempo, mTempo, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(ping_pong_pct, mPingPongPct, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(delay_time, mDelayTime, OnParametersChanged()) + SYNC_PROP_MODIFY(feedback, mGain, OnParametersChanged()) + SYNC_PROP_MODIFY(tempo_sync, mTempoSync, OnParametersChanged()) + SYNC_PROP_MODIFY(sync_type, mSyncType, OnParametersChanged()) + SYNC_PROP_MODIFY(tempo, mTempo, OnParametersChanged()) + SYNC_PROP_MODIFY(ping_pong_pct, mPingPongPct, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/FxSendDistortion.cpp b/src/system/synth/FxSendDistortion.cpp index 9aadb227..6325f1a2 100644 --- a/src/system/synth/FxSendDistortion.cpp +++ b/src/system/synth/FxSendDistortion.cpp @@ -25,10 +25,10 @@ void FxSendDistortion::Load(BinStream& bs){ BEGIN_COPYS(FxSendDistortion) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendDistortion) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendDistortion) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mDrive) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(FxSendDistortion) @@ -37,6 +37,6 @@ BEGIN_HANDLERS(FxSendDistortion) END_HANDLERS BEGIN_PROPSYNCS(FxSendDistortion) - SYNC_PROP_ACTION(drive, mDrive, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(drive, mDrive, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/FxSendEQ.cpp b/src/system/synth/FxSendEQ.cpp index d807b466..24ac5339 100644 --- a/src/system/synth/FxSendEQ.cpp +++ b/src/system/synth/FxSendEQ.cpp @@ -30,8 +30,8 @@ void FxSendEQ::Load(BinStream& bs){ BEGIN_COPYS(FxSendEQ) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendEQ) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendEQ) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mHighFreqCutoff) COPY_MEMBER(mHighFreqGain) COPY_MEMBER(mMidFreqCutoff) @@ -43,7 +43,7 @@ BEGIN_COPYS(FxSendEQ) COPY_MEMBER(mLowPassReso) COPY_MEMBER(mHighPassCutoff) COPY_MEMBER(mHighPassReso) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(FxSendEQ) @@ -52,16 +52,16 @@ BEGIN_HANDLERS(FxSendEQ) END_HANDLERS BEGIN_PROPSYNCS(FxSendEQ) - SYNC_PROP_ACTION(high_frequency, mHighFreqCutoff, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(high_gain, mHighFreqGain, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(mid_frequency, mMidFreqCutoff, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(mid_bandwidth, mMidFreqBandwidth, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(mid_gain, mMidFreqGain, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(low_frequency, mLowFreqCutoff, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(low_gain, mLowFreqGain, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(low_pass_cutoff, mLowPassCutoff, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(low_pass_reso, mLowPassReso, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(high_pass_cutoff, mHighPassCutoff, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(high_pass_reso, mHighPassReso, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(high_frequency, mHighFreqCutoff, OnParametersChanged()) + SYNC_PROP_MODIFY(high_gain, mHighFreqGain, OnParametersChanged()) + SYNC_PROP_MODIFY(mid_frequency, mMidFreqCutoff, OnParametersChanged()) + SYNC_PROP_MODIFY(mid_bandwidth, mMidFreqBandwidth, OnParametersChanged()) + SYNC_PROP_MODIFY(mid_gain, mMidFreqGain, OnParametersChanged()) + SYNC_PROP_MODIFY(low_frequency, mLowFreqCutoff, OnParametersChanged()) + SYNC_PROP_MODIFY(low_gain, mLowFreqGain, OnParametersChanged()) + SYNC_PROP_MODIFY(low_pass_cutoff, mLowPassCutoff, OnParametersChanged()) + SYNC_PROP_MODIFY(low_pass_reso, mLowPassReso, OnParametersChanged()) + SYNC_PROP_MODIFY(high_pass_cutoff, mHighPassCutoff, OnParametersChanged()) + SYNC_PROP_MODIFY(high_pass_reso, mHighPassReso, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/FxSendFlanger.cpp b/src/system/synth/FxSendFlanger.cpp index 302a4405..bdf30bce 100644 --- a/src/system/synth/FxSendFlanger.cpp +++ b/src/system/synth/FxSendFlanger.cpp @@ -39,8 +39,8 @@ void FxSendFlanger::Load(BinStream& bs){ BEGIN_COPYS(FxSendFlanger) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendFlanger) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendFlanger) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mDelayMs) COPY_MEMBER(mRate) COPY_MEMBER(mDepthPct) @@ -49,7 +49,7 @@ BEGIN_COPYS(FxSendFlanger) COPY_MEMBER(mTempoSync) COPY_MEMBER(mSyncType) COPY_MEMBER(mTempo) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(FxSendFlanger) @@ -59,13 +59,13 @@ END_HANDLERS BEGIN_PROPSYNCS(FxSendFlanger) - SYNC_PROP_ACTION(delay_ms, mDelayMs, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(rate, mRate, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(depth_pct, mDepthPct, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(feedback_pct, mFeedbackPct, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(offset_pct, mOffsetPct, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(tempo_sync, mTempoSync, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(sync_type, mSyncType, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(tempo, mTempo, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(delay_ms, mDelayMs, OnParametersChanged()) + SYNC_PROP_MODIFY(rate, mRate, OnParametersChanged()) + SYNC_PROP_MODIFY(depth_pct, mDepthPct, OnParametersChanged()) + SYNC_PROP_MODIFY(feedback_pct, mFeedbackPct, OnParametersChanged()) + SYNC_PROP_MODIFY(offset_pct, mOffsetPct, OnParametersChanged()) + SYNC_PROP_MODIFY(tempo_sync, mTempoSync, OnParametersChanged()) + SYNC_PROP_MODIFY(sync_type, mSyncType, OnParametersChanged()) + SYNC_PROP_MODIFY(tempo, mTempo, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/FxSendMeterEffect.cpp b/src/system/synth/FxSendMeterEffect.cpp index 87ee7e78..65584afc 100644 --- a/src/system/synth/FxSendMeterEffect.cpp +++ b/src/system/synth/FxSendMeterEffect.cpp @@ -21,7 +21,7 @@ void FxSendMeterEffect::Load(BinStream& bs){ BEGIN_COPYS(FxSendMeterEffect) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendMeterEffect) + CREATE_COPY(FxSendMeterEffect) END_COPYS float FxSendMeterEffect::ChannelData(int idx){ @@ -37,6 +37,6 @@ BEGIN_HANDLERS(FxSendMeterEffect) END_HANDLERS BEGIN_PROPSYNCS(FxSendMeterEffect) - SYNC_PROP_ACTION(reset_peaks, mResetPeaks, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(reset_peaks, mResetPeaks, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/FxSendPitchShift.cpp b/src/system/synth/FxSendPitchShift.cpp index 313ca191..ebd4114a 100644 --- a/src/system/synth/FxSendPitchShift.cpp +++ b/src/system/synth/FxSendPitchShift.cpp @@ -16,7 +16,7 @@ BEGIN_HANDLERS(FxSendPitchShift) END_HANDLERS BEGIN_PROPSYNCS(FxSendPitchShift) - SYNC_PROP_ACTION(pitch_ratio, mRatio, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(pitch_ratio, mRatio, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS @@ -36,8 +36,8 @@ void FxSendPitchShift::Load(BinStream& bs){ BEGIN_COPYS(FxSendPitchShift) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendPitchShift) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendPitchShift) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mRatio) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS diff --git a/src/system/synth/FxSendReverb.cpp b/src/system/synth/FxSendReverb.cpp index 4f464a01..dd453465 100644 --- a/src/system/synth/FxSendReverb.cpp +++ b/src/system/synth/FxSendReverb.cpp @@ -30,8 +30,8 @@ void FxSendReverb::Load(BinStream& bs){ BEGIN_COPYS(FxSendReverb) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendReverb) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendReverb) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mEnvironmentPreset) COPY_MEMBER(mPreDelayMs) COPY_MEMBER(mHighCut) @@ -40,7 +40,7 @@ BEGIN_COPYS(FxSendReverb) COPY_MEMBER(mDamping) COPY_MEMBER(mDiffusion) COPY_MEMBER(mEarlyLate) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(FxSendReverb) @@ -50,13 +50,13 @@ END_HANDLERS BEGIN_PROPSYNCS(FxSendReverb) - SYNC_PROP_ACTION(environment, mEnvironmentPreset, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(pre_delay_ms, mPreDelayMs, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(high_cut, mHighCut, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(low_cut, mLowCut, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(room_size, mRoomSize, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(damping, mDamping, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(diffusion, mDiffusion, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(early_late, mEarlyLate, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(environment, mEnvironmentPreset, OnParametersChanged()) + SYNC_PROP_MODIFY(pre_delay_ms, mPreDelayMs, OnParametersChanged()) + SYNC_PROP_MODIFY(high_cut, mHighCut, OnParametersChanged()) + SYNC_PROP_MODIFY(low_cut, mLowCut, OnParametersChanged()) + SYNC_PROP_MODIFY(room_size, mRoomSize, OnParametersChanged()) + SYNC_PROP_MODIFY(damping, mDamping, OnParametersChanged()) + SYNC_PROP_MODIFY(diffusion, mDiffusion, OnParametersChanged()) + SYNC_PROP_MODIFY(early_late, mEarlyLate, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/FxSendSynapse.cpp b/src/system/synth/FxSendSynapse.cpp index 3dc97ed7..2e2d41be 100644 --- a/src/system/synth/FxSendSynapse.cpp +++ b/src/system/synth/FxSendSynapse.cpp @@ -41,15 +41,15 @@ BEGIN_HANDLERS(FxSendSynapse) END_HANDLERS BEGIN_PROPSYNCS(FxSendSynapse) - SYNC_PROP_ACTION(amount, mAmount, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(proximity_effect, mProximityEffect, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(proximity_focus, mProximityFocus, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(note1_hz, mNote1Hz, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(note2_hz, mNote2Hz, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(note3_hz, mNote3Hz, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(unison_trio, mUnisonTrio, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(attack_smoothing, mAttackSmoothing, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(release_smoothing, mReleaseSmoothing, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(amount, mAmount, OnParametersChanged()) + SYNC_PROP_MODIFY(proximity_effect, mProximityEffect, OnParametersChanged()) + SYNC_PROP_MODIFY(proximity_focus, mProximityFocus, OnParametersChanged()) + SYNC_PROP_MODIFY(note1_hz, mNote1Hz, OnParametersChanged()) + SYNC_PROP_MODIFY(note2_hz, mNote2Hz, OnParametersChanged()) + SYNC_PROP_MODIFY(note3_hz, mNote3Hz, OnParametersChanged()) + SYNC_PROP_MODIFY(unison_trio, mUnisonTrio, OnParametersChanged()) + SYNC_PROP_MODIFY(attack_smoothing, mAttackSmoothing, OnParametersChanged()) + SYNC_PROP_MODIFY(release_smoothing, mReleaseSmoothing, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS @@ -72,8 +72,8 @@ void FxSendSynapse::Load(BinStream& bs){ BEGIN_COPYS(FxSendSynapse) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendSynapse) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendSynapse) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mAmount) COPY_MEMBER(mProximityEffect) COPY_MEMBER(mProximityFocus) @@ -82,6 +82,6 @@ BEGIN_COPYS(FxSendSynapse) COPY_MEMBER(mNote3Hz) COPY_MEMBER(mUnisonTrio) COPY_MEMBER(mAttackSmoothing) - COPY_MEMBER(mReleaseSmoothing) - END_COPY_CHECKED + COPY_MEMBER(mReleaseSmoothing) + END_COPYING_MEMBERS END_COPYS diff --git a/src/system/synth/FxSendWah.cpp b/src/system/synth/FxSendWah.cpp index 378908bf..c493fcb1 100644 --- a/src/system/synth/FxSendWah.cpp +++ b/src/system/synth/FxSendWah.cpp @@ -29,8 +29,8 @@ void FxSendWah::Load(BinStream& bs){ BEGIN_COPYS(FxSendWah) COPY_SUPERCLASS(FxSend) - GET_COPY(FxSendWah) - BEGIN_COPY_CHECKED + CREATE_COPY(FxSendWah) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mResonance) COPY_MEMBER(mLowerFreq) COPY_MEMBER(mUpperFreq) @@ -42,7 +42,7 @@ BEGIN_COPYS(FxSendWah) COPY_MEMBER(mDistAmount) COPY_MEMBER(mAutoWah) COPY_MEMBER(mFrequency) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_HANDLERS(FxSendWah) @@ -51,18 +51,18 @@ BEGIN_HANDLERS(FxSendWah) END_HANDLERS BEGIN_PROPSYNCS(FxSendWah) - SYNC_PROP_ACTION(resonance, mResonance, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(upper_freq, mUpperFreq, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(lower_freq, mLowerFreq, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(lfo_freq, mLfoFreq, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(magic, mMagic, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(tempo_sync, mTempoSync, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(sync_type, mSyncType, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(tempo, mTempo, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(beat_frac, mBeatFrac, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(dist_amount, mDistAmount, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(auto_wah, mAutoWah, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(frequency, mFrequency, kPropSize|kPropGet, OnParametersChanged()) - SYNC_PROP_ACTION(dump, mDump, kPropSize|kPropGet, OnParametersChanged()) + SYNC_PROP_MODIFY(resonance, mResonance, OnParametersChanged()) + SYNC_PROP_MODIFY(upper_freq, mUpperFreq, OnParametersChanged()) + SYNC_PROP_MODIFY(lower_freq, mLowerFreq, OnParametersChanged()) + SYNC_PROP_MODIFY(lfo_freq, mLfoFreq, OnParametersChanged()) + SYNC_PROP_MODIFY(magic, mMagic, OnParametersChanged()) + SYNC_PROP_MODIFY(tempo_sync, mTempoSync, OnParametersChanged()) + SYNC_PROP_MODIFY(sync_type, mSyncType, OnParametersChanged()) + SYNC_PROP_MODIFY(tempo, mTempo, OnParametersChanged()) + SYNC_PROP_MODIFY(beat_frac, mBeatFrac, OnParametersChanged()) + SYNC_PROP_MODIFY(dist_amount, mDistAmount, OnParametersChanged()) + SYNC_PROP_MODIFY(auto_wah, mAutoWah, OnParametersChanged()) + SYNC_PROP_MODIFY(frequency, mFrequency, OnParametersChanged()) + SYNC_PROP_MODIFY(dump, mDump, OnParametersChanged()) SYNC_SUPERCLASS(FxSend) END_PROPSYNCS diff --git a/src/system/synth/MoggClip.cpp b/src/system/synth/MoggClip.cpp index 84bc7dca..0acf51d2 100644 --- a/src/system/synth/MoggClip.cpp +++ b/src/system/synth/MoggClip.cpp @@ -59,14 +59,14 @@ SAVE_OBJ(MoggClip, 0x82) BEGIN_COPYS(MoggClip) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(MoggClip) - BEGIN_COPY_CHECKED + CREATE_COPY(MoggClip) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mFilePath) COPY_MEMBER(mVolume) COPY_MEMBER(mLoop) COPY_MEMBER(mLoopStart) COPY_MEMBER(mLoopEnd) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS void MoggClip::Load(BinStream& bs){ @@ -228,11 +228,11 @@ void MoggClip::SetupPanInfo(float f1, float f2, bool b){ } BEGIN_PROPSYNCS(MoggClip) - SYNC_PROP_METHOD(file, mFilePath, SetFile(_val.Str(0))) - SYNC_PROP_METHOD(volume, mVolume, SetVolume(_val.Float(0))) - SYNC_PROP_METHOD(loop, mLoop, SetLoop(_val.Int(0) != 0)) - SYNC_PROP_METHOD(loop_start_sample, mLoopStart, SetLoopStart(_val.Int(0))) - SYNC_PROP_METHOD(loop_end_sample, mLoopEnd, SetLoopEnd(_val.Int(0))) + SYNC_PROP_SET(file, mFilePath, SetFile(_val.Str(0))) + SYNC_PROP_SET(volume, mVolume, SetVolume(_val.Float(0))) + SYNC_PROP_SET(loop, mLoop, SetLoop(_val.Int(0) != 0)) + SYNC_PROP_SET(loop_start_sample, mLoopStart, SetLoopStart(_val.Int(0))) + SYNC_PROP_SET(loop_end_sample, mLoopEnd, SetLoopEnd(_val.Int(0))) END_PROPSYNCS BEGIN_HANDLERS(MoggClip) diff --git a/src/system/synth/Sequence.cpp b/src/system/synth/Sequence.cpp index 32105458..619cd192 100644 --- a/src/system/synth/Sequence.cpp +++ b/src/system/synth/Sequence.cpp @@ -84,16 +84,18 @@ void Sequence::Load(BinStream& bs){ BEGIN_COPYS(Sequence) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(Sequence) - if(c && ty != kCopyFromMax){ - COPY_MEMBER(mAvgVol) - COPY_MEMBER(mVolSpread) - COPY_MEMBER(mAvgTranspose) - COPY_MEMBER(mTransposeSpread) - COPY_MEMBER(mAvgPan) - COPY_MEMBER(mPanSpread) - COPY_MEMBER(mCanStop) - } + CREATE_COPY(Sequence) + BEGIN_COPYING_MEMBERS + if(ty != kCopyFromMax){ + COPY_MEMBER(mAvgVol) + COPY_MEMBER(mVolSpread) + COPY_MEMBER(mAvgTranspose) + COPY_MEMBER(mTransposeSpread) + COPY_MEMBER(mAvgPan) + COPY_MEMBER(mPanSpread) + COPY_MEMBER(mCanStop) + } + END_COPYING_MEMBERS END_COPYS DataNode Sequence::OnPlay(DataArray* arr){ @@ -142,7 +144,7 @@ BEGIN_PROPSYNCS(Sequence) SYNC_PROP(avg_pan, mAvgPan) SYNC_PROP(pan_spread, mPanSpread) SYNC_PROP(can_stop, mCanStop) - SYNC_PROP_METHOD(trigger_sound, 0, OnTriggerSound(_val.Int(0))) + SYNC_PROP_SET(trigger_sound, 0, OnTriggerSound(_val.Int(0))) END_PROPSYNCS WaitSeq::WaitSeq() : mAvgWaitSecs(0.0f), mWaitSpread(0.0f) { @@ -168,11 +170,13 @@ void WaitSeq::Load(BinStream& bs){ BEGIN_COPYS(WaitSeq) COPY_SUPERCLASS(Sequence) - GET_COPY(WaitSeq) - if(c && ty != kCopyFromMax){ - COPY_MEMBER(mAvgWaitSecs) - COPY_MEMBER(mWaitSpread) - } + CREATE_COPY(WaitSeq) + BEGIN_COPYING_MEMBERS + if(ty != kCopyFromMax){ + COPY_MEMBER(mAvgWaitSecs) + COPY_MEMBER(mWaitSpread) + } + END_COPYING_MEMBERS END_COPYS BEGIN_PROPSYNCS(WaitSeq) @@ -206,11 +210,13 @@ void RandomGroupSeq::ForceNextIndex(int i){ BEGIN_COPYS(RandomGroupSeq) COPY_SUPERCLASS(GroupSeq) - GET_COPY(RandomGroupSeq) - if(c && ty != kCopyFromMax){ - COPY_MEMBER(mNumSimul) - COPY_MEMBER(mAllowRepeats) - } + CREATE_COPY(RandomGroupSeq) + BEGIN_COPYING_MEMBERS + if(ty != kCopyFromMax){ + COPY_MEMBER(mNumSimul) + COPY_MEMBER(mAllowRepeats) + } + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(RandomGroupSeq, 0x217) @@ -250,12 +256,14 @@ SeqInst* RandomIntervalGroupSeq::MakeInstImpl(){ BEGIN_COPYS(RandomIntervalGroupSeq) COPY_SUPERCLASS(GroupSeq) - GET_COPY(RandomIntervalGroupSeq) - if(c && ty != kCopyFromMax){ - COPY_MEMBER(mAvgIntervalSecs) - COPY_MEMBER(mIntervalSpread) - COPY_MEMBER(mMaxSimultaneous) - } + CREATE_COPY(RandomIntervalGroupSeq) + BEGIN_COPYING_MEMBERS + if(ty != kCopyFromMax){ + COPY_MEMBER(mAvgIntervalSecs) + COPY_MEMBER(mIntervalSpread) + COPY_MEMBER(mMaxSimultaneous) + } + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(RandomIntervalGroupSeq, 0x266) @@ -309,10 +317,12 @@ GroupSeq::GroupSeq() : mChildren(this, kObjListNoNull) { BEGIN_COPYS(GroupSeq) COPY_SUPERCLASS(Sequence) - GET_COPY(GroupSeq) - if(c && ty != kCopyFromMax){ - COPY_MEMBER(mChildren) - } + CREATE_COPY(GroupSeq) + BEGIN_COPYING_MEMBERS + if(ty != kCopyFromMax){ + COPY_MEMBER(mChildren) + } + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(GroupSeq, 0x322) diff --git a/src/system/ui/PanelDir.cpp b/src/system/ui/PanelDir.cpp index 22fcbcd4..5ed04b58 100644 --- a/src/system/ui/PanelDir.cpp +++ b/src/system/ui/PanelDir.cpp @@ -37,16 +37,16 @@ void PanelDir::PreLoad(BinStream& bs) { BEGIN_COPYS(PanelDir) COPY_SUPERCLASS(RndDir) - GET_COPY(PanelDir) - BEGIN_COPY_CHECKED - COPY_MEMBER(mCam) - COPY_MEMBER(mCanEndWorld) - COPY_MEMBER(mBackFilenames) - COPY_MEMBER(mFrontFilenames) - COPY_MEMBER(mShowEditModePanels) - COPY_MEMBER(mUseSpecifiedCam) + CREATE_COPY(PanelDir, c) + if(c){ + COPY_MEM(c, mCam) + COPY_MEM(c, mCanEndWorld) + COPY_MEM(c, mBackFilenames) + COPY_MEM(c, mFrontFilenames) + COPY_MEM(c, mShowEditModePanels) + COPY_MEM(c, mUseSpecifiedCam) SyncEditModePanels(); - END_COPY_CHECKED + } END_COPYS BEGIN_PROPSYNCS(PanelDir) diff --git a/src/system/ui/Screenshot.cpp b/src/system/ui/Screenshot.cpp index 86150c30..7214943e 100644 --- a/src/system/ui/Screenshot.cpp +++ b/src/system/ui/Screenshot.cpp @@ -13,8 +13,8 @@ unsigned short Screenshot::gAltRev = 0; BEGIN_COPYS(Screenshot) COPY_SUPERCLASS(Hmx::Object) COPY_SUPERCLASS(RndDrawable) - GET_COPY(Screenshot) - if(c && ty != kCopyFromMax) COPY_MEMBER(mTexPath) + CREATE_COPY(Screenshot, c) + if(c && ty != kCopyFromMax) COPY_MEM(c, mTexPath) Sync(); END_COPYS @@ -67,15 +67,6 @@ BEGIN_HANDLERS(Screenshot) END_HANDLERS BEGIN_PROPSYNCS(Screenshot) - // SYNC_PROP_ACTION(tex_path, mTexPath, kPropSize|kPropGet, Sync()) - // TODO: fix the SYNC_PROP_ACTION macro to incorporate this order of control flow, while not breaking the other SyncProps - if(sym == tex_path){ - bool synced = PropSync(mTexPath, _val, _prop, _i + 1, _op); - if(synced) { - if(!(_op & (kPropSize|kPropGet))){ Sync(); } - return true; - } - else return false; - } + SYNC_PROP_MODIFY_ALT(tex_path, mTexPath, Sync()) SYNC_SUPERCLASS(RndDrawable) END_PROPSYNCS diff --git a/src/system/ui/UIButton.cpp b/src/system/ui/UIButton.cpp index c999be92..8c8156df 100644 --- a/src/system/ui/UIButton.cpp +++ b/src/system/ui/UIButton.cpp @@ -17,7 +17,7 @@ void UIButton::Init() { Hmx::Object* UIButton::NewObject() {return new UIButton;} BEGIN_COPYS(UIButton) - const UIButton* f = dynamic_cast(o); \ + CREATE_COPY_AS(UIButton, f); MILO_ASSERT(f, 42); COPY_SUPERCLASS(UILabel) END_COPYS diff --git a/src/system/ui/UIColor.cpp b/src/system/ui/UIColor.cpp index c7469d78..12469e1d 100644 --- a/src/system/ui/UIColor.cpp +++ b/src/system/ui/UIColor.cpp @@ -29,7 +29,8 @@ void UIColor::Load(BinStream& bs){ BEGIN_COPYS(UIColor) COPY_SUPERCLASS(Hmx::Object) - GET_COPY_AND_ASSERT(UIColor, 0x34) + CREATE_COPY(UIColor) + MILO_ASSERT(c, 0x34); COPY_MEMBER(mColor) END_COPYS diff --git a/src/system/ui/UIComponent.cpp b/src/system/ui/UIComponent.cpp index 615bce3a..e0bf2e12 100644 --- a/src/system/ui/UIComponent.cpp +++ b/src/system/ui/UIComponent.cpp @@ -75,8 +75,9 @@ void UIComponent::SetTypeDef(DataArray* da) { } BEGIN_COPYS(UIComponent) - GET_COPY_AND_ASSERT(UIComponent, 134) - COPY_MEMBER(mDir); + CREATE_COPY(UIComponent) + MILO_ASSERT(c, 134); + COPY_MEMBER(mDir) COPY_MEMBER(mResourcePath) COPY_SUPERCLASS(Hmx::Object); CopyMembers(c, ty); diff --git a/src/system/ui/UIGuide.cpp b/src/system/ui/UIGuide.cpp index 81e90a6f..c83208af 100644 --- a/src/system/ui/UIGuide.cpp +++ b/src/system/ui/UIGuide.cpp @@ -24,11 +24,11 @@ void UIGuide::Load(BinStream& bs){ BEGIN_COPYS(UIGuide) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(UIGuide) - BEGIN_COPY_CHECKED + CREATE_COPY(UIGuide) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mType) COPY_MEMBER(mPos) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS BEGIN_PROPSYNCS(UIGuide); diff --git a/src/system/ui/UILabel.cpp b/src/system/ui/UILabel.cpp index d3ba4239..e8e947e0 100644 --- a/src/system/ui/UILabel.cpp +++ b/src/system/ui/UILabel.cpp @@ -25,7 +25,8 @@ void UILabel::Init() { void UILabel::Terminate() {} BEGIN_COPYS(UILabel) - GET_COPY_AND_ASSERT(UILabel, 96) + CREATE_COPY(UILabel) + MILO_ASSERT(c, 96); COPY_SUPERCLASS(UIComponent) // SetCreditsText(); END_COPYS diff --git a/src/system/ui/UIListArrow.cpp b/src/system/ui/UIListArrow.cpp index 6e99bd96..99bc97fa 100644 --- a/src/system/ui/UIListArrow.cpp +++ b/src/system/ui/UIListArrow.cpp @@ -26,13 +26,13 @@ void UIListArrow::Load(BinStream& bs) { BEGIN_COPYS(UIListArrow) COPY_SUPERCLASS(UIListWidget) - const UIListArrow* a = dynamic_cast(o); + CREATE_COPY_AS(UIListArrow, a); MILO_ASSERT(a, 0x5C); - mMesh = a->mMesh; - mPosition = a->mPosition; - mShowOnlyScroll = a->mShowOnlyScroll; - mOnHighlight = a->mOnHighlight; - mScrollAnim = a->mScrollAnim; + COPY_MEMBER_FROM(a, mMesh) + COPY_MEMBER_FROM(a, mPosition) + COPY_MEMBER_FROM(a, mShowOnlyScroll) + COPY_MEMBER_FROM(a, mOnHighlight) + COPY_MEMBER_FROM(a, mScrollAnim) END_COPYS void UIListArrow::StartScroll(int i, bool) { // holy fakematch @@ -54,7 +54,7 @@ END_HANDLERS BEGIN_PROPSYNCS(UIListArrow) SYNC_PROP(mesh, mMesh) SYNC_PROP(scroll_anim, mScrollAnim) - SYNC_PROP_METHOD(position, mPosition, mPosition = (UIListArrowPosition)_val.Int(0)) + SYNC_PROP_SET(position, mPosition, mPosition = (UIListArrowPosition)_val.Int(0)) SYNC_PROP(show_only_scroll, mShowOnlyScroll) SYNC_PROP(on_highlight, mOnHighlight) SYNC_SUPERCLASS(UIListWidget) diff --git a/src/system/ui/UIListWidget.cpp b/src/system/ui/UIListWidget.cpp index 7cc2d3d7..1650c75c 100644 --- a/src/system/ui/UIListWidget.cpp +++ b/src/system/ui/UIListWidget.cpp @@ -71,13 +71,13 @@ END_LOADS BEGIN_COPYS(UIListWidget) COPY_SUPERCLASS(Hmx::Object) - const UIListWidget* w = dynamic_cast(o); + CREATE_COPY_AS(UIListWidget, w) MILO_ASSERT(w, 0xC6); - mDrawOrder = w->mDrawOrder; - mDisabledAlphaScale = w->mDisabledAlphaScale; - mDefaultColor = w->mDefaultColor; - mColors = w->mColors; - mWidgetDrawType = w->mWidgetDrawType; + COPY_MEMBER_FROM(w, mDrawOrder) + COPY_MEMBER_FROM(w, mDisabledAlphaScale) + COPY_MEMBER_FROM(w, mDefaultColor) + COPY_MEMBER_FROM(w, mColors) + COPY_MEMBER_FROM(w, mWidgetDrawType) END_COPYS BEGIN_HANDLERS(UIListWidget) @@ -89,20 +89,20 @@ BEGIN_PROPSYNCS(UIListWidget) SYNC_PROP(draw_order, mDrawOrder) SYNC_PROP(disabled_alpha_scale, mDisabledAlphaScale) SYNC_PROP(default_color, mDefaultColor) - SYNC_PROP_METHOD(widget_draw_type, (int&)mWidgetDrawType, mWidgetDrawType = (UIListWidgetDrawType)_val.Int(0)) - SYNC_PROP_METHOD(active_normal_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kNormal], SetColor(kUIListWidgetActive, UIComponent::kNormal, _val.Obj(0))) - SYNC_PROP_METHOD(active_focused_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kFocused], SetColor(kUIListWidgetActive, UIComponent::kFocused, _val.Obj(0))) - SYNC_PROP_METHOD(active_disabled_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kDisabled], SetColor(kUIListWidgetActive, UIComponent::kDisabled, _val.Obj(0))) - SYNC_PROP_METHOD(active_selecting_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kSelecting], SetColor(kUIListWidgetActive, UIComponent::kSelecting, _val.Obj(0))) - SYNC_PROP_METHOD(active_selected_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kSelected], SetColor(kUIListWidgetActive, UIComponent::kSelected, _val.Obj(0))) - SYNC_PROP_METHOD(highlight_normal_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kNormal], SetColor(kUIListWidgetHighlight, UIComponent::kNormal, _val.Obj(0))) - SYNC_PROP_METHOD(highlight_focused_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kFocused], SetColor(kUIListWidgetHighlight, UIComponent::kFocused, _val.Obj(0))) - SYNC_PROP_METHOD(highlight_disabled_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kDisabled], SetColor(kUIListWidgetHighlight, UIComponent::kDisabled, _val.Obj(0))) - SYNC_PROP_METHOD(highlight_selecting_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kSelecting], SetColor(kUIListWidgetHighlight, UIComponent::kSelecting, _val.Obj(0))) - SYNC_PROP_METHOD(highlight_selected_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kSelected], SetColor(kUIListWidgetHighlight, UIComponent::kSelected, _val.Obj(0))) - SYNC_PROP_METHOD(inactive_normal_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kNormal], SetColor(kUIListWidgetInactive, UIComponent::kNormal, _val.Obj(0))) - SYNC_PROP_METHOD(inactive_focused_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kFocused], SetColor(kUIListWidgetInactive, UIComponent::kFocused, _val.Obj(0))) - SYNC_PROP_METHOD(inactive_disabled_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kDisabled], SetColor(kUIListWidgetInactive, UIComponent::kDisabled, _val.Obj(0))) - SYNC_PROP_METHOD(inactive_selecting_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kSelecting], SetColor(kUIListWidgetInactive, UIComponent::kSelecting, _val.Obj(0))) - SYNC_PROP_METHOD(inactive_selected_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kSelected], SetColor(kUIListWidgetInactive, UIComponent::kSelected, _val.Obj(0))) + SYNC_PROP_SET(widget_draw_type, (int&)mWidgetDrawType, mWidgetDrawType = (UIListWidgetDrawType)_val.Int(0)) + SYNC_PROP_SET(active_normal_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kNormal], SetColor(kUIListWidgetActive, UIComponent::kNormal, _val.Obj(0))) + SYNC_PROP_SET(active_focused_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kFocused], SetColor(kUIListWidgetActive, UIComponent::kFocused, _val.Obj(0))) + SYNC_PROP_SET(active_disabled_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kDisabled], SetColor(kUIListWidgetActive, UIComponent::kDisabled, _val.Obj(0))) + SYNC_PROP_SET(active_selecting_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kSelecting], SetColor(kUIListWidgetActive, UIComponent::kSelecting, _val.Obj(0))) + SYNC_PROP_SET(active_selected_color, (Hmx::Object*)mColors[kUIListWidgetActive][UIComponent::kSelected], SetColor(kUIListWidgetActive, UIComponent::kSelected, _val.Obj(0))) + SYNC_PROP_SET(highlight_normal_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kNormal], SetColor(kUIListWidgetHighlight, UIComponent::kNormal, _val.Obj(0))) + SYNC_PROP_SET(highlight_focused_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kFocused], SetColor(kUIListWidgetHighlight, UIComponent::kFocused, _val.Obj(0))) + SYNC_PROP_SET(highlight_disabled_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kDisabled], SetColor(kUIListWidgetHighlight, UIComponent::kDisabled, _val.Obj(0))) + SYNC_PROP_SET(highlight_selecting_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kSelecting], SetColor(kUIListWidgetHighlight, UIComponent::kSelecting, _val.Obj(0))) + SYNC_PROP_SET(highlight_selected_color, (Hmx::Object*)mColors[kUIListWidgetHighlight][UIComponent::kSelected], SetColor(kUIListWidgetHighlight, UIComponent::kSelected, _val.Obj(0))) + SYNC_PROP_SET(inactive_normal_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kNormal], SetColor(kUIListWidgetInactive, UIComponent::kNormal, _val.Obj(0))) + SYNC_PROP_SET(inactive_focused_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kFocused], SetColor(kUIListWidgetInactive, UIComponent::kFocused, _val.Obj(0))) + SYNC_PROP_SET(inactive_disabled_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kDisabled], SetColor(kUIListWidgetInactive, UIComponent::kDisabled, _val.Obj(0))) + SYNC_PROP_SET(inactive_selecting_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kSelecting], SetColor(kUIListWidgetInactive, UIComponent::kSelecting, _val.Obj(0))) + SYNC_PROP_SET(inactive_selected_color, (Hmx::Object*)mColors[kUIListWidgetInactive][UIComponent::kSelected], SetColor(kUIListWidgetInactive, UIComponent::kSelected, _val.Obj(0))) END_PROPSYNCS diff --git a/src/system/ui/UIPicture.cpp b/src/system/ui/UIPicture.cpp index fcadfc50..6ed7562d 100644 --- a/src/system/ui/UIPicture.cpp +++ b/src/system/ui/UIPicture.cpp @@ -39,10 +39,10 @@ UIPicture::~UIPicture() { } BEGIN_COPYS(UIPicture) - const UIPicture* p = dynamic_cast(o); + CREATE_COPY(UIPicture, p) MILO_ASSERT(p, 0x41); UIComponent::Copy(p, ty); - mMesh = p->mMesh; + COPY_MEM(p, mMesh) UITransitionHandler::CopyHandlerData(p); END_COPYS @@ -163,6 +163,6 @@ END_HANDLERS BEGIN_PROPSYNCS(UIPicture) SYNC_PROP(tex_file, mTexFile) - SYNC_PROP_ACTION(mesh, mMesh, 0x11, HookupMesh()) + SYNC_PROP_MODIFY(mesh, mMesh, HookupMesh()) SYNC_SUPERCLASS(UIComponent) END_PROPSYNCS diff --git a/src/system/utl/KeylessHash.h b/src/system/utl/KeylessHash.h index 563a9465..d50b0401 100644 --- a/src/system/utl/KeylessHash.h +++ b/src/system/utl/KeylessHash.h @@ -84,9 +84,9 @@ template class KeylessHash { void Resize(int, T2*); T2* FirstFrom(T2* entry){ - for(; entry < mEntries + mSize && (*entry == mEmpty || *entry == mRemoved); entry++); - if(entry == mEntries + mSize) return 0; - else return entry; + // for(; entry < mEntries + mSize && (*entry == mEmpty || *entry == mRemoved); entry++); + // if(entry == mEntries + mSize) return 0; + // else return entry; } }; diff --git a/src/system/world/ColorPalette.cpp b/src/system/world/ColorPalette.cpp index 174a3083..545f154c 100644 --- a/src/system/world/ColorPalette.cpp +++ b/src/system/world/ColorPalette.cpp @@ -31,7 +31,8 @@ void ColorPalette::Load(BinStream& bs){ } BEGIN_COPYS(ColorPalette) - GET_COPY_AND_ASSERT(ColorPalette, 0x4A); + CREATE_COPY(ColorPalette); + MILO_ASSERT(c, 0x4A); Hmx::Object::Copy(c, ty); COPY_MEMBER(mColors) END_COPYS diff --git a/src/system/world/LightHue.cpp b/src/system/world/LightHue.cpp index b5c73924..02e989ae 100644 --- a/src/system/world/LightHue.cpp +++ b/src/system/world/LightHue.cpp @@ -13,11 +13,11 @@ LightHue::~LightHue(){ BEGIN_COPYS(LightHue) COPY_SUPERCLASS(Hmx::Object) - GET_COPY(LightHue) - BEGIN_COPY_CHECKED + CREATE_COPY(LightHue) + BEGIN_COPYING_MEMBERS COPY_MEMBER(mPath) COPY_MEMBER(mKeys) - END_COPY_CHECKED + END_COPYING_MEMBERS END_COPYS SAVE_OBJ(LightHue, 0x27)