bool plLayerSDLAnimation::MsgReceive(plMessage* msg) { plSDLNotificationMsg* nMsg = plSDLNotificationMsg::ConvertNoRef(msg); if (nMsg) { TopOfStack()->Eval(hsTimer::GetSysSeconds(), 0, 0); ClaimChannels(fOwnedChannels); return true; } return plLayerAnimationBase::MsgReceive(msg); }
void plLayerLinkAnimation::SetFadeFlag(uint8_t flag, bool val) { if (val) fFadeFlags |= flag; else fFadeFlags &= ~flag; if (fFadeFlags == 0) fLastFadeFlag = flag; TopOfStack()->Eval(hsTimer::GetSysSeconds(), 0, 0); ClaimChannels(fOwnedChannels); fCurrentTime = -1; // force eval fFadeFlagsDirty = true; }
int main(void) { int input; ElementType tempcell; Stack P; P = IniStack(); //INISTACK while( scanf("%d", &input) ) { tempcell.number = input; Push( P, tempcell ); //PUSH } PR(P); Pop( P ); //POP PR(P); tempcell = TopOfStack( P ); //TopOfStack Push( P, tempcell ); PR(P); DestoryStack( P ); return 0; }
bool plLayerAnimation::MsgReceive(plMessage* msg) { // pass sdl msg to sdlMod plSDLModifierMsg* sdlMsg = plSDLModifierMsg::ConvertNoRef(msg); if (sdlMsg && fLayerSDLMod) { if (fLayerSDLMod->MsgReceive(sdlMsg)) return true; // msg handled } bool retVal = false; plAnimCmdMsg* cmdMsg = plAnimCmdMsg::ConvertNoRef(msg); if( cmdMsg ) { // Evaluate first, so we'll be transitioning from our // real current state, whether we've been evaluated (in view) // lately or not. TopOfStack()->Eval(hsTimer::GetSysSeconds(), 0, 0); retVal = fTimeConvert.HandleCmd(cmdMsg); DirtySynchState(kSDLLayer, 0); } if( retVal ) { if( !fTimeConvert.IsStopped() || fTimeConvert.GetFlag(plAnimTimeConvert::kForcedMove) ) { ClaimChannels(fOwnedChannels); fCurrentTime = -1.f; // force an eval } } else { retVal = plLayerAnimationBase::MsgReceive(msg); } return retVal; }