void Remove5X5Pit( INT32 iMapIndex ) { RemoveAllObjectsOfTypeRange( iMapIndex + 318, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 158, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 2, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 162, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 322, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 319, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 159, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 1, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 161, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 321, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 320, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 160, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 160, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 320, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 321, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 161, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 1, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 159, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 319, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 322, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 162, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 2, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 158, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 318, REGWATERTEXTURE, REGWATERTEXTURE ); MarkWorldDirty(); }
void RemoveFileDialog(void) { INT32 x; MSYS_RemoveRegion( &BlanketRegion ); for(x=0; x<6; x++) { RemoveButton(iFileDlgButtons[x]); } if( iFileDlgButtons[6] != -1 ) { RemoveButton( iFileDlgButtons[6] ); } TrashFDlgList( FileList ); FileList = NULL; InvalidateScreen( ); EnableEditorTaskbar(); KillTextInputMode(); MarkWorldDirty(); RenderWorld(); EndFrameBufferRender(); }
void PasteBuilding( INT32 iMapIndex ) { BUILDINGLAYOUTNODE *curr; INT32 iOffset; if( !gpBuildingLayoutList ) return; SortBuildingLayout( iMapIndex ); iOffset = iMapIndex - gsBuildingLayoutAnchorGridNo; curr = gpBuildingLayoutList; //First time, set the undo gridnos to everything effected. while( curr ) { AddToUndoList( curr->sGridNo ); AddToUndoList( curr->sGridNo + iOffset ); curr = curr->next; } //Now, paste the building (no smoothing) curr = gpBuildingLayoutList; while( curr ) { PasteMapElementToNewMapElement( curr->sGridNo, curr->sGridNo + iOffset ); curr = curr->next; } MarkWorldDirty(); }
void Remove3X3Pit( INT32 iMapIndex ) { RemoveAllObjectsOfTypeRange( iMapIndex + 159, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 1, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 161, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 160, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 160, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 161, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex + 1, REGWATERTEXTURE, REGWATERTEXTURE ); RemoveAllObjectsOfTypeRange( iMapIndex - 159, REGWATERTEXTURE, REGWATERTEXTURE ); MarkWorldDirty(); }
void SelectNextItemInPool() { if( gpItemPool ) { if( gpItemPool->pNext ) { gpItemPool = gpItemPool->pNext; } else { GetItemPoolFromGround( gpItemPool->sGridNo, &gpItemPool ); } SpecifyItemToEdit( &gWorldItems[ gpItemPool->iItemIndex ].object, gpItemPool->sGridNo ); MarkWorldDirty(); } }
void Add3X3Pit( INT32 iMapIndex ) { EXITGRID ExitGrid; if( !gfEditMode ) ApplyMapChangesToMapTempFile( TRUE ); AddObjectToTail( iMapIndex + 159, REGWATERTEXTURE1 ); AddObjectToTail( iMapIndex - 1, REGWATERTEXTURE2 ); AddObjectToTail( iMapIndex - 161, REGWATERTEXTURE3 ); AddObjectToTail( iMapIndex + 160, REGWATERTEXTURE4 ); AddObjectToTail( iMapIndex, REGWATERTEXTURE5 ); AddObjectToTail( iMapIndex - 160, REGWATERTEXTURE6 ); AddObjectToTail( iMapIndex + 161, REGWATERTEXTURE7 ); AddObjectToTail( iMapIndex + 1, REGWATERTEXTURE8 ); AddObjectToTail( iMapIndex - 159, REGWATERTEXTURE9 ); if( !gfEditMode ) { //Add the exitgrids associated with the pit. ExitGrid.ubGotoSectorX = (UINT8)gWorldSectorX; ExitGrid.ubGotoSectorY = (UINT8)gWorldSectorY; ExitGrid.ubGotoSectorZ = (UINT8)(gbWorldSectorZ+1); ExitGrid.usGridNo = (UINT16)iMapIndex; AddExitGridToWorld( iMapIndex + 159, &ExitGrid ); AddExitGridToWorld( iMapIndex - 1, &ExitGrid ); AddExitGridToWorld( iMapIndex - 161, &ExitGrid ); AddExitGridToWorld( iMapIndex + 160, &ExitGrid ); AddExitGridToWorld( iMapIndex, &ExitGrid ); AddExitGridToWorld( iMapIndex - 160, &ExitGrid ); AddExitGridToWorld( iMapIndex + 161, &ExitGrid ); AddExitGridToWorld( iMapIndex + 1, &ExitGrid ); AddExitGridToWorld( iMapIndex - 159, &ExitGrid ); RecompileLocalMovementCostsFromRadius( (INT16)iMapIndex, 2 ); } MarkWorldDirty(); if( !gfEditMode ) ApplyMapChangesToMapTempFile( FALSE ); }
void Add5X5Pit( INT32 iMapIndex ) { EXITGRID ExitGrid; if( !gfEditMode ) ApplyMapChangesToMapTempFile( TRUE ); AddObjectToTail( iMapIndex + 318, REGWATERTEXTURE10 ); AddObjectToTail( iMapIndex + 158, REGWATERTEXTURE11 ); AddObjectToTail( iMapIndex - 2, REGWATERTEXTURE12 ); AddObjectToTail( iMapIndex - 162, REGWATERTEXTURE13 ); AddObjectToTail( iMapIndex - 322, REGWATERTEXTURE14 ); AddObjectToTail( iMapIndex + 319, REGWATERTEXTURE15 ); AddObjectToTail( iMapIndex + 159, REGWATERTEXTURE16 ); AddObjectToTail( iMapIndex - 1, REGWATERTEXTURE17 ); AddObjectToTail( iMapIndex - 161, REGWATERTEXTURE18 ); AddObjectToTail( iMapIndex - 321, REGWATERTEXTURE19 ); AddObjectToTail( iMapIndex + 320, REGWATERTEXTURE20 ); AddObjectToTail( iMapIndex + 160, REGWATERTEXTURE21 ); AddObjectToTail( iMapIndex, REGWATERTEXTURE22 ); AddObjectToTail( iMapIndex - 160, REGWATERTEXTURE23 ); AddObjectToTail( iMapIndex - 320, REGWATERTEXTURE24 ); AddObjectToTail( iMapIndex + 321, REGWATERTEXTURE25 ); AddObjectToTail( iMapIndex + 161, REGWATERTEXTURE26 ); AddObjectToTail( iMapIndex + 1, REGWATERTEXTURE27 ); AddObjectToTail( iMapIndex - 159, REGWATERTEXTURE28 ); AddObjectToTail( iMapIndex - 319, REGWATERTEXTURE29 ); AddObjectToTail( iMapIndex + 322, REGWATERTEXTURE30 ); AddObjectToTail( iMapIndex + 162, REGWATERTEXTURE31 ); AddObjectToTail( iMapIndex + 2, REGWATERTEXTURE32 ); AddObjectToTail( iMapIndex - 158, REGWATERTEXTURE33 ); AddObjectToTail( iMapIndex - 318, REGWATERTEXTURE34 ); if( !gfEditMode ) { //Add the exitgrids associated with the pit. ExitGrid.ubGotoSectorX = (UINT8)gWorldSectorX; ExitGrid.ubGotoSectorY = (UINT8)gWorldSectorY; ExitGrid.ubGotoSectorZ = (UINT8)(gbWorldSectorZ+1); ExitGrid.usGridNo = (UINT16)iMapIndex; AddExitGridToWorld( iMapIndex + 318, &ExitGrid ); AddExitGridToWorld( iMapIndex + 158, &ExitGrid ); AddExitGridToWorld( iMapIndex - 2, &ExitGrid ); AddExitGridToWorld( iMapIndex - 162, &ExitGrid ); AddExitGridToWorld( iMapIndex - 322, &ExitGrid ); AddExitGridToWorld( iMapIndex + 319, &ExitGrid ); AddExitGridToWorld( iMapIndex + 159, &ExitGrid ); AddExitGridToWorld( iMapIndex - 1, &ExitGrid ); AddExitGridToWorld( iMapIndex - 161, &ExitGrid ); AddExitGridToWorld( iMapIndex - 321, &ExitGrid ); AddExitGridToWorld( iMapIndex + 320, &ExitGrid ); AddExitGridToWorld( iMapIndex + 160, &ExitGrid ); AddExitGridToWorld( iMapIndex, &ExitGrid ); AddExitGridToWorld( iMapIndex - 160, &ExitGrid ); AddExitGridToWorld( iMapIndex - 320, &ExitGrid ); AddExitGridToWorld( iMapIndex + 321, &ExitGrid ); AddExitGridToWorld( iMapIndex + 161, &ExitGrid ); AddExitGridToWorld( iMapIndex + 1, &ExitGrid ); AddExitGridToWorld( iMapIndex - 159, &ExitGrid ); AddExitGridToWorld( iMapIndex - 319, &ExitGrid ); AddExitGridToWorld( iMapIndex + 322, &ExitGrid ); AddExitGridToWorld( iMapIndex + 162, &ExitGrid ); AddExitGridToWorld( iMapIndex + 2, &ExitGrid ); AddExitGridToWorld( iMapIndex - 158, &ExitGrid ); AddExitGridToWorld( iMapIndex - 318, &ExitGrid ); RecompileLocalMovementCostsFromRadius( (INT16)iMapIndex, 3 ); } MarkWorldDirty(); if( !gfEditMode ) ApplyMapChangesToMapTempFile( FALSE ); }
UINT32 ProcessLoadSaveScreenMessageBoxResult() { FDLG_LIST *curr, *temp; gfRenderWorld = TRUE; RemoveMessageBox(); if( gfIllegalName ) { fEnteringLoadSaveScreen = TRUE; RemoveFileDialog(); MarkWorldDirty(); return gfMessageBoxResult ? LOADSAVE_SCREEN : EDIT_SCREEN; } if( gfDeleteFile ) { if( gfMessageBoxResult ) { //delete file INT32 x; curr = FileList; for( x = 0; x < iCurrFileShown && x < iTotalFiles && curr; x++ ) { curr = curr->pNext; } if( curr ) { if( gfReadOnly ) { FileClearAttributes( gszCurrFilename ); gfReadOnly = FALSE; } FileDelete( gszCurrFilename ); //File is deleted so redo the text fields so they show the //next file in the list. temp = curr->pNext; if( !temp ) temp = curr->pPrev; if( !temp ) wcscpy( gzFilename, L"" ); else swprintf( gzFilename, L"%S", temp->FileInfo.zFileName ); if( ValidFilename() ) { SetInputFieldStringWith16BitString( 0, gzFilename ); } else { SetInputFieldStringWith16BitString( 0, L"" ); wcscpy( gzFilename, L"" ); } RemoveFromFDlgList( &FileList, curr ); iTotalFiles--; if( !iTotalFiles ) { gfNoFiles = TRUE; if( iCurrentAction == ACTION_LOAD_MAP ) DisableButton( iFileDlgButtons[0] ); } if( iCurrFileShown >= iTotalFiles ) iCurrFileShown--; if( iCurrFileShown < iTopFileShown ) iTopFileShown -= 8; if( iTopFileShown < 0 ) iTopFileShown = 0; } } MarkWorldDirty(); RenderWorld(); gfDeleteFile = FALSE; iFDlgState = DIALOG_NONE; return LOADSAVE_SCREEN; } if(gfLoadError || gfSaveError)//dnl ch37 200909 { MarkWorldDirty(); RenderWorld(); fEnteringLoadSaveScreen = TRUE; return(gfMessageBoxResult ? LOADSAVE_SCREEN : EDIT_SCREEN); } if( gfReadOnly ) { //file is readonly. Result will determine if the file dialog stays up. fEnteringLoadSaveScreen = TRUE; RemoveFileDialog(); return gfMessageBoxResult ? LOADSAVE_SCREEN : EDIT_SCREEN; } if( gfFileExists ) { if( gfMessageBoxResult ) { //okay to overwrite file RemoveFileDialog(); gbCurrentFileIOStatus = INITIATE_MAP_SAVE; return LOADSAVE_SCREEN; } fEnteringLoadSaveScreen = TRUE; RemoveFileDialog(); return(LOADSAVE_SCREEN);//dnl ch36 210909 } // Assert( 0 ); return LOADSAVE_SCREEN; }