const RC openFile(char *fileName,PF_FileHandle *fileHandle) { int fd; PF_FileHandle *pfilehandle=fileHandle; RC tmp; if((fd=_open(fileName,O_RDWR|_O_BINARY))<0) return PF_FILEERR; pfilehandle->bopen=true; pfilehandle->fileName=fileName; pfilehandle->fileDesc=fd; if((tmp=AllocateBlock(&pfilehandle->pHdrFrame))!=SUCCESS){ _close(fd); return tmp; } pfilehandle->pHdrFrame->bDirty=false; pfilehandle->pHdrFrame->pinCount=1; pfilehandle->pHdrFrame->accTime=clock(); pfilehandle->pHdrFrame->fileDesc=fd; pfilehandle->pHdrFrame->fileName=fileName; if(_lseek(fd,0,SEEK_SET)==-1){ DisposeBlock(pfilehandle->pHdrFrame); _close(fd); return PF_FILEERR; } if(_read(fd,&(pfilehandle->pHdrFrame->page),sizeof(Page))!=sizeof(Page)){ DisposeBlock(pfilehandle->pHdrFrame); _close(fd); return PF_FILEERR; } pfilehandle->pHdrPage=&(pfilehandle->pHdrFrame->page); pfilehandle->pBitmap=pfilehandle->pHdrPage->pData+PF_FILESUBHDR_SIZE; pfilehandle->pFileSubHeader=(PF_FileSubHeader *)pfilehandle->pHdrPage->pData; fileHandle=pfilehandle; return SUCCESS; }
void CWeaponBuildTool::SecondaryAttack() { // Delete a block #ifndef CLIENT_DLL CBasePlayer *player = (CBasePlayer *) GetOwner(); trace_t tr; GetPlayerTraceLine( tr, player, lfm_build_tool_distance.GetInt(), COLLISION_GROUP_NONE ); CBaseEntity *ent = tr.m_pEnt; if ( ent != NULL && ent->IsBlock() ) { DisposeBlock( ent ); } m_flNextSecondaryAttack = gpGlobals->curtime + 1.0f; #endif // SERVER }