* NAME: record->unpackcatdata() * DESCRIPTION: unpack catalog record data */
| 251 | * DESCRIPTION: unpack catalog record data |
| 252 | */ |
| 253 | void r_unpackcatdata(const byte *pdata, CatDataRec *data) |
| 254 | { |
| 255 | int i; |
| 256 | |
| 257 | d_fetchsb(&pdata, &data->cdrType); |
| 258 | d_fetchsb(&pdata, &data->cdrResrv2); |
| 259 | |
| 260 | switch (data->cdrType) |
| 261 | { |
| 262 | case cdrDirRec: |
| 263 | d_fetchsw(&pdata, &data->u.dir.dirFlags); |
| 264 | d_fetchuw(&pdata, &data->u.dir.dirVal); |
| 265 | d_fetchul(&pdata, &data->u.dir.dirDirID); |
| 266 | d_fetchsl(&pdata, &data->u.dir.dirCrDat); |
| 267 | d_fetchsl(&pdata, &data->u.dir.dirMdDat); |
| 268 | d_fetchsl(&pdata, &data->u.dir.dirBkDat); |
| 269 | |
| 270 | d_fetchsw(&pdata, &data->u.dir.dirUsrInfo.frRect.top); |
| 271 | d_fetchsw(&pdata, &data->u.dir.dirUsrInfo.frRect.left); |
| 272 | d_fetchsw(&pdata, &data->u.dir.dirUsrInfo.frRect.bottom); |
| 273 | d_fetchsw(&pdata, &data->u.dir.dirUsrInfo.frRect.right); |
| 274 | d_fetchsw(&pdata, &data->u.dir.dirUsrInfo.frFlags); |
| 275 | d_fetchsw(&pdata, &data->u.dir.dirUsrInfo.frLocation.v); |
| 276 | d_fetchsw(&pdata, &data->u.dir.dirUsrInfo.frLocation.h); |
| 277 | d_fetchsw(&pdata, &data->u.dir.dirUsrInfo.frView); |
| 278 | |
| 279 | d_fetchsw(&pdata, &data->u.dir.dirFndrInfo.frScroll.v); |
| 280 | d_fetchsw(&pdata, &data->u.dir.dirFndrInfo.frScroll.h); |
| 281 | d_fetchsl(&pdata, &data->u.dir.dirFndrInfo.frOpenChain); |
| 282 | d_fetchsw(&pdata, &data->u.dir.dirFndrInfo.frUnused); |
| 283 | d_fetchsw(&pdata, &data->u.dir.dirFndrInfo.frComment); |
| 284 | d_fetchsl(&pdata, &data->u.dir.dirFndrInfo.frPutAway); |
| 285 | |
| 286 | for (i = 0; i < 4; ++i) |
| 287 | d_fetchsl(&pdata, &data->u.dir.dirResrv[i]); |
| 288 | |
| 289 | break; |
| 290 | |
| 291 | case cdrFilRec: |
| 292 | d_fetchsb(&pdata, &data->u.fil.filFlags); |
| 293 | d_fetchsb(&pdata, &data->u.fil.filTyp); |
| 294 | |
| 295 | d_fetchsl(&pdata, &data->u.fil.filUsrWds.fdType); |
| 296 | d_fetchsl(&pdata, &data->u.fil.filUsrWds.fdCreator); |
| 297 | d_fetchsw(&pdata, &data->u.fil.filUsrWds.fdFlags); |
| 298 | d_fetchsw(&pdata, &data->u.fil.filUsrWds.fdLocation.v); |
| 299 | d_fetchsw(&pdata, &data->u.fil.filUsrWds.fdLocation.h); |
| 300 | d_fetchsw(&pdata, &data->u.fil.filUsrWds.fdFldr); |
| 301 | |
| 302 | d_fetchul(&pdata, &data->u.fil.filFlNum); |
| 303 | |
| 304 | d_fetchuw(&pdata, &data->u.fil.filStBlk); |
| 305 | d_fetchul(&pdata, &data->u.fil.filLgLen); |
| 306 | d_fetchul(&pdata, &data->u.fil.filPyLen); |
| 307 | |
| 308 | d_fetchuw(&pdata, &data->u.fil.filRStBlk); |
| 309 | d_fetchul(&pdata, &data->u.fil.filRLgLen); |
| 310 | d_fetchul(&pdata, &data->u.fil.filRPyLen); |