TRef<IObject> Apply(ObjectStack& stack) { TRef<Image> pimage; CastTo(pimage, (Value*)(IObject*)stack.Pop()); TRef<Number> pnumberFaces; CastTo(pnumberFaces, (IObject*)stack.Pop()); bool bActAsTabs = false; TVector<int> m_vecColumns; ParseIntVector((IObject*)stack.Pop(), m_vecColumns); if (stack.GetCount() > 0) { TRef<Boolean> pbooleanActAsTabs; CastTo(pbooleanActAsTabs, (IObject*)stack.Pop()); bActAsTabs = pbooleanActAsTabs->GetValue(); } TRef<ButtonBarPane> pbuttonbar = CreateButtonBarPane( pimage->GetSurface(), (DWORD)pnumberFaces->GetValue(), m_vecColumns, bActAsTabs ); pbuttonbar->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound)); pbuttonbar->GetEventSource()->AddSink(new SoundIDEventSink(mouseclickSound)); return pbuttonbar; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<PointValue> ppointFace; CastTo(ppointFace, (IObject*)stack.Pop()); TRef<PointValue> ppoint; CastTo(ppoint, (IObject*)stack.Pop()); TRef<FontValue> pfont; CastTo(pfont, (IObject*)stack.Pop()); TRef<ColorValue> pcolor; CastTo(pcolor, (IObject*)stack.Pop()); TRef<ComboPane> pcombo = CreateComboPane( m_pmodeler, m_ppopupContainer, pfont->GetValue(), WinPoint::Cast(ppoint->GetValue()), CreateStringComboFacePane( WinPoint::Cast(ppointFace->GetValue()), pfont->GetValue(), pcolor->GetValue(), true ) ); pcombo->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound)); pcombo->GetMenuSelectEventSource()->AddSink(new SoundIDEventSink(mouseclickSound)); return pcombo; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<ColorValue> pcolor = ColorValue::Cast((IObject*)stack.Pop()); TRef<Image> pimage = Image::Cast((Value*)(IObject*)stack.Pop()); return (Value*)CreateBlendColorImage(pimage, pcolor); }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Number> pnumber; CastTo(pnumber, (IObject*)stack.Pop()); TRef<IObjectList> plist; CastTo(plist, (IObject*)stack.Pop()); TRef<SwitchValuePane> ppane = new SwitchValuePane(pnumber); plist->GetFirst(); while (plist->GetCurrent() != NULL) { IObjectPair* ppair; CastTo(ppair, plist->GetCurrent()); TRef<Pane> ppaneChild; CastTo(ppaneChild, (Pane*)ppair->GetFirst()); TRef<Number> pnumberChildID = Number::Cast(ppair->GetSecond()); ppane->InsertPane(ppaneChild, (int)pnumberChildID->GetValue()); plist->GetNext(); } if (stack.GetCount() > 0) { TRef<Pane> ppaneDefault; CastTo(ppaneDefault, (Pane*)(IObject*)stack.Pop()); ppane->SetDefaultPane(ppaneDefault); } return (Pane*)ppane; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Number> pnumGain; CastTo(pnumGain, (IObject*)stack.Pop()); TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop()); ZAssert(pnumGain && ptemplateBase); return new SoundGainValueTemplate(ptemplateBase, pnumGain); }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Number> pnumMinDist; CastTo(pnumMinDist, (IObject*)stack.Pop()); TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; ZSucceeded(Create3DSoundTemplate(pTemplate, ptemplateBase, pnumMinDist->GetValue())); return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<IDiskPlayer> pdiskPlayer; CastTo(pdiskPlayer, (IObject*)stack.Pop()); TRef<Number> pnumTrack; CastTo(pnumTrack, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; ZSucceeded(CreateRedbookSoundTemplate(pTemplate, pdiskPlayer, (int)pnumTrack->GetValue())); return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { //TRef<RectValue> prect = RectValue::Cast((IObject*)stack.Pop()); TRef<Image> pimage = Image::Cast((Value*)(IObject*)stack.Pop()); TRef<Boolean> pbooleanShowDetails = Boolean::Cast((IObject*)stack.Pop()); TRef<Boolean> pbooleanShowSide = Boolean::Cast((IObject*)stack.Pop()); return (Pane*) new MapPreviewPane(m_pmodeler,pimage,pbooleanShowDetails->GetValue(),pbooleanShowSide->GetValue()); }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Number> pnumPeriod; CastTo(pnumPeriod, (IObject*)stack.Pop()); TRef<Boolean> pboolPlayMultiple; CastTo(pboolPlayMultiple, (IObject*)stack.Pop()); TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; ZSucceeded(CreateIntermittentSoundTemplate(pTemplate, ptemplateBase, pnumPeriod->GetValue(), pboolPlayMultiple->GetValue())); return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TVector<int> m_vecColumns; ParseIntVector((IObject*)stack.Pop(), m_vecColumns); TVector<ZString> m_vecColumnsNames; ParseStringVector((IObject*)stack.Pop(), m_vecColumnsNames); TRef<Number> pnumberFaces; CastTo(pnumberFaces, (IObject*)stack.Pop()); bool bActAsTabs = false; if (stack.GetCount() > 0) { TRef<Boolean> pbooleanActAsTabs; CastTo(pbooleanActAsTabs, (IObject*)stack.Pop()); bActAsTabs = pbooleanActAsTabs->GetValue(); } TRef<ButtonBarPane> pbuttonbar = CreateButtonBarPane(bActAsTabs,false); int count = m_vecColumns.GetCount(); int xprev = 0; for (int index = 0; index < count; index++) { int x = m_vecColumns[index]; WinPoint p = TrekResources::SmallFont()->GetTextExtent(m_vecColumnsNames[index]); TRef<StringPane> s1 = new StringPane( m_vecColumnsNames[index], TrekResources::SmallFont(), WinPoint(x-xprev,p.Y()), JustifyLeft()); TRef<StringPane> s2 = new StringPane( m_vecColumnsNames[index], TrekResources::SmallBoldFont(), WinPoint(x-xprev,p.Y()), JustifyLeft()); s1->SetOpaque(true); s1->SetTextColor(Color::White()); s2->SetOpaque(true); s2->SetTextColor(Color::Yellow()); pbuttonbar->InsertButton(CreateButton(CreateButtonFacePane(s1,s2)),index); xprev = x; } pbuttonbar->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound)); pbuttonbar->GetEventSource()->AddSink(new SoundIDEventSink(mouseclickSound)); return pbuttonbar; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Number> pnumLoopStart; CastTo(pnumLoopStart, (IObject*)stack.Pop()); TRef<Number> pnumLoopLength; CastTo(pnumLoopLength, (IObject*)stack.Pop()); TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; ZSucceeded(CreateASRSoundTemplate(pTemplate, ptemplateBase, pnumLoopStart->GetValue(), pnumLoopLength->GetValue())); return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Number> pnumInnerAngle; CastTo(pnumInnerAngle, (IObject*)stack.Pop()); TRef<Number> pnumOuterAngle; CastTo(pnumOuterAngle, (IObject*)stack.Pop()); TRef<Number> pnumOuterGain; CastTo(pnumOuterGain, (IObject*)stack.Pop()); TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; ZSucceeded(CreateSoundConeTemplate(pTemplate, ptemplateBase, pnumInnerAngle->GetValue(), pnumOuterAngle->GetValue(), pnumOuterGain->GetValue())); return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<ISoundMutex> pmutex; CastTo(pmutex, (IObject*)stack.Pop()); TRef<Number> pnumTimeout; CastTo(pnumTimeout, (IObject*)stack.Pop()); TRef<Number> pnumPriority; CastTo(pnumPriority, (IObject*)stack.Pop()); TRef<Boolean> pboolSingleInstance; CastTo(pboolSingleInstance, (IObject*)stack.Pop()); TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; ZSucceeded(CreateSerializedSoundTemplate(pTemplate, ptemplateBase, pmutex, pnumTimeout->GetValue(), pnumPriority->GetValue(), pboolSingleInstance->GetValue())); return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Number> pnumRepeatRate; CastTo(pnumRepeatRate, (IObject*)stack.Pop()); TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; if (ZFailed(CreateRepeatingFireSoundTemplate(pTemplate, ptemplateBase, pnumRepeatRate->GetValue()))) { // Fail over to a dummy sound template ZSucceeded(CreateDummySoundTemplate(pTemplate)); } return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<FontValue> pfontTitles; CastTo(pfontTitles, (IObject*)stack.Pop()); TRef<FontValue> pfontTime; CastTo(pfontTime, (IObject*)stack.Pop()); TRef<ButtonPane> pbutton; CastTo(pbutton, (IObject*)stack.Pop()); return CreateGameStateContainer( m_pmodeler, pfontTitles->GetValue(), pfontTime->GetValue(), pbutton ); }
TRef<IObject> Apply(ObjectStack& stack) { TRef<StringValue> pstring; CastTo(pstring, (IObject*)stack.Pop()); TRef<ColorValue> pcolor; CastTo(pcolor, (IObject*)stack.Pop()); TRef<PointValue> ppointSize; WinPoint ptSize; if (stack.GetCount() > 0) { CastTo(ppointSize, (IObject*)stack.Pop()); ptSize = WinPoint( (int)ppointSize->GetValue().X(), (int)ppointSize->GetValue().Y() ); } Justification justification = JustifyLeft(); if (stack.GetCount() > 0) { TRef<Number> pjustify = Number::Cast((IObject*)stack.Pop()); justification.SetWord((DWORD)pjustify->GetValue()); } TRef<IEngineFont> pfont = TrekResources::SmallFont(); if (stack.GetCount() > 0) { TRef<FontValue> pfontLocal; CastTo(pfontLocal, (IObject*)stack.Pop()); pfont = pfontLocal->GetValue(); } bool bRightClip = false; if (stack.GetCount() > 0) bRightClip = GetBoolean((IObject*)stack.Pop()); TRef<StringValuePane> ppane; if (ppointSize) { if (bRightClip) justification = JustifyLeftClipRight(); ppane = new StringValuePane(pstring, pcolor, pfont, ptSize, justification); } else ppane = new StringValuePane(pstring, pcolor, pfont); return (Pane*)ppane; }
TRef<IObject> SelectModelPaneFactory::Apply(ObjectStack& stack) { TRef<Pane> ppaneChild; CastTo(ppaneChild, (IObject*)stack.Pop()); TRef<ModelData> pmodelData; CastTo(pmodelData, (IObject*)stack.Pop()); return (Pane*)new SelectModelPane(ppaneChild, pmodelData); }
TRef<IObject> Apply(ObjectStack& stack) { TRef<FrameDataListValue> plistValue = new FrameDataListValue(); TRef<IObjectList> plist; CastTo(plist, (IObject*)stack.Pop()); while (plist->GetCurrent()) { IObjectPair* ppair; CastTo(ppair, plist->GetCurrent()); ZString strName = GetString(ppair->GetNth(0)); Vector vecPosition = GetVector(ppair->GetNth(1)); Vector vecForward = GetVector(ppair->GetNth(2)); Vector vecUp = GetVector(ppair->GetLastNth(3)); plistValue->GetList().PushEnd( FrameData( strName, vecPosition, vecForward, vecUp ) ); plist->GetNext(); } return plistValue; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<GameStateContainer> pgsc; CastTo(pgsc, (IObject*)stack.Pop()); return (Value*)pgsc->GetImage(); }
TRef<IObject> Apply(ObjectStack& stack) { TRef<LightsGeo> plights = new LightsGeo(m_pmodeler, m_ptime); TRef<IObjectList> plist; CastTo(plist, (IObject*)stack.Pop()); while (plist->GetCurrent() != NULL) { IObjectPair* ppair; CastTo(ppair, plist->GetCurrent()); Color color = GetColor(ppair->GetNth(0)); Vector vector = GetVector(ppair->GetNth(1)); float period = GetNumber(ppair->GetNth(2)); float phase = GetNumber(ppair->GetNth(3)); float rampUp = GetNumber(ppair->GetNth(4)); float hold = GetNumber(ppair->GetNth(5)); float rampDown = GetNumber(ppair->GetLastNth(6)); plights->AddLight(color, vector, period, phase, rampUp, hold, rampDown); plist->GetNext(); } return plights; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; ZSucceeded(CreateLoopingSoundTemplate(pTemplate, ptemplateBase)); return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Image> pimage; CastTo(pimage, (Value*)(IObject*)stack.Pop()); TRef<Number> pnumberFaces; CastTo(pnumberFaces, (IObject*)stack.Pop()); TRef<Boolean> pboolToggle; CastTo(pboolToggle, (IObject*)stack.Pop()); DWORD dwFaces = (DWORD)pnumberFaces->GetValue(); return CreateTrekButton( CreateButtonFacePane( pimage->GetSurface(), dwFaces ), pboolToggle->GetValue(), (dwFaces & ButtonFaceCheckedDown) ? mouseclickSound : positiveButtonClickSound ); }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Image> pimage = Image::Cast((Value*)(IObject*)stack.Pop()); TRef<Number> pnumber; CastTo(pnumber, (IObject*)stack.Pop()); Color colorFlash = GetColor((IObject*)stack.Pop()); Color colorEmpty = GetColor((IObject*)stack.Pop()); TRef<GaugeValuePane> ppane = new GaugeValuePane( pimage->GetSurface(), pnumber, GetWindow()->GetTime(), colorFlash, colorEmpty ); return (Pane*)ppane; }
TRef<IObject> ChatListPaneFactory::Apply(ObjectStack& stack) { TRef<PointValue> ppointSize; CastTo(ppointSize, stack.Pop()); return (Pane*)new ChatListPaneImpl( WinPoint( (int)ppointSize->GetValue().X(), (int)ppointSize->GetValue().Y() ) ); }
TRef<IObject> Apply(ObjectStack& stack) { TRef<ISoundTemplate> ptemplateBase1; CastTo(ptemplateBase1, (IObject*)stack.Pop()); TRef<ISoundTemplate> ptemplateBase2; CastTo(ptemplateBase2, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; ZSucceeded(CreatePairedSoundTemplate(pTemplate, ptemplateBase1, ptemplateBase2)); return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Image> pimage; CastTo(pimage, (Value*)(IObject*)stack.Pop()); TRef<FontValue> pfont; CastTo(pfont, (IObject*)stack.Pop()); TRef<ComboPane> pcombo = CreateComboPane( m_pmodeler, m_ppopupContainer, pfont->GetValue(), WinPoint(0, 0), CreateImageComboFacePane(pimage) ); pcombo->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound)); pcombo->GetMenuSelectEventSource()->AddSink(new SoundIDEventSink(mouseclickSound)); return pcombo; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<Image> pimage; CastTo(pimage, (Value*)(IObject*)stack.Pop()); TRef<Number> pnumberFaces; CastTo(pnumberFaces, (IObject*)stack.Pop()); TRef<Boolean> pboolToggle; CastTo(pboolToggle, (IObject*)stack.Pop()); TRef<Number> pnumberClickSoundId; CastTo(pnumberClickSoundId, (IObject*)stack.Pop()); TRef<ButtonPane> pbutton = CreateButton( CreateButtonFacePane( pimage->GetSurface(), (DWORD)pnumberFaces->GetValue() ), pboolToggle->GetValue() ); pbutton->GetMouseEnterWhileEnabledEventSource()->AddSink(new SoundIDEventSink(mouseoverSound)); pbutton->GetEventSource()->AddSink(new SoundIDEventSink((SoundID)pnumberClickSoundId->GetValue())); //pbutton->GetRightEventSource()->AddSink(new SoundIDEventSink((SoundID)pnumberClickSoundId->GetValue())); //Imago NYI 7/10/09 return pbutton; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<IObjectList> plist; CastTo(plist, (IObject*)stack.Pop()); TRef<IRandomSoundTemplate> pTemplate; ZSucceeded(CreateRandomSoundTemplate(pTemplate)); plist->GetFirst(); while (plist->GetCurrent() != NULL) { IObjectPair* ppair; CastTo(ppair, plist->GetCurrent()); TRef<ISoundTemplate> ptemplateBase; CastTo(ptemplateBase, ppair->GetFirst() ); TRef<Number> pnumWeight; CastTo(pnumWeight, ppair->GetSecond() ); ZSucceeded(pTemplate->AddSoundTemplate(ptemplateBase, pnumWeight->GetValue())); plist->GetNext(); } return pTemplate; }
TRef<IObject> Apply(ObjectStack& stack) { TRef<StringValue> pstring; CastTo(pstring, (IObject*)stack.Pop()); TRef<ISoundTemplate> pTemplate; // mdvalley: Look for files in this order: Soundpack WAV, Soundpack OGG, Artwork WAV, Artwork OGG // pkk: Removed SoundPack support, Allegiance no longer looking for files in a not existing folder // Load wave from artwork directory ZString strFilename = m_pmodeler->GetArtPath() + "\\..\\" + pstring->GetValue() + ".wav"; if (!FileExists(strFilename)) { // Load ogg file, if wave file doesn't exisits strFilename = m_pmodeler->GetArtPath() + "\\" + pstring->GetValue() + ".ogg"; } if (FAILED(CreateWaveFileSoundTemplate(pTemplate, strFilename))) { // Fail over to a dummy sound template ZSucceeded(CreateDummySoundTemplate(pTemplate)); } return pTemplate; }
TRef<IObject> SelectionPaneFactory::Apply(ObjectStack& stack) { TRef<IEventSource> peventSourceOnSelChange; CastTo(peventSourceOnSelChange, (IObject*)stack.Pop()); return (Pane*) new SelectionPane(peventSourceOnSelChange); }