public void SetupButtonsNew(QueryInfoNew qInfo)
        {
            const float kButtonInX = 30;
            const float kButtonUpY = 30;
            CGPoint     querySize  = Utilities.CGPointMake(124.0f, 115.0f);

            FrontEnd.ButtonInfo info = new FrontEnd.ButtonInfo();
            info.textureLabel = null;
            info.goToScreen   = FrontEndScreenEnum.kFrontEndScreen_Invalid;
            info.position     = Utilities.CGPointMake(position.x - (querySize.x) + (kButtonInX * (scale.x)), position.y + (querySize.y) + (kButtonUpY * (scale.y)));
            info.texture      = null;
            (button[(int)QueryButton.nNo]).Initialise(info);
            ((button[(int)QueryButton.nNo]).zobject).SetShowScale(scale.x);
            ((button[(int)QueryButton.nNo]).zobject).SetAtlasAndSubtextureP1(atlas, qInfo.buttonBackdropId);
            info.position = Utilities.CGPointMake(position.x + (querySize.x) - (kButtonInX * (scale.x)), position.y + (querySize.y) + (kButtonUpY * (scale.y)));
            info.texture  = null;
            (button[(int)QueryButton.nYes]).Initialise(info);
            ((button[(int)QueryButton.nYes]).zobject).SetShowScale(scale.x);
            ((button[(int)QueryButton.nYes]).zobject).SetAtlasAndSubtextureP1(atlas, qInfo.buttonBackdropId);
        }
        public void InitialiseNew(QueryInfoNew info)
        {
            waitToHide = 0.0f;

            if (unityText == null)
            {
                unityText = new FunnyWord();
            }

            if (info.numButtons > 0)
            {
                myColour = Constants.kColourRed;
            }

            if (Globals.g_main.usingTextureResolution == TextureResolutionEnum.kTextureResolution_High)
            {
                info.inTextScale *= 2.0f;
            }

            if (Globals.g_world.DoesCurrentLanguageUseNSString() || info.useNSStringForAnyLanguage)
            {
                useNSString = true;
            }
            else
            {
                useNSString = false;
            }

            FunnyWord.WordInfo wInfo;
            wInfo.position    = info.position;
            wInfo.isCentrePos = true;
            wInfo.scale       = info.inTextScale * 0.32f;      // * 0.25f;

            if (useNSString)
            {
                unityText.InitWithWordNewP1(wInfo, info.queryText);
            }
            else
            {
                position = info.position;
                this.DivideStringIntoFunnyWords(info.queryText);

                wInfo.scale = info.inTextScale * 0.012f;                // * 0.1f;// * 0.25f;
                //unityText.SetFont(Globals.g_world.font);
                //unityText.SetColourAtlas(Globals.g_world.GetAtlas(AtlasType.kAtlas_FontColours));
                //unityText.InitWithWordP1(wInfo,info.queryText);
            }

            unityText.SetColour(myColour);

            if (useNSString)
            {
                unityText.myTextWrapper.SetBoundThing();
                unityText.SetUseTextureInstead(true);
                unityText.myTextWrapper.SetFontSize(info.inTextScale * 0.32f);
            }

            newStyleWithAtlas = info.newStyleWithAtlas;
            newStyleQuery     = true;
            useActualText     = false;
            FrontEndQuery.QueryInfo qInfo = new FrontEndQuery.QueryInfo();
            qInfo.noButton  = info.noButton;
            qInfo.yesButton = info.yesButton;
            position        = info.position;
            state           = QueryState.e_Inactive;
            chosenButton    = (QueryButton)(-1);
            queryText       = (info.queryText);
            boxDimensions   = Utilities.CGPointMake(info.boxDimensions.Width, info.boxDimensions.Height);
            scale.x         = info.scale;
            scale.y         = info.scale;
            atlas           = info.inAtlas;
            if (newStyleWithAtlas)
            {
                this.SetupButtonsNew(info);
            }

            Zobject.ZobjectInfo zInfo = new Zobject.ZobjectInfo();
            if (newStyleWithAtlas)
            {
                zInfo.texture = null;
            }
            else
            {
                zInfo.texture = info.backdropTexture;
            }

            zInfo.startState  = ZobjectState.kZobjectHidden;
            zInfo.position    = position;
            zInfo.isMapObject = false;
            backdrop.Initialise(zInfo);
            backdrop.SetShowScale(scale.x * 1.2f);
            if (newStyleWithAtlas)
            {
                backdrop.SetAtlasAndSubtextureP1(atlas, info.backdropId);
            }
            else
            {
//                backdrop.SetShowScale(1.2f);
            }

            if (backdrop.myAtlasBillboard != null)
            {
                backdrop.myAtlasBillboard.myObject.layer = LayerMask.NameToLayer("guistuff");
            }

            numButtons     = info.numButtons;
            zInfo.position = Utilities.CGPointMake(160.0f, 240.0f);
            zInfo.texture  = info.dimOverlayTexture;
            dimZob.Initialise(zInfo);
            dimZob.SetStretchToScreen(true);
            dimZob.SetShowStyle((int)ZobjectShowStyle.kZobjectShow_FadeIn);
            dimZob.SetHideStyle((int)ZobjectHideStyle.kZobjectHide_FadeOut);
            dimZob.SetShowAlpha(0.7f);
            if (newStyleWithAtlas)
            {
                dimZob.SetAtlasAndSubtextureP1(atlas, info.dimId);
            }

            if (dimZob.myAtlasBillboard != null)
            {
                dimZob.myAtlasBillboard.myObject.layer = LayerMask.NameToLayer("guistuff");
            }


            if (textTexture != null)
            {
            }

            CGSize dimensionsForText = info.boxDimensions;
            float  textScale         = info.inTextScale;

            if (Globals.deviceIPad)
            {
                dimensionsForText.Height *= 2.0f;
                dimensionsForText.Width  *= 2.0f;
                textScale *= 2.0f;
            }

            textTexture    = null;         //new Texture2D_Ross(info.queryText, dimensionsForText, UITextAlignment.UITextAlignmentCenter, "Arial", textScale);
            zInfo.texture  = textTexture;
            zInfo.position = position;
            if (Globals.g_currentLanguage == World.Enum11.kLanguage_Japanese)
            {
                if ((!Globals.deviceIPhone4) && (!Globals.deviceIPad))
                {
                    zInfo.position.y += 3.0f;
                }
                else
                {
                    zInfo.position.y += 15.0f;
                }
            }

            text.Initialise(zInfo);
            text.SetShowScale(scale.x);

            if (text.myAtlasBillboard != null)
            {
                text.myAtlasBillboard.myObject.layer = LayerMask.NameToLayer("guistuff");
            }


            if (!newStyleWithAtlas)
            {
                boxDimensions.x = 200.0f;
                boxDimensions.y = 180.0f;
                if (info.numButtons == 0)
                {
                    this.SetupButtons(qInfo);
                }
            }


            if (info.numButtons > 0)
            {
                queryButtonStyle = QueryButtonStyle.kQButtonsCentral;
                this.SetupCentralButtons(info);

                //This means we want the new style central hanging buttons
            }
            else
            {
                queryButtonStyle = QueryButtonStyle.kQButtonsEdges;
            }

            backdrop.SetShowStyle(ZobjectShowStyle.kZobjectShow_SlideInLeft);
            backdrop.SetHideStyle(ZobjectHideStyle.kZobjectHide_SlideToRight);
            backdrop.SetHideAcc(0.02f);

            unityText.SetPositionZob(backdrop);
        }
        public void SetupCentralButtons(QueryInfoNew qInfo)
        {
            const float kButtonInX = 30;
            const float kButtonUpY = 20;
            CGPoint     querySize  = Utilities.CGPointMake(124.0f, 85.0f);

            float buttonPosY = position.y + ((querySize.y + kButtonUpY) * (scale.y));

            FrontEnd.ButtonInfo info = new FrontEnd.ButtonInfo();
            info.textureLabel = null;
            info.goToScreen   = FrontEndScreenEnum.kFrontEndScreen_Invalid;

            HangingButton.HangingButtonInfo hInfo = new HangingButton.HangingButtonInfo();
            hInfo.showWobbleMultiplier = 1.2f;
            hInfo.type         = HangingButtonType.kHB_Rope;
            hInfo.subTextureId = 0;            //(int)World.Enum6.kSSH_Rope;
            hInfo.offset       = Utilities.CGPointMake(98.0f * qInfo.scale, -15.0f * qInfo.scale);

            buttonPosY += (65.0f * ((float)(qInfo.numButtons - 1)) * qInfo.scale);

            FunnyWord.WordInfo wInfo = new FunnyWord.WordInfo();
            wInfo.isCentrePos = true;
            wInfo.scale       = qInfo.inTextScale * 0.32f;      // * 0.25f;


            for (int i = 0; i < (int)Enum.kMaxCentralButtonsInQuery; i++)
            {
                if (buttonText[i] != null)
                {
                    buttonText[i].Disappear();
                }
                if (button[i] != null)
                {
                    button[i].Disappear();
                }
            }

            for (int buttonIndex = 0; buttonIndex < qInfo.numButtons; buttonIndex++)
            {
                if (buttonText[buttonIndex] == null)
                {
                    buttonText[buttonIndex] = new FunnyWord();
                }

                info.position = Utilities.CGPointMake(position.x, buttonPosY);
                info.texture  = null;
                (button[buttonIndex]).Initialise(info);
                ((button[buttonIndex]).zobject).SetShowScale(scale.x);
                ((button[buttonIndex]).zobject).SetAtlasAndSubtextureP1(atlas, 2);    //qInfo.buttonBackdropId);
                ((button[buttonIndex]).zobject).myAtlasBillboard.myObject.layer = LayerMask.NameToLayer("guistuff");
                (button[buttonIndex]).SetWidth(220.0f);
                (button[buttonIndex]).SetHeight(60.0f);
                (button[buttonIndex]).SetClickStyle(ButtonClickStyle.kButtonClick_Throb);

                (button[buttonIndex]).AddHangingButton(hInfo);
                (button[buttonIndex]).hangingButton.SetWobbleDeclineMultiplier(0.5f);

                ((button[buttonIndex]).zobject).SetShowStyle(ZobjectShowStyle.kZobjectShow_SlideInLeft);
                ((button[buttonIndex]).zobject).SetHideStyle(ZobjectHideStyle.kZobjectHide_SlideToRight);
                ((button[buttonIndex]).zobject).SetHideAcc(0.02f);

                wInfo.position    = info.position;
                wInfo.position.y += 10.0f;

                if (useNSString)
                {
                    buttonText[buttonIndex].InitWithWordNewP1(wInfo, qInfo.buttonString[buttonIndex]);
                }
                else
                {
                    wInfo.scale = qInfo.inTextScale * 0.018f;                    // * 0.1f;// * 0.25f;
                    buttonText[buttonIndex].SetFont(Globals.g_world.font);
                    buttonText[buttonIndex].SetColourAtlas(Globals.g_world.GetAtlas(AtlasType.kAtlas_FontColours));
                    buttonText[buttonIndex].InitWithWordP1(wInfo, qInfo.buttonString[buttonIndex]);
                }

                buttonText[buttonIndex].SetPositionZob(((button[buttonIndex]).zobject));
                buttonText[buttonIndex].SetColour(myColour);

                if (useNSString)
                {
                    buttonText[buttonIndex].myTextWrapper.SetBoundThing();
                    buttonText[buttonIndex].SetUseTextureInstead(true);
                    buttonText[buttonIndex].myTextWrapper.SetFontSize(qInfo.inTextScale * 0.32f);
                }
                buttonText[buttonIndex].SetOrientationButton((button[buttonIndex]).hangingButton);

                buttonPosY -= (65.0f * qInfo.scale);
            }
        }